如何獲得OpenGL顏色矩陣轉換工作?OpenGL顏色矩陣
我修改了一個示例程序,只繪製了一個三角形,並添加了一些顏色矩陣代碼,以查看是否可以更改三角形的顏色,但似乎不起作用。
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();
據我所知,我加載的顏色矩陣應該將三角形改爲黑色,但似乎並不奏效。有什麼我失蹤?
其實,三角形仍然是繪製成原來的紅色,綠色和藍色,所以我不相信顏色矩陣會影響alpha分量。 – 2009-04-27 15:34:40
如果啓用了透明度,alpha組件將僅影響最終圖像,但顯然不是。 – AndyG 2009-04-28 17:48:21