three
Version:
JavaScript 3D library
42 lines (22 loc) • 729 B
JavaScript
export default /* glsl */`
normal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; // overrides both flatShading and attribute normals
normal = - normal;
normal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );
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 );
normal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );
`;