我已经设置了一个包含定向灯的基本片段着色器。我试图使用这种定向光点亮一个四边形,一切似乎按预期工作但我有一个问题:这个扁平四边形的两边是否应该受到定向光的影响?
当旋转相机时,我注意到四边形的背面和前面一样明亮。如果发生这种情况,或者只应点亮四极的一个侧?
答案 0 :(得分:0)
这是正常的,因为四边形的背面是与正面“相同的四边形”。它们具有相同的法线,因此照明会产生相同的结果。如果你不想要这个,有两个解决方案:
在片段着色器中,测试gl_FrontFacing。如果它是假的,否定正常。它可以在没有分支的情况下完成:
normal = gl_FrontFacing? normal:-normal;