OpenGL und Texturen/Farben

Wolfsbein

Erfahrenes Mitglied
Hallo
ich arbeite an meiner Facharbeit und brauche dazu etwas OpenGL Wissen. Die Tutors bei nehe.gamedev.net habe ich natürlich ;).
Also ich erstelle hier ein paar Flächen:
Code:
glBindTexture(GL_TEXTURE_2D, texture[filter]);
glBegin(GL_QUADS);
		// x1x2 Ebene
		glNormal3f(0.0f,0.0f,0.0f);
		glVertex3f(-5.0f,0.0f,5.0f);
		glVertex3f(5.0f,0.0f,5.0f);
		glVertex3f(5.0f,0.0f,-5.0f);
		glVertex3f(-5.0f,0.0f,-5.0f);...
Jetzt will ich andere Formen einbinden, die diese Textur nicht benutzen, sondern einfach eine farbige Fläche. Wenn ich nun einfach glColor3f(0.0f,0.0f,1.0f); schreibe, dann wird alles farbig, auch die Formen vor dem Befehl :(. Was kann ich da machen?
 
Eine interessante Frage die du da stellst, ich kann sie dir aber leider nicht zu 100% beantworten, allerdings ist mir da eine Notlösung eingefallen:
Und zwar generierst du dir eine neue Textur, die einfach in der entsprechenden Farbe ist, die deine Fläche haben soll und bindest sie wieder mit glBindTexture() an deine Fläche(n).
Ja ich weiß ist nicht das gelbe vom Ei, aber es würde funktionieren, natürlich is das nur ne Notlösung wie oben geschrieben.
Da ich selbst auch einiges mit OpenGL rumbastel, aber leider kein Profi bin, würde mich eine richtige, bzw. gute Lösung auch brennend interessieren, also falls du darauf kommst wie es "wirklich" geht, lass es mich bitte wissen. Danke.

Gruss Homer
 
Ich werde mal in der NG fragen und dann hier posten. Das Problem bei einer einfarbigen Textur glaube ich ist, dass man sie nicht durchsichtig machen kann.
 
Das geht viel einfacher.

glPush... Befehle, mit denen man aktuelle Einstellungen, die man an verschiedenen Stellen im Quellcode braucht kurzzeitig auf einen Stack legen kann.

d.h. du kannst z.B mit glPushMatrix deine "normalen" Kameraeinstellungen sichern; und nach aller Arbeit mit glPopMatrix den "normalen" Zustand wieder herstellen. Für Texturen gibts sowas auch aber OGL ist bei mir schon wieder ne Weile her und ausm Kopf heraus weiß ich das jetzt nicht auswendig.
Aber ein Blick in die MSDN sollte aushelfen... ;)
 
Danke, aber so kompliziert hätte es gar nicht werden sollen. Ich mache es jetzt so: _Vor_ der Initialisierung der Textur schreibe ich glColor3f(); und dann kann ich die Textur beliebig einfärben.
 
Du, daran ist absolut nix kompliziert - im Gegenteil - es geht fast nimmer einfacher... ;)

btw: Ich meine mich zu erinnern, daß der Befehl
glPushAttrib(...) hies.
und dann übergibt man als Parameter irgendwas in der Richtung an: GL_TEXTURE_BIT...
wie gesagt: einfach mal nen Blick in die MSDN schmeissen...
 

Neue Beiträge

Zurück