minmaxRedux.fragment.js 1.9 KB

123456789101112131415161718192021222324252627282930
  1. // Do not edit.
  2. import { ShaderStore } from "../Engines/shaderStore.js";
  3. const name = "minmaxReduxPixelShader";
  4. const shader = `varying vec2 vUV;uniform sampler2D textureSampler;
  5. #if defined(INITIAL)
  6. uniform sampler2D sourceTexture;uniform vec2 texSize;void main(void)
  7. {ivec2 coord=ivec2(vUV*(texSize-1.0));float f1=texelFetch(sourceTexture,coord,0).r;float f2=texelFetch(sourceTexture,coord+ivec2(1,0),0).r;float f3=texelFetch(sourceTexture,coord+ivec2(1,1),0).r;float f4=texelFetch(sourceTexture,coord+ivec2(0,1),0).r;float minz=min(min(min(f1,f2),f3),f4);
  8. #ifdef DEPTH_REDUX
  9. float maxz=max(max(max(sign(1.0-f1)*f1,sign(1.0-f2)*f2),sign(1.0-f3)*f3),sign(1.0-f4)*f4);
  10. #else
  11. float maxz=max(max(max(f1,f2),f3),f4);
  12. #endif
  13. glFragColor=vec4(minz,maxz,0.,0.);}
  14. #elif defined(MAIN)
  15. uniform vec2 texSize;void main(void)
  16. {ivec2 coord=ivec2(vUV*(texSize-1.0));vec2 f1=texelFetch(textureSampler,coord,0).rg;vec2 f2=texelFetch(textureSampler,coord+ivec2(1,0),0).rg;vec2 f3=texelFetch(textureSampler,coord+ivec2(1,1),0).rg;vec2 f4=texelFetch(textureSampler,coord+ivec2(0,1),0).rg;float minz=min(min(min(f1.x,f2.x),f3.x),f4.x);float maxz=max(max(max(f1.y,f2.y),f3.y),f4.y);glFragColor=vec4(minz,maxz,0.,0.);}
  17. #elif defined(ONEBEFORELAST)
  18. uniform ivec2 texSize;void main(void)
  19. {ivec2 coord=ivec2(vUV*vec2(texSize-1));vec2 f1=texelFetch(textureSampler,coord % texSize,0).rg;vec2 f2=texelFetch(textureSampler,(coord+ivec2(1,0)) % texSize,0).rg;vec2 f3=texelFetch(textureSampler,(coord+ivec2(1,1)) % texSize,0).rg;vec2 f4=texelFetch(textureSampler,(coord+ivec2(0,1)) % texSize,0).rg;float minz=min(f1.x,f2.x);float maxz=max(f1.y,f2.y);glFragColor=vec4(minz,maxz,0.,0.);}
  20. #elif defined(LAST)
  21. void main(void)
  22. {glFragColor=vec4(0.);if (true) {
  23. discard;}}
  24. #endif
  25. `;
  26. // Sideeffect
  27. ShaderStore.ShadersStore[name] = shader;
  28. /** @internal */
  29. export const minmaxReduxPixelShader = { name, shader };
  30. //# sourceMappingURL=minmaxRedux.fragment.js.map