gpt4 book ai didi

c++ - OpenGL 颜色矩阵

转载 作者:太空宇宙 更新时间:2023-11-03 10:37:19 26 4
gpt4 key购买 nike

如何使 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();

据我所知,我正在加载的颜色矩阵应该将三角形更改为黑色,但它似乎不起作用。有什么我想念的吗?

最佳答案

颜色矩阵仅适用于像素传输操作,例如 glDrawPixels,它们在当前硬件上没有硬件加速。但是,使用片段着色器实现颜色矩阵非常容易。您可以将矩阵作为统一的 mat4 传递,然后使用 gl_FragColor

对其进行乘法运算

关于c++ - OpenGL 颜色矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/789904/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com