c-frame/aframe-gltf-model-plus

SimpleWater shader error with three r164

vincentfretin opened this issue · 1 comments

I have a shader error in playground example since the update to three r164, I don't know where it's coming from. The scene doesn't seem impacted.

THREE.WebGLProgram: Shader Error 0 - VALIDATE_STATUS false

Material Name: SimpleWaterMaterial
Material Type: MeshStandardMaterial

Program Info Log: Fragment shader is not compiled.


FRAGMENT

ERROR: 0:1659: 'vUv' : undeclared identifier
ERROR: 0:1659: 'st' :  field selection requires structure, vector, or interface block on left hand side
ERROR: 0:1659: '=' : dimension mismatch
ERROR: 0:1659: '=' : cannot convert from 'highp float' to 'highp 2-component vector of float'
ERROR: 0:1660: 'vUv' : undeclared identifier
ERROR: 0:1660: 'st' :  field selection requires structure, vector, or interface block on left hand side
ERROR: 0:1660: '=' : dimension mismatch
ERROR: 0:1660: '=' : cannot convert from 'highp float' to 'highp 2-component vector of float'


  1654:           // Workaround for Adreno 3XX dFd*( vec3 ) bug. See #9988
  1655: 
  1656:           vec3 eye_pos = -vViewPosition;
  1657:           vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );
  1658:           vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );
> 1659:           vec2 st0 = dFdx( vUv.st );
  1660:           vec2 st1 = dFdy( vUv.st );
  1661: 
  1662:           float scale = sign( st1.t * st0.s - st0.t * st1.s ); // we do not care about the magnitude
  1663: 
  1664:           vec3 S = normalize( ( q0 * st1.t - q1 * st0.t ) * scale );
  1665:           vec3 T = normalize( ( - q0 * st1.s + q1 * st0.s ) * scale );

Oh wait it says Material Name: SimpleWaterMaterial I missed that completely.
If someone want to try to make a fix, please go ahead.