我认为这是一个非常愚蠢和新手的问题,但后来我是图形和 openGL 的新手。绘制了一个球体并在附近放置了一个光源,并指定了环境光,我开始试验光和 Material 值,得出了一个令人惊讶的结论:当启用照明时,我们用 glColor* 指定的颜色根本无关紧要。相反,等效的是 Material 的环境组件。这个结论正确吗?谢谢

最佳答案

如果启用了照明,那么将使用 Material 颜色 (嗯,颜色 - 其中有几种用于对光的不同类型的响应)而不是顶点颜色。 Material 颜色由 glMaterial* 函数指定。

如果要重用代码,可以使用 glEnable(GL_COLOR_MATERIAL)glColorMaterial(GL_AMBIENT_AND_DIFFUSE) 将旧的 glColor* 调用自动映射到 Material 颜色。

(并且请尽快切换到着色器 - 着色器方法既简单又强大)

关于c++ - 基本的OpenGL光照问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4172704/

10-16 19:16