如何在OpenGL中获得镜面反射颜色?

时间:2011-11-25 06:51:03

标签: opengl colors vertices specular

我的代码适用于除镜面反射分量以外的所有内容。

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);

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

这不是使用灯光和材料。固定顶点管道。不幸的是,着色器在这一点上不是一种选择。

glGetError()在任何时候都没有报告任何错误。

1 个答案:

答案 0 :(得分:1)

你说:

  

这不使用灯光和材料。

只能在有光源的情况下计算镜面反射。 (如果你想我可以在它背后进行数学运算......)

来自http://en.wikipedia.org/wiki/Specular_highlight

  

镜面反射高光是发光的物体在亮起时出现的亮点

旁边注意到D3DPT_TRIANGLELIST在OpenGL代码中做了什么?这只是问题中的错误还是实际上是这样的?