pbrIBLFunctions.js 1.5 KB

1234567891011121314151617181920212223
  1. // Do not edit.
  2. import { ShaderStore } from "../../Engines/shaderStore.js";
  3. const name = "pbrIBLFunctions";
  4. const shader = `#if defined(REFLECTION) || defined(SS_REFRACTION)
  5. float getLodFromAlphaG(float cubeMapDimensionPixels,float microsurfaceAverageSlope) {float microsurfaceAverageSlopeTexels=cubeMapDimensionPixels*microsurfaceAverageSlope;float lod=log2(microsurfaceAverageSlopeTexels);return lod;}
  6. float getLinearLodFromRoughness(float cubeMapDimensionPixels,float roughness) {float lod=log2(cubeMapDimensionPixels)*roughness;return lod;}
  7. #endif
  8. #if defined(ENVIRONMENTBRDF) && defined(RADIANCEOCCLUSION)
  9. float environmentRadianceOcclusion(float ambientOcclusion,float NdotVUnclamped) {float temp=NdotVUnclamped+ambientOcclusion;return saturate(square(temp)-1.0+ambientOcclusion);}
  10. #endif
  11. #if defined(ENVIRONMENTBRDF) && defined(HORIZONOCCLUSION)
  12. float environmentHorizonOcclusion(vec3 view,vec3 normal,vec3 geometricNormal) {vec3 reflection=reflect(view,normal);float temp=saturate(1.0+1.1*dot(reflection,geometricNormal));return square(temp);}
  13. #endif
  14. #if defined(LODINREFLECTIONALPHA) || defined(SS_LODINREFRACTIONALPHA)
  15. #define UNPACK_LOD(x) (1.0-x)*255.0
  16. float getLodFromAlphaG(float cubeMapDimensionPixels,float alphaG,float NdotV) {float microsurfaceAverageSlope=alphaG;microsurfaceAverageSlope*=sqrt(abs(NdotV));return getLodFromAlphaG(cubeMapDimensionPixels,microsurfaceAverageSlope);}
  17. #endif
  18. `;
  19. // Sideeffect
  20. ShaderStore.IncludesShadersStore[name] = shader;
  21. /** @internal */
  22. export const pbrIBLFunctions = { name, shader };
  23. //# sourceMappingURL=pbrIBLFunctions.js.map