WebGL光照不适用于某些边缘?

时间:2013-08-05 06:26:17

标签: opengl-es glsl webgl lighting

不知道这是什么叫做,但是当远处观看我的模型时,它看起来并不像正在应用于某些边缘的光线,这使它们脱颖而出。有任何想法吗?我没有使用任何纹理。

顶点着色器:

attribute vec3 aPosition;
attribute vec3 aNormal;

uniform mat4 uMVMatrix;
uniform mat4 uPMatrix;
uniform mat4 uNormalMatrix;

varying vec3 vLighting;

void main(void) {
  vec3 ambientLight = vec3(0.2, 0.2, 0.2);
  vec3 directionalLight = vec3(1.0, 0.5, 0.5);
  vec3 directionalLightDirection = vec3(0.8, 0.7, 0.6);

  vec4 transformedNormal = uNormalMatrix * vec4(aNormal, 1.0);
  float directional = max(dot(transformedNormal.xyz, directionalLightDirection), 0.0);
  vLighting = ambientLight + (directionalLight * directional);

  gl_Position = uPMatrix * uMVMatrix * vec4(aPosition / 80.0, 1.0);
}

Fragment Shader:

precision mediump float;

varying vec3 vLighting;

void main(void) {
  vec4 skin = vec4(0.8, 0.6, 0.4, 1.0);
  gl_FragColor = vec4(skin.rgb * vLighting, skin.a);
}

照片:

Issue Zoomed in

0 个答案:

没有答案