12345678910111213141516 |
- export default /* glsl */`
- #ifdef USE_MORPHNORMALS
- // morphTargetBaseInfluence is set based on BufferGeometry.morphTargetsRelative value:
- // When morphTargetsRelative is false, this is set to 1 - sum(influences); this results in normal = sum((target - base) * influence)
- // When morphTargetsRelative is true, this is set to 1; as a result, all morph targets are simply added to the base after weighting
- objectNormal *= morphTargetBaseInfluence;
- for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
- if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];
- }
- #endif
- `;
|