UNPKG

@babylonjs/viewer

Version:

The Babylon Viewer aims to simplify a specific but common Babylon.js use case: loading, viewing, and interacting with a 3D model.

3 lines (2 loc) 3.71 kB
import{S as e}from"./index-BPURObVq.esm.min.js";const n="textureProcessorPixelShader",f="#ifdef OPERAND_A_TEXTURE\nuniform sampler2D textureA;\n#endif\n#ifdef OPERAND_B_TEXTURE\nuniform sampler2D textureB;\n#endif\n#if defined(OP_LERP) && defined(LERP_T_TEXTURE)\nuniform sampler2D textureT;\n#endif\n#ifdef OPERAND_A_MATRIX\nuniform mat4 textureAMatrix;\n#endif\n#ifdef OPERAND_B_MATRIX\nuniform mat4 textureBMatrix;\n#endif\n#if defined(OP_LERP) && defined(LERP_T_MATRIX)\nuniform mat4 textureTMatrix;\n#endif\n#if !defined(OPERAND_A_TEXTURE) || defined(OPERAND_A_FACTOR)\nuniform vec4 factorA;\n#endif\n#if !defined(OPERAND_B_TEXTURE) || defined(OPERAND_B_FACTOR)\nuniform vec4 factorB;\n#endif\n#if defined(OP_LERP) && (!defined(LERP_T_TEXTURE) || defined(LERP_T_FACTOR))\nuniform vec4 factorT;\n#endif\nvarying vec2 vUV;void main() {vec2 uv=vUV;\n#ifdef OPERAND_A_TEXTURE\n#ifdef OPERAND_A_MATRIX\nvec4 a=texture2D(textureA,(textureAMatrix*vec4(uv,0.0,1.0)).xy);\n#else\nvec4 a=texture2D(textureA,uv);\n#endif\n#ifdef OPERAND_A_SRGB\na.rgb=mix(a.rgb/12.92,pow((a.rgb+0.055)/1.055,vec3(2.4)),step(vec3(0.04045),a.rgb));\n#endif\n#ifdef OPERAND_A_CHANNEL_R\na=vec4(a.rrr,a.a);\n#elif defined(OPERAND_A_CHANNEL_G)\na=vec4(a.ggg,a.a);\n#elif defined(OPERAND_A_CHANNEL_B)\na=vec4(a.bbb,a.a);\n#elif defined(OPERAND_A_CHANNEL_A)\na=a.aaaa;\n#endif\n#ifdef OPERAND_A_FACTOR\na*=factorA;\n#endif\n#else\nvec4 a=factorA;\n#endif\n#ifdef OPERAND_B_TEXTURE\n#ifdef OPERAND_B_MATRIX\nvec4 b=texture2D(textureB,(textureBMatrix*vec4(uv,0.0,1.0)).xy);\n#else\nvec4 b=texture2D(textureB,uv);\n#endif\n#ifdef OPERAND_B_SRGB\nb.rgb=mix(b.rgb/12.92,pow((b.rgb+0.055)/1.055,vec3(2.4)),step(vec3(0.04045),b.rgb));\n#endif\n#ifdef OPERAND_B_CHANNEL_R\nb=vec4(b.rrr,b.a);\n#elif defined(OPERAND_B_CHANNEL_G)\nb=vec4(b.ggg,b.a);\n#elif defined(OPERAND_B_CHANNEL_B)\nb=vec4(b.bbb,b.a);\n#elif defined(OPERAND_B_CHANNEL_A)\nb=b.aaaa;\n#endif\n#ifdef OPERAND_B_FACTOR\nb*=factorB;\n#endif\n#else\nvec4 b=factorB;\n#endif\n#ifdef OP_CHANNEL_MAX\nfloat _cmax=max(max(a.r,a.g),a.b);\n#ifdef CHANNEL_MAX_INCLUDE_ALPHA\n_cmax=max(_cmax,a.a);vec4 result=vec4(_cmax,_cmax,_cmax,_cmax);\n#else\nvec4 result=vec4(_cmax,_cmax,_cmax,a.a);\n#endif\n#elif defined(OP_INVERT)\nfloat _ir=a.r; float _ig=a.g; float _ib=a.b; float _ia=a.a;\n#ifdef INVERT_R\n_ir=1.0-_ir;\n#endif\n#ifdef INVERT_G\n_ig=1.0-_ig;\n#endif\n#ifdef INVERT_B\n_ib=1.0-_ib;\n#endif\n#ifdef INVERT_A\n_ia=1.0-_ia;\n#endif\nvec4 result=vec4(_ir,_ig,_ib,_ia);\n#elif defined(OP_LERP)\n#ifdef LERP_T_TEXTURE\n#ifdef LERP_T_MATRIX\nvec4 t=texture2D(textureT,(textureTMatrix*vec4(uv,0.0,1.0)).xy);\n#else\nvec4 t=texture2D(textureT,uv);\n#endif\n#ifdef LERP_T_SRGB\nt.rgb=mix(t.rgb/12.92,pow((t.rgb+0.055)/1.055,vec3(2.4)),step(vec3(0.04045),t.rgb));\n#endif\n#ifdef LERP_T_CHANNEL_R\nt=vec4(t.rrr,t.a);\n#elif defined(LERP_T_CHANNEL_G)\nt=vec4(t.ggg,t.a);\n#elif defined(LERP_T_CHANNEL_B)\nt=vec4(t.bbb,t.a);\n#elif defined(LERP_T_CHANNEL_A)\nt=t.aaaa;\n#endif\n#ifdef LERP_T_FACTOR\nt*=factorT;\n#endif\n#else\nvec4 t=factorT;\n#endif\nvec4 result=mix(a,b,t);\n#elif defined(OP_MAX)\nvec4 result=max(a,b);\n#else\nvec4 result=a*b;\n#endif\n#ifdef OUTPUT_MASK_R_ZERO\nresult.r=0.0;\n#endif\n#ifdef OUTPUT_MASK_G_ZERO\nresult.g=0.0;\n#endif\n#ifdef OUTPUT_MASK_B_ZERO\nresult.b=0.0;\n#endif\n#ifdef OUTPUT_MASK_A_ONE\nresult.a=1.0;\n#endif\n#ifdef OUTPUT_SRGB\nresult.rgb=mix(result.rgb*12.92,pow(result.rgb,vec3(1.0/2.4))*1.055-0.055,step(vec3(0.0031308),result.rgb));\n#endif\ngl_FragColor=result;}\n";e.ShadersStore[n]||(e.ShadersStore[n]=f);const i={name:n,shader:f};export{i as textureProcessorPixelShader}; //# sourceMappingURL=textureProcessor.fragment-DFKl1MD_.esm.min.js.map