12345678910111213141516171819202122232425262728293031323334353637383940 |
- export default /* glsl */`
- #ifdef FLAT_SHADED
- // Workaround for Adreno/Nexus5 not able able to do dFdx( vViewPosition ) ...
- vec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );
- vec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );
- vec3 normal = normalize( cross( fdx, fdy ) );
- #else
- vec3 normal = normalize( vNormal );
- #ifdef DOUBLE_SIDED
- normal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );
- #endif
- #ifdef USE_TANGENT
- vec3 tangent = normalize( vTangent );
- vec3 bitangent = normalize( vBitangent );
- #ifdef DOUBLE_SIDED
- tangent = tangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );
- bitangent = bitangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );
- #endif
- #endif
- #endif
- // non perturbed normal for clearcoat among others
- vec3 geometryNormal = normal;
- `;
|