gpt4 book ai didi

c++ - glColor 着色所有纹理

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:08:54 26 4
gpt4 key购买 nike

我是 OpenGL 的新手,所以也许答案很明显。我目前正在尝试在 C++ 中使用 GL_TRIANGLE_FAN 制作一个蓝色圆圈。我的问题是,当我使用 glColor4f 设置颜色时,它会将我所有其他纹理设置为蓝色,如下所示(这应该是银色金属)。

我使用下面显示的方法绘制纹理。

glLoadIdentity();
glTranslatef(x,y,0);

glBindTexture(GL_TEXTURE_2D, this->texture);

glBegin(GL_QUADS);
glTexCoord2f(0.0f, 0.0f); glVertex3f(0,0,0);
glTexCoord2f(1.0f, 0.0f); glVertex3f(width,0,0);
glTexCoord2f(1.0f, 1.0f); glVertex3f(width,height,0);
glTexCoord2f(0.0f, 1.0f); glVertex3f(0,height,0);
glEnd();

我不确定我是否只需要清除一个标志才能让它工作,但我已经被困了几天了。

最佳答案

绘制蓝色圆圈后,您应该使用 glColor4f(1.f, 1.f, 1.f, 1.f); 将颜色设置回白色(默认值)。请注意,默认情况下,纹理会根据当前设置的颜色(在您的情况下为蓝色)进行调制,这就是您的银色 Material 呈现蓝色调(最终颜色 = 蓝色 * 纹理颜色)的原因。

关于c++ - glColor 着色所有纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8956736/

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