gpt4 book ai didi

c++ - glColor 不工作,随机颜色出现

转载 作者:太空宇宙 更新时间:2023-11-04 15:51:03 34 4
gpt4 key购买 nike

我的代码某处有问题,但对于我绘制的任意数量的图元,尽管调用了 glClearColor 然后使用 glColor3f 选择颜色,出现的颜色是完全随机的......

所以在我的渲染类中,我循环遍历所有对象并调用它们的绘图方法,对于它们看起来像的图元:

inline void PrimitiveDrawer::drawWireframePrism(Vector3 pos, float radius, Vector3 col){

glClearColor( 1.0f, 1.0f, 1.0f, 1.0f );
glColor3f(col.x, col.y, col.z);

glLineWidth(3);
glBegin (GL_LINE_LOOP);
...
glEnd()

但无论我选择什么颜色,我总是得到不同的颜色......有趣的是,我用这种方法绘制的所有原始线都假定它们绑定(bind)的模型的颜色(它们意味着网格的边界体积)...这可能与我使用的模型加载器有关吗?

这会影响每个形状(除了模型周围的形状),其中每个 GL_LINE 都采用相同的颜色(出于某种原因为绿色),包括我试图绘制的 glutBitMapCharacter...这是困扰我的主要想法因为我想为文本绘图选择颜色,目前我正在做:

void renderBitmapString(float x, float y, void *font,char *string)
{

char *c;
glRasterPos2f(x, y);
for (c=string; *c != '\0'; c++) {
glutBitmapCharacter(font, *c);
}
}

void drawText(char text[20], float x, float y){
glPushMatrix();
setOrthographicProjection();
glLoadIdentity();
glClearColor( 0, 0, 0, 0 );
glColor4f(0, 0, 1, 1);
renderBitmapString(x, y,(void *)font, text);
resetPerspectiveProjection();
glPopMatrix();
}

但是文本显示为绿色而不是蓝色?

最佳答案

glClearColorglColor 无关。 glClearColor 设置调用 glClear(GL_COLOR_BUFFER_BIT) 时使用的颜色以清除帧缓冲区。

在我看来,从其他对象绘制的颜色听起来像是您忘记禁用纹理。添加一个 glDiable(GL_TEXTURE_2D); 在你完成绘制纹理后。

关于c++ - glColor 不工作,随机颜色出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8214433/

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