pbrBlockGeometryInfo.fx 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. float NdotVUnclamped = dot(normalW, viewDirectionW);
  2. // The order 1886 page 3.
  3. float NdotV = absEps(NdotVUnclamped);
  4. float alphaG = convertRoughnessToAverageSlope(roughness);
  5. vec2 AARoughnessFactors = getAARoughnessFactors(normalW.xyz);
  6. #ifdef SPECULARAA
  7. // Adapt linear roughness (alphaG) to geometric curvature of the current pixel.
  8. alphaG += AARoughnessFactors.y;
  9. #endif
  10. #if defined(ENVIRONMENTBRDF)
  11. // BRDF Lookup
  12. vec3 environmentBrdf = getBRDFLookup(NdotV, roughness);
  13. #endif
  14. #if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)
  15. #ifdef RADIANCEOCCLUSION
  16. #ifdef AMBIENTINGRAYSCALE
  17. float ambientMonochrome = aoOut.ambientOcclusionColor.r;
  18. #else
  19. float ambientMonochrome = getLuminance(aoOut.ambientOcclusionColor);
  20. #endif
  21. float seo = environmentRadianceOcclusion(ambientMonochrome, NdotVUnclamped);
  22. #endif
  23. #ifdef HORIZONOCCLUSION
  24. #ifdef BUMP
  25. #ifdef REFLECTIONMAP_3D
  26. float eho = environmentHorizonOcclusion(-viewDirectionW, normalW, geometricNormalW);
  27. #endif
  28. #endif
  29. #endif
  30. #endif