1234567891011121314151617181920212223242526272829303132333435363738 |
- // Do not edit.
- import { ShaderStore } from "../../Engines/shaderStore.js";
- const name = "pbrBlockAlphaFresnel";
- const shader = `#ifdef ALPHAFRESNEL
- #if defined(ALPHATEST) || defined(ALPHABLEND)
- struct alphaFresnelOutParams
- {float alpha;};
- #define pbr_inline
- void alphaFresnelBlock(
- in vec3 normalW,
- in vec3 viewDirectionW,
- in float alpha,
- in float microSurface,
- out alphaFresnelOutParams outParams
- )
- {float opacityPerceptual=alpha;
- #ifdef LINEARALPHAFRESNEL
- float opacity0=opacityPerceptual;
- #else
- float opacity0=opacityPerceptual*opacityPerceptual;
- #endif
- float opacity90=fresnelGrazingReflectance(opacity0);vec3 normalForward=faceforward(normalW,-viewDirectionW,normalW);outParams.alpha=getReflectanceFromAnalyticalBRDFLookup_Jones(saturate(dot(viewDirectionW,normalForward)),vec3(opacity0),vec3(opacity90),sqrt(microSurface)).x;
- #ifdef ALPHATEST
- if (outParams.alpha<ALPHATESTVALUE)
- discard;
- #ifndef ALPHABLEND
- outParams.alpha=1.0;
- #endif
- #endif
- }
- #endif
- #endif
- `;
- // Sideeffect
- ShaderStore.IncludesShadersStore[name] = shader;
- /** @internal */
- export const pbrBlockAlphaFresnel = { name, shader };
- //# sourceMappingURL=pbrBlockAlphaFresnel.js.map
|