Wie bekomme ich die OpenGL-Farbmatrix-Transformationen zum Laufen?OpenGL-Farbmatrix
Ich habe ein Beispielprogramm geändert, das nur ein Dreieck zeichnet und einen Farbmatrixcode hinzugefügt, um zu sehen, ob ich die Farben des Dreiecks ändern kann, aber es scheint nicht zu funktionieren.
static float theta = 0.0f;
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
glClearDepth(1.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glRotatef(theta, 0.0f, 0.0f, 1.0f);
glMatrixMode(GL_COLOR);
GLfloat rgbconversion[16] =
{
0.0f, 0.0f, 0.0f, 0.0f,
0.0f, 0.0f, 0.0f, 0.0f,
0.0f, 0.0f, 0.0f, 0.0f,
0.0f, 0.0f, 0.0f, 0.0f
};
glLoadMatrixf(rgbconversion);
glMatrixMode(GL_MODELVIEW);
glBegin(GL_TRIANGLES);
glColor3f(1.0f, 0.0f, 0.0f); glVertex3f(0.0f, 1.0f , 0.5f);
glColor3f(0.0f, 1.0f, 0.0f); glVertex3f(0.87f, -0.5f, 0.5f);
glColor3f(0.0f, 0.0f, 1.0f); glVertex3f(-0.87f, -0.5f, 0.5f);
glEnd();
glPopMatrix();
Soweit ich sagen kann, ist die Farbmatrix I Laden bin sollte das Dreieck schwarz ändern, aber es scheint nicht zu funktionieren. Gibt es etwas, das mir fehlt?
Eigentlich noch das Dreieck gezeichnet in seinem ursprünglichen Rot, Grün und Blau, so glaube ich nicht, dass die Farbmatrix die Alpha-Komponente beeinflusst. –
Die Alphakomponente wirkt sich nur auf das endgültige Bild aus, wenn Transparenz aktiviert ist, was offensichtlich nicht der Fall ist. – AndyG
Ich habe ein glEnable (GL_BLEND) hinzugefügt; aber es hat immer noch keinen Einfluss auf das Bild. Es ist immer noch ein rot/grün/blaues Dreieck. Es scheint, dass die Farbmatrix keine Wirkung hat. –