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) 4.61 kB
import{S as e}from"./index-BPURObVq.esm.min.js";const f="textureProcessorPixelShader",n="#ifdef OPERAND_A_TEXTURE\nvar textureASampler: sampler;var textureA: texture_2d<f32>;\n#endif\n#ifdef OPERAND_B_TEXTURE\nvar textureBSampler: sampler;var textureB: texture_2d<f32>;\n#endif\n#if defined(OP_LERP) && defined(LERP_T_TEXTURE)\nvar textureTSampler: sampler;var textureT: texture_2d<f32>;\n#endif\n#ifdef OPERAND_A_MATRIX\nuniform textureAMatrix: mat4x4f;\n#endif\n#ifdef OPERAND_B_MATRIX\nuniform textureBMatrix: mat4x4f;\n#endif\n#if defined(OP_LERP) && defined(LERP_T_MATRIX)\nuniform textureTMatrix: mat4x4f;\n#endif\n#if !defined(OPERAND_A_TEXTURE) || defined(OPERAND_A_FACTOR)\nuniform factorA: vec4f;\n#endif\n#if !defined(OPERAND_B_TEXTURE) || defined(OPERAND_B_FACTOR)\nuniform factorB: vec4f;\n#endif\n#if defined(OP_LERP) && (!defined(LERP_T_TEXTURE) || defined(LERP_T_FACTOR))\nuniform factorT: vec4f;\n#endif\nvarying vUV: vec2f;@fragment\nfn main(input: FragmentInputs)->FragmentOutputs {let uv: vec2f=input.vUV;\n#ifdef OPERAND_A_TEXTURE\n#ifdef OPERAND_A_MATRIX\nvar a: vec4f=textureSample(textureA,textureASampler,(uniforms.textureAMatrix*vec4f(uv,0.0,1.0)).xy);\n#else\nvar a: vec4f=textureSample(textureA,textureASampler,uv);\n#endif\n#ifdef OPERAND_A_SRGB\na=vec4f(mix(a.rgb/vec3f(12.92),pow((a.rgb+vec3f(0.055))/vec3f(1.055),vec3f(2.4)),step(vec3f(0.04045),a.rgb)),a.a);\n#endif\n#ifdef OPERAND_A_CHANNEL_R\na=vec4f(a.rrr,a.a);\n#elif defined(OPERAND_A_CHANNEL_G)\na=vec4f(a.ggg,a.a);\n#elif defined(OPERAND_A_CHANNEL_B)\na=vec4f(a.bbb,a.a);\n#elif defined(OPERAND_A_CHANNEL_A)\na=a.aaaa;\n#endif\n#ifdef OPERAND_A_FACTOR\na*=uniforms.factorA;\n#endif\n#else\nlet a: vec4f=uniforms.factorA;\n#endif\n#ifdef OPERAND_B_TEXTURE\n#ifdef OPERAND_B_MATRIX\nvar b: vec4f=textureSample(textureB,textureBSampler,(uniforms.textureBMatrix*vec4f(uv,0.0,1.0)).xy);\n#else\nvar b: vec4f=textureSample(textureB,textureBSampler,uv);\n#endif\n#ifdef OPERAND_B_SRGB\nb=vec4f(mix(b.rgb/vec3f(12.92),pow((b.rgb+vec3f(0.055))/vec3f(1.055),vec3f(2.4)),step(vec3f(0.04045),b.rgb)),b.a);\n#endif\n#ifdef OPERAND_B_CHANNEL_R\nb=vec4f(b.rrr,b.a);\n#elif defined(OPERAND_B_CHANNEL_G)\nb=vec4f(b.ggg,b.a);\n#elif defined(OPERAND_B_CHANNEL_B)\nb=vec4f(b.bbb,b.a);\n#elif defined(OPERAND_B_CHANNEL_A)\nb=b.aaaa;\n#endif\n#ifdef OPERAND_B_FACTOR\nb*=uniforms.factorB;\n#endif\n#else\nlet b: vec4f=uniforms.factorB;\n#endif\n#ifdef OP_CHANNEL_MAX\nvar _cmax: f32=max(max(a.r,a.g),a.b);\n#ifdef CHANNEL_MAX_INCLUDE_ALPHA\n_cmax=max(_cmax,a.a);var result: vec4f=vec4f(_cmax,_cmax,_cmax,_cmax);\n#else\nvar result: vec4f=vec4f(_cmax,_cmax,_cmax,a.a);\n#endif\n#elif defined(OP_INVERT)\nvar _ir: f32=a.r; var _ig: f32=a.g; var _ib: f32=a.b; var _ia: f32=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\nvar result: vec4f=vec4f(_ir,_ig,_ib,_ia);\n#elif defined(OP_LERP)\n#ifdef LERP_T_TEXTURE\n#ifdef LERP_T_MATRIX\nvar t: vec4f=textureSample(textureT,textureTSampler,(uniforms.textureTMatrix*vec4f(uv,0.0,1.0)).xy);\n#else\nvar t: vec4f=textureSample(textureT,textureTSampler,uv);\n#endif\n#ifdef LERP_T_SRGB\nt=vec4f(mix(t.rgb/vec3f(12.92),pow((t.rgb+vec3f(0.055))/vec3f(1.055),vec3f(2.4)),step(vec3f(0.04045),t.rgb)),t.a);\n#endif\n#ifdef LERP_T_CHANNEL_R\nt=vec4f(t.rrr,t.a);\n#elif defined(LERP_T_CHANNEL_G)\nt=vec4f(t.ggg,t.a);\n#elif defined(LERP_T_CHANNEL_B)\nt=vec4f(t.bbb,t.a);\n#elif defined(LERP_T_CHANNEL_A)\nt=t.aaaa;\n#endif\n#ifdef LERP_T_FACTOR\nt*=uniforms.factorT;\n#endif\n#else\nlet t: vec4f=uniforms.factorT;\n#endif\nvar result: vec4f=mix(a,b,t);\n#elif defined(OP_MAX)\nvar result: vec4f=max(a,b);\n#else\nvar result: vec4f=a*b;\n#endif\n#if defined(OUTPUT_MASK_R_ZERO) || defined(OUTPUT_MASK_G_ZERO) || defined(OUTPUT_MASK_B_ZERO) || defined(OUTPUT_MASK_A_ONE)\nvar _omr: f32=result.r; var _omg: f32=result.g; var _omb: f32=result.b; var _oma: f32=result.a;\n#ifdef OUTPUT_MASK_R_ZERO\n_omr=0.0;\n#endif\n#ifdef OUTPUT_MASK_G_ZERO\n_omg=0.0;\n#endif\n#ifdef OUTPUT_MASK_B_ZERO\n_omb=0.0;\n#endif\n#ifdef OUTPUT_MASK_A_ONE\n_oma=1.0;\n#endif\nresult=vec4f(_omr,_omg,_omb,_oma);\n#endif\n#ifdef OUTPUT_SRGB\nresult=vec4f(mix(result.rgb*vec3f(12.92),pow(result.rgb,vec3f(1.0/2.4))*vec3f(1.055)-vec3f(0.055),step(vec3f(0.0031308),result.rgb)),result.a);\n#endif\nfragmentOutputs.color=result;}\n";e.ShadersStoreWGSL[f]||(e.ShadersStoreWGSL[f]=n);const r={name:f,shader:n};export{r as textureProcessorPixelShaderWGSL}; //# sourceMappingURL=textureProcessor.fragment-Bc0j12X8.esm.min.js.map