GLSL Phong-Shader 高光伪像

GLSL Phong-Shader Specular artifacts

我在使用此 Phong-Shader 时遇到了一些镜面反射问题,它生成了一个奇怪的输出。 (密切注意模特的耳朵): http://i.imgur.com/1n3gYvn.gif

此外,它在平面上有一个奇怪的行为:

这是着色器代码: 顶点+片段:http://www.pasteall.org/59832

在着色器代码的第 79 行中,将 dot(R,E) 更改为 max(dot(R,E),0.0)。这是因为当 R 和 E 之间的角度大于 90 度时,如附图所示,当眼睛位于 Eye2 时,您不想让表面看起来闪闪发光。 Here,在 实现 Phong 着色器 部分,为您可能会发现有用的 Lambertian 光照模型提供了一个有用的 GLSL 模板。