glBindTexture_ und glColor3f_ kann ich bei Ogl nicht mischen

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
wasser
Beiträge: 125
Registriert: 27.11.2006 21:16

glBindTexture_ und glColor3f_ kann ich bei Ogl nicht mischen

Beitrag von wasser »

Ich habe einen 3d-Körper mit mehreren verschiedenen Farben, 1 Rechteck und 4 Räder, alles verschiedenen farben mit color3f_ und eine Fläche als Untergrund.

Es wird auch alles schön in den Farben dargestellt,
Wenn ich jetzt aber der Fläche eine Texture zuweise wird die Fläche in der Farbe dargestellt, die der letzte Körper zugewiesen bekommen hat, in verschiedener Intensität.

Diese beiden Befehle kann ich nicht getrennt Zeigen :
glBindTexture_(#GL_TEXTURE_2D,Texture_1)
glColor3f_(1.0,1.0,0.5)

Welchen Opengl-Befehl muss man einsetzen?

MFG
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Schonmal mit glMaterial... versucht?
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Hellhound66
Beiträge: 476
Registriert: 23.03.2005 23:19

Beitrag von Hellhound66 »

Je nachdem, welchen (Blending-)Modus er nutzt, wird er nur die Textur und keine Farbe mehr dazu sehen. Keine Ahnung, wie das bei OGL nochmal heisst.

Vielleicht klappts damit:

Code: Alles auswählen

glTexEnvf_(#GL_TEXTURE_ENV, #GL_TEXTURE_ENV_MODE, #GL_MODULATE);
#GL_MODULATE und #GL_DECAL sind deine Freunde hier.
Optimismus ist ein Mangel an Information.
wasser
Beiträge: 125
Registriert: 27.11.2006 21:16

Beitrag von wasser »

Da ich den Farbwert aus den Datenblock des 3d-Körpers herauslese (RGB), bräuchte ich eine Routine, die mir im Programm den Farbwert auf eine Textur wiedergibt und ich dann die Textur dem Körperteil zuweise.

Wie geht diese Lösung? Sind mehrere Texturen ein großer Zeitverlust, jedes Körperteil bräuchte eine eigene Textur ?

MFG
Hellhound66
Beiträge: 476
Registriert: 23.03.2005 23:19

Beitrag von Hellhound66 »

Die Farbwerte vom Mesh werden bei #GL_MODULATE mit der Textur moduliert (multipliziert), man kann noch ne ganze Palette anderer Funktionen hier implementierten.
Sind mehrere Texturen ein großer Zeitverlust, jedes Körperteil bräuchte eine eigene Textur ?
1.Nein
2.ungeschickt.

Ich gehe mal davon aus, dass du Index/Vertexlisten nutzt. Wenn das der Fall ist, musst du dein Mesh splitten, um den einzelnen Bereichen (Körperteilen) ne neue Textur zuzuweisen. Das ist nicht nur langsamer, sondern auch recht ungeschickt. Mach lieber ne eigene Textur für das Entitiy (Wesen). Sollte die sich ändern (andere Klamotten), dann kannst du einfach diese persönliche Textur modifizieren, und schon funzts.
Mehrere Texturen im Sinne von Multitexturing (mehrere Texturen übereinander) beeinflussen die Geschwindigkeit nicht wirklich bei modernen GraKas.
Optimismus ist ein Mangel an Information.
wasser
Beiträge: 125
Registriert: 27.11.2006 21:16

Beitrag von wasser »

Mit welchen Programm kann man eine Textur für ein Gebilde (Fahrgestell mit Kranausleger) erstellen.

MFG
Antworten