OITCompositing.glsl.js 1.2 KB

12345678910111213
  1. /*
  2. All material copyright ESRI, All Rights Reserved, unless otherwise specified.
  3. See https://js.arcgis.com/4.25/esri/copyright.txt for details.
  4. */
  5. import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.js";import{NoParameters as r,glsl as o}from"../views/3d/webgl-engine/core/shaderModules/interfaces.js";import{ShaderBuilder as a}from"../views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js";import{Texture2DPassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";class s extends r{}function n(){const r=new a;return r.include(e),r.fragment.uniforms.add([new t("colorTexture",(e=>e.colorTexture)),new t("alphaTexture",(e=>e.alphaTexture)),new t("frontFaceTexture",(e=>e.frontFaceTexture))]),r.fragment.code.add(o`void main() {
  6. vec4 srcColor = texture2D(colorTexture, uv);
  7. if(srcColor.a <= 1e-5){
  8. discard;
  9. }
  10. float srcAlpha = texture2D(alphaTexture, uv).r;
  11. vec4 frontFace = texture2D(frontFaceTexture, uv);
  12. gl_FragColor = vec4(mix(srcColor.rgb/srcColor.a, frontFace.rgb, frontFace.a), 1.0 - srcAlpha);
  13. }`),r}const c=Object.freeze(Object.defineProperty({__proto__:null,OITCompositingPassParameters:s,build:n},Symbol.toStringTag,{value:"Module"}));export{s as O,c as a,n as b};