如何在OpenGL中获得镜面颜色



我的代码适用于所有组件,除了镜面组件。

glEnable(GL_COLOR_SUM);
...
glEnableClientState(GL_COLOR_ARRAY);
glColorPointer(4, GL_UNSIGNED_BYTE, 0, color);
glEnableClientState(GL_SECONDARY_COLOR_ARRAY);
glSecondaryColorPointer(3, GL_UNSIGNED_BYTE, 0, specular);
...
glDrawArrays(D3DPT_TRIANGLELIST, 0, 2);

它似乎忽略了镜面,但颜色,纹理坐标,位置等都完全没问题。

这是不使用灯光和材料。Fixed-vertex管道。不幸的是,在这一点上,着色器不是一个选项。

glGetError()也没有报告任何错误。

你说:

这是不使用灯光和材料。

specular只有在有光的情况下才能计算。(如果你想的话,我可以深入到背后的数学…)

从http://en.wikipedia.org/wiki/Specular_highlight

:

镜面高光是在光照时出现在闪亮物体上的亮点。

在一个侧面说明什么是D3DPT_TRIANGLELIST在OpenGL代码?这只是问题中的一个错误,还是实际上是这样的?

相关内容

  • 没有找到相关文章

最新更新