12345678910111213141516171819202122232425262728293031323334 |
- // Do not edit.
- import { ShaderStore } from "../../Engines/shaderStore.js";
- const name = "oitFragment";
- const shader = `#ifdef ORDER_INDEPENDENT_TRANSPARENCY
- float fragDepth=gl_FragCoord.z;
- #ifdef ORDER_INDEPENDENT_TRANSPARENCY_16BITS
- uint halfFloat=packHalf2x16(vec2(fragDepth));vec2 full=unpackHalf2x16(halfFloat);fragDepth=full.x;
- #endif
- ivec2 fragCoord=ivec2(gl_FragCoord.xy);vec2 lastDepth=texelFetch(oitDepthSampler,fragCoord,0).rg;vec4 lastFrontColor=texelFetch(oitFrontColorSampler,fragCoord,0);depth.rg=vec2(-MAX_DEPTH);frontColor=lastFrontColor;backColor=vec4(0.0);
- #ifdef USE_REVERSE_DEPTHBUFFER
- float furthestDepth=-lastDepth.x;float nearestDepth=lastDepth.y;
- #else
- float nearestDepth=-lastDepth.x;float furthestDepth=lastDepth.y;
- #endif
- float alphaMultiplier=1.0-lastFrontColor.a;
- #ifdef USE_REVERSE_DEPTHBUFFER
- if (fragDepth>nearestDepth || fragDepth<furthestDepth) {
- #else
- if (fragDepth<nearestDepth || fragDepth>furthestDepth) {
- #endif
- return;}
- #ifdef USE_REVERSE_DEPTHBUFFER
- if (fragDepth<nearestDepth && fragDepth>furthestDepth) {
- #else
- if (fragDepth>nearestDepth && fragDepth<furthestDepth) {
- #endif
- depth.rg=vec2(-fragDepth,fragDepth);return;}
- #endif
- `;
- // Sideeffect
- ShaderStore.IncludesShadersStore[name] = shader;
- /** @internal */
- export const oitFragment = { name, shader };
- //# sourceMappingURL=oitFragment.js.map
|