我有一个 PlaneGeometry,我正在随机为顶点设置动画以创建随机尖峰。我使用这个 FragmentShader :
void main() {
vec3 light = vec3(cos(time),sin(time),1.0);
light = normalize(light);
float dProd = max(0.0, dot(vNormal, light));
gl_FragColor = vec4(dProd,dProd,dProd,1.0);
}
我希望每个尖峰的一些面都涂成黑色,但我得到了纯色。我在我的平面上放置了一个球体并应用了相同的着色器:
当我关闭线框时:
不知道我明白飞机上发生了什么?!我认为由于每个尖峰都有不同的法线,它们也应该有不同的光照。