123456789101112131415161718192021222324252627282930313233343536373839404142 |
- export default /* glsl */`
- #ifdef OBJECTSPACE_NORMALMAP
- normal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; // overrides both flatShading and attribute normals
- #ifdef FLIP_SIDED
- normal = - normal;
- #endif
- #ifdef DOUBLE_SIDED
- normal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );
- #endif
- normal = normalize( normalMatrix * normal );
- #elif defined( TANGENTSPACE_NORMALMAP )
- vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;
- mapN.xy *= normalScale;
- #ifdef USE_TANGENT
- mat3 vTBN = mat3( tangent, bitangent, normal );
- normal = normalize( vTBN * mapN );
- #else
- normal = perturbNormal2Arb( -vViewPosition, normal, mapN );
- #endif
- #elif defined( USE_BUMPMAP )
- normal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );
- #endif
- `;
|