depthOfFieldMerge.fragment.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334
  1. // Do not edit.
  2. import { ShaderStore } from "../Engines/shaderStore.js";
  3. const name = "depthOfFieldMergePixelShader";
  4. const shader = `#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)
  5. #define TEXTUREFUNC(s,c,lod) texture2DLodEXT(s,c,lod)
  6. #else
  7. #define TEXTUREFUNC(s,c,bias) texture2D(s,c,bias)
  8. #endif
  9. uniform sampler2D textureSampler;varying vec2 vUV;uniform sampler2D circleOfConfusionSampler;uniform sampler2D blurStep0;
  10. #if BLUR_LEVEL>0
  11. uniform sampler2D blurStep1;
  12. #endif
  13. #if BLUR_LEVEL>1
  14. uniform sampler2D blurStep2;
  15. #endif
  16. #define CUSTOM_FRAGMENT_DEFINITIONS
  17. void main(void)
  18. {float coc=TEXTUREFUNC(circleOfConfusionSampler,vUV,0.0).r;
  19. #if BLUR_LEVEL==0
  20. vec4 original=TEXTUREFUNC(textureSampler,vUV,0.0);vec4 blurred0=TEXTUREFUNC(blurStep0,vUV,0.0);gl_FragColor=mix(original,blurred0,coc);
  21. #endif
  22. #if BLUR_LEVEL==1
  23. if(coc<0.5){vec4 original=TEXTUREFUNC(textureSampler,vUV,0.0);vec4 blurred1=TEXTUREFUNC(blurStep1,vUV,0.0);gl_FragColor=mix(original,blurred1,coc/0.5);}else{vec4 blurred0=TEXTUREFUNC(blurStep0,vUV,0.0);vec4 blurred1=TEXTUREFUNC(blurStep1,vUV,0.0);gl_FragColor=mix(blurred1,blurred0,(coc-0.5)/0.5);}
  24. #endif
  25. #if BLUR_LEVEL==2
  26. if(coc<0.33){vec4 original=TEXTUREFUNC(textureSampler,vUV,0.0);vec4 blurred2=TEXTUREFUNC(blurStep2,vUV,0.0);gl_FragColor=mix(original,blurred2,coc/0.33);}else if(coc<0.66){vec4 blurred1=TEXTUREFUNC(blurStep1,vUV,0.0);vec4 blurred2=TEXTUREFUNC(blurStep2,vUV,0.0);gl_FragColor=mix(blurred2,blurred1,(coc-0.33)/0.33);}else{vec4 blurred0=TEXTUREFUNC(blurStep0,vUV,0.0);vec4 blurred1=TEXTUREFUNC(blurStep1,vUV,0.0);gl_FragColor=mix(blurred1,blurred0,(coc-0.66)/0.34);}
  27. #endif
  28. }
  29. `;
  30. // Sideeffect
  31. ShaderStore.ShadersStore[name] = shader;
  32. /** @internal */
  33. export const depthOfFieldMergePixelShader = { name, shader };
  34. //# sourceMappingURL=depthOfFieldMerge.fragment.js.map