Spaces:
Running
Running
| export default /* glsl */ ` | |
| vec3 transformedNormal = objectNormal; | |
| #ifdef USE_INSTANCING | |
| // this is in lieu of a per-instance normal-matrix | |
| // shear transforms in the instance matrix are not supported | |
| mat3 m = mat3( instanceMatrix ); | |
| transformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) ); | |
| transformedNormal = m * transformedNormal; | |
| #endif | |
| transformedNormal = normalMatrix * transformedNormal; | |
| #ifdef FLIP_SIDED | |
| transformedNormal = - transformedNormal; | |
| #endif | |
| #ifdef USE_TANGENT | |
| vec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz; | |
| #ifdef FLIP_SIDED | |
| transformedTangent = - transformedTangent; | |
| #endif | |
| #endif | |
| `; | |