harmonicsFunctions.js 1.2 KB

123456789101112131415161718192021222324
  1. // Do not edit.
  2. import { ShaderStore } from "../../Engines/shaderStore.js";
  3. const name = "harmonicsFunctions";
  4. const shader = `#ifdef USESPHERICALFROMREFLECTIONMAP
  5. #ifdef SPHERICAL_HARMONICS
  6. vec3 computeEnvironmentIrradiance(vec3 normal) {return vSphericalL00
  7. + vSphericalL1_1*(normal.y)
  8. + vSphericalL10*(normal.z)
  9. + vSphericalL11*(normal.x)
  10. + vSphericalL2_2*(normal.y*normal.x)
  11. + vSphericalL2_1*(normal.y*normal.z)
  12. + vSphericalL20*((3.0*normal.z*normal.z)-1.0)
  13. + vSphericalL21*(normal.z*normal.x)
  14. + vSphericalL22*(normal.x*normal.x-(normal.y*normal.y));}
  15. #else
  16. vec3 computeEnvironmentIrradiance(vec3 normal) {float Nx=normal.x;float Ny=normal.y;float Nz=normal.z;vec3 C1=vSphericalZZ.rgb;vec3 Cx=vSphericalX.rgb;vec3 Cy=vSphericalY.rgb;vec3 Cz=vSphericalZ.rgb;vec3 Cxx_zz=vSphericalXX_ZZ.rgb;vec3 Cyy_zz=vSphericalYY_ZZ.rgb;vec3 Cxy=vSphericalXY.rgb;vec3 Cyz=vSphericalYZ.rgb;vec3 Czx=vSphericalZX.rgb;vec3 a1=Cyy_zz*Ny+Cy;vec3 a2=Cyz*Nz+a1;vec3 b1=Czx*Nz+Cx;vec3 b2=Cxy*Ny+b1;vec3 b3=Cxx_zz*Nx+b2;vec3 t1=Cz *Nz+C1;vec3 t2=a2 *Ny+t1;vec3 t3=b3 *Nx+t2;return t3;}
  17. #endif
  18. #endif
  19. `;
  20. // Sideeffect
  21. ShaderStore.IncludesShadersStore[name] = shader;
  22. /** @internal */
  23. export const harmonicsFunctions = { name, shader };
  24. //# sourceMappingURL=harmonicsFunctions.js.map