代码之家  ›  专栏  ›  技术社区  ›  Alexander Rafferty

OpenGL照明问题

  •  1
  • Alexander Rafferty  · 技术社区  · 15 年前

    我已经让我所有的OpenGL照明工作正常,正常,材料,等等。。。

    我的问题是当光线在人脸后面时OpenGL渲染人脸的方式。如果灯光位于面后面,则应渲染黑色面,而不是渲染面背面的外观。我该如何阻止这种奇怪的行为。我觉得很难描述发生了什么,但希望你知道如何解决这个问题。

    提前谢谢。

    1 回复  |  直到 15 年前
        1
  •  2
  •   CiscoIPPhone    15 年前

    出现此问题的原因是多边形的两侧在其照明计算中使用相同的法线。

    解决方法是设置:

    float modelTwoside[] = {GL_TRUE};
    glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, modelTwoside);
    

    OpenGL也将使用back材质。

    推荐文章