Make distance fog calculation overflow less in mediump
@@ -1,6 +1,9 @@
#ifdef USE_FOG
- float fogDepth = length( vFogPosition );
+ // divide then multiply by max component to try to avoid saturating mediump precision
+ vec3 fogPositionAbs = abs( vFogPosition );
+ float fogMaxComponent = max( fogPositionAbs.x, max( fogPositionAbs.y, fogPositionAbs.z ) );
+ float fogDepth = length( vFogPosition / fogMaxComponent ) * fogMaxComponent;
#ifdef FOG_EXP2