我已经让我所有的OpenGL照明工作正常,正常,材料,等等。。。
我的问题是当光线在人脸后面时OpenGL渲染人脸的方式。如果灯光位于面后面,则应渲染黑色面,而不是渲染面背面的外观。我该如何阻止这种奇怪的行为。我觉得很难描述发生了什么,但希望你知道如何解决这个问题。
提前谢谢。
出现此问题的原因是多边形的两侧在其照明计算中使用相同的法线。
解决方法是设置:
float modelTwoside[] = {GL_TRUE}; glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, modelTwoside);
OpenGL也将使用back材质。