Sachverhalt: Sachverhalt: A. Der 1952 geborene F._, von 1980 bis 1998 als Bauarbeiter/Isoleur tätig, leidet an einer chronischen Schmerzkrankheit, bestehend namentlich aus Schmerzen im linken Knie (nach einer Patellafraktur [1995] und konsekutiver leichtgradiger Femoropatellararthrose) und chronischen unspezifischen Rückenschmerzen, ausserdem an Bronchialasthma und Bluthochdruck. Auf Anmeldung zum Leistungsbezug vom 17. Februar 2000 hin klärte die IV-Stelle des Kantons Luzern den medizinischen und erwerblichen Sachverhalt ab. Mit durch Einspracheentscheid vom 20. Oktober 2003 bestätigter Verfügung vom 30. April 2003 stellte die Verwaltung fest, der Invaliditätsgrad betrage 29 % und erreiche somit kein rentenbegründendes Ausmass. A. Der 1952 geborene F._, von 1980 bis 1998 als Bauarbeiter/Isoleur tätig, leidet an einer chronischen Schmerzkrankheit, bestehend namentlich aus Schmerzen im linken Knie (nach einer Patellafraktur [1995] und konsekutiver leichtgradiger Femoropatellararthrose) und chronischen unspezifischen Rückenschmerzen, ausserdem an Bronchialasthma und Bluthochdruck. Auf Anmeldung zum Leistungsbezug vom 17. Februar 2000 hin klärte die IV-Stelle des Kantons Luzern den medizinischen und erwerblichen Sachverhalt ab. Mit durch Einspracheentscheid vom 20. Oktober 2003 bestätigter Verfügung vom 30. April 2003 stellte die Verwaltung fest, der Invaliditätsgrad betrage 29 % und erreiche somit kein rentenbegründendes Ausmass. B. Die gegen den Einspracheentscheid erhobene Beschwerde wies das Verwaltungsgericht des Kantons Luzern ab (Entscheid vom 18. März 2004). B. Die gegen den Einspracheentscheid erhobene Beschwerde wies das Verwaltungsgericht des Kantons Luzern ab (Entscheid vom 18. März 2004). C. F._ lässt Verwaltungsgerichtsbeschwerde führen mit dem Rechtsbegehren, es sei ihm, unter Aufhebung von Einsprache- und kantonalem Gerichtsentscheid, mit Wirkung ab dem 1. Dezember 1999 eine ganze Invalidenrente auszurichten. Während die IV-Stelle auf Abweisung der Verwaltungsgerichtsbeschwerde schliesst, verzichtet das Bundesamt für Sozialversicherung auf Vernehmlassung.