OpenGL - unmöglich in anderen Farben als weiß nach dem textur-mapping
Ich bin versucht zu Rendern eines farbigen Würfels nach rendering anderen cubes, die Texturen. Ich habe mehrere "Schubladen" - Objekte, die konform zu den Schubladen, und ich gebe jedem einen Verweis auf das GL-Objekt, um die zeichnen( final-GL-gl ) Methode von jedem einzelnen die Umsetzung Klasse. Jedoch, egal was ich auch mache, ich scheine nicht in der Lage zu machen einen farbigen Würfel.
Code-Beispiel:
gl.glDisable(GL.GL_TEXTURE_2D);
gl.glColor3f( 1f, 0f, 0f );
gl.glBegin(GL.GL_QUADS);
//Front Face
Point3f point = player.getPosition();
gl.glNormal3f(0.0f, 0.0f, 1.0f);
//gl.glTexCoord2f(0.0f, 0.0f);
gl.glVertex3f(-point.x - 1.0f, -1.0f, -point.z + 1.0f);
//gl.glTexCoord2f(1.0f, 0.0f);
gl.glVertex3f(-point.x + 1.0f, -1.0f, -point.z + 1.0f);
//continue rendering rest of cube. ...
gl.glEnd();
gl.glEnable(GL.GL_TEXTURE_2D);
Habe ich auch versucht, werfen die glColor3f Anrufe vor jedem Eckpunkt nennen, aber das gibt mir immer noch ein white cube. What ' s up?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es ein paar Dinge, die Sie benötigen, um sicherzustellen, dass Sie tun.
First off:
Diese wird können Sie die Farben anwenden, um Ihre Scheitelpunkte. (Tun Sie dies, bevor Sie Ihre Anrufe an glColor3f.)
Wenn dies immer noch nicht das problem zu beheben, sicherstellen Sie, dass Sie richtig mischen (wenn Sie mit dem mischen an alle.)
Für die meisten Anwendungen, werden Sie wahrscheinlich verwenden wollen
Wenn keines dieser Dinge, die Ihr problem lösen, müssen Sie möglicherweise geben Sie uns einige weitere Informationen über das, was Sie tun/einstellen, bevor Sie diesen Abschnitt Ihres Codes.
Wenn die Beleuchtung aktiviert ist, die Farbe kommt von dem material, nicht dem glColor vertex-Farben. Wenn Ihr zeichnen-Funktion, die Sie erwähnt ist das material für die strukturierte Objekte (und ein weißes material, das unter der textur wäre üblich) und dann den rest des cubes wäre weiß. Mit GL_COLOR_MATERIAL stellt OpenGL nehmen dem glColor-Befehle und Aktualisierung der Inhalte, statt nur der vertex-Farbe, so das sollte funktionieren.
So, einfach ausgedrückt, wenn Sie die Beleuchtung aktiviert ist, versuchen Sie GL_COLOR_MATERIAL.
Einer Sache, möchten Sie vielleicht versuchen, ist:
glBindTexture(GL_TEXTURE_2D, 0);
zum binden der textur zu null.Einige Dinge zu überprüfen: