three
Version:
JavaScript 3D library
45 lines (25 loc) • 825 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 );
mat3 vTBN = mat3( tangent, bitangent, normal );
vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;
mapN.xy = normalScale * mapN.xy;
normal = normalize( vTBN * mapN );
normal = perturbNormal2Arb( -vViewPosition, normal );
normal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );
`;