0

これが何と呼ばれているのかわかりませんが、モデルを遠くから見ると、一部のエッジに照明が適用されているようには見えず、エッジが目立ちます。何か案は?テクスチャは使用していません。

頂点シェーダー:

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);
}

フラグメント シェーダー:

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);
}

写真:

問題 ズームイン

4

0 に答える 0