stereoscopicInterlace.fragment.js 1.4 KB

123456789101112131415161718192021222324
  1. // Do not edit.
  2. import { ShaderStore } from "../Engines/shaderStore.js";
  3. const name = "stereoscopicInterlacePixelShader";
  4. const shader = `const vec3 TWO=vec3(2.0,2.0,2.0);varying vec2 vUV;uniform sampler2D camASampler;uniform sampler2D textureSampler;uniform vec2 stepSize;
  5. #define CUSTOM_FRAGMENT_DEFINITIONS
  6. void main(void)
  7. {bool useCamA;bool useCamB;vec2 texCoord1;vec2 texCoord2;vec3 frag1;vec3 frag2;
  8. #ifdef IS_STEREOSCOPIC_HORIZ
  9. useCamB=vUV.x>0.5;useCamA=!useCamB;texCoord1=vec2(useCamB ? (vUV.x-0.5)*2.0 : vUV.x*2.0,vUV.y);texCoord2=vec2(texCoord1.x+stepSize.x,vUV.y);
  10. #else
  11. #ifdef IS_STEREOSCOPIC_INTERLACED
  12. float rowNum=floor(vUV.y/stepSize.y);useCamA=mod(rowNum,2.0)==1.0;useCamB=mod(rowNum,2.0)==0.0;texCoord1=vec2(vUV.x,vUV.y);texCoord2=vec2(vUV.x,vUV.y);
  13. #else
  14. useCamB=vUV.y>0.5;useCamA=!useCamB;texCoord1=vec2(vUV.x,useCamB ? (vUV.y-0.5)*2.0 : vUV.y*2.0);texCoord2=vec2(vUV.x,texCoord1.y+stepSize.y);
  15. #endif
  16. #endif
  17. if (useCamB){frag1=texture2D(textureSampler,texCoord1).rgb;frag2=texture2D(textureSampler,texCoord2).rgb;}else if (useCamA){frag1=texture2D(camASampler ,texCoord1).rgb;frag2=texture2D(camASampler ,texCoord2).rgb;}else {discard;}
  18. gl_FragColor=vec4((frag1+frag2)/TWO,1.0);}
  19. `;
  20. // Sideeffect
  21. ShaderStore.ShadersStore[name] = shader;
  22. /** @internal */
  23. export const stereoscopicInterlacePixelShader = { name, shader };
  24. //# sourceMappingURL=stereoscopicInterlace.fragment.js.map