three
Version:
JavaScript 3D library
42 lines (22 loc) • 735 B
JavaScript
export default /* glsl */`
normal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; // overrides both flatShading and attribute normals
normal = - normal;
normal = normal * faceDirection;
normal = normalize( normalMatrix * normal );
vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;
mapN.xy *= normalScale;
normal = normalize( vTBN * mapN );
normal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection );
normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );
`;