gpt4 book ai didi

c++ - glDisable(GL_COLOR_MATERIAL) 无法正常工作

转载 作者:行者123 更新时间:2023-11-28 07:49:52 25 4
gpt4 key购买 nike

我需要绘制一个带有三角形和球体的对象。我的对象有自己的 Material 属性,我用 glMaterialfv 定义了它们。球体只是一个带有颜色的球体。但是,我的对象的某些部分(它是它的多边形之一)用球体的颜色着色。我该如何解决这个问题?

我的对象函数

void drawObject()
{glDisable(GL_COLOR_MATERIAL);




for(int i=0;i<j;i++)
{ glBegin(GL_TRIANGLES);
glNormal3f(..);
glVertex3f(..);

glNormal3f(..);
glVertex3f(..);

glNormal3f(..);
glVertex3f(..);

GLfloat ambientValues[]={..};
GLfloat specularValues[]={..};
GLfloat diffuseValuse[]={..};
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT,ambientValues);
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE,diffuseValues);
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR,specularValues);


glEnd();

}




}

最佳答案

这里有两个错误: Material 必须在绘图操作之前设置。并且 glMaterialfv 在 glBegin/glEnd block 中无效。顺便说一句,你不应该首先使用立即模式(glBegin/glEnd)。 15 年来一直不鼓励使用它。

关于c++ - glDisable(GL_COLOR_MATERIAL) 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14056474/

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