@babylonjs/core
Version:
Getting started? Play directly with the Babylon.js API using our [playground](https://playground.babylonjs.com/). It also contains a lot of samples to learn how to use it.
156 lines • 3.67 kB
JavaScript
// Do not edit.
import { ShaderStore } from "../Engines/shaderStore.js";
const name = "textureProcessorPixelShader";
const shader = `
uniform sampler2D textureA;
uniform sampler2D textureB;
uniform sampler2D textureT;
uniform mat4 textureAMatrix;
uniform mat4 textureBMatrix;
uniform mat4 textureTMatrix;
uniform vec4 factorA;
uniform vec4 factorB;
uniform vec4 factorT;
varying vec2 vUV;void main() {vec2 uv=vUV;
vec4 a=texture2D(textureA,(textureAMatrix*vec4(uv,0.0,1.0)).xy);
vec4 a=texture2D(textureA,uv);
a.rgb=mix(a.rgb/12.92,pow((a.rgb+0.055)/1.055,vec3(2.4)),step(vec3(0.04045),a.rgb));
a=vec4(a.rrr,a.a);
a=vec4(a.ggg,a.a);
a=vec4(a.bbb,a.a);
a=a.aaaa;
a*=factorA;
vec4 a=factorA;
vec4 b=texture2D(textureB,(textureBMatrix*vec4(uv,0.0,1.0)).xy);
vec4 b=texture2D(textureB,uv);
b.rgb=mix(b.rgb/12.92,pow((b.rgb+0.055)/1.055,vec3(2.4)),step(vec3(0.04045),b.rgb));
b=vec4(b.rrr,b.a);
b=vec4(b.ggg,b.a);
b=vec4(b.bbb,b.a);
b=b.aaaa;
b*=factorB;
vec4 b=factorB;
float _cmax=max(max(a.r,a.g),a.b);
_cmax=max(_cmax,a.a);vec4 result=vec4(_cmax,_cmax,_cmax,_cmax);
vec4 result=vec4(_cmax,_cmax,_cmax,a.a);
float _ir=a.r; float _ig=a.g; float _ib=a.b; float _ia=a.a;
_ir=1.0-_ir;
_ig=1.0-_ig;
_ib=1.0-_ib;
_ia=1.0-_ia;
vec4 result=vec4(_ir,_ig,_ib,_ia);
vec4 t=texture2D(textureT,(textureTMatrix*vec4(uv,0.0,1.0)).xy);
vec4 t=texture2D(textureT,uv);
t.rgb=mix(t.rgb/12.92,pow((t.rgb+0.055)/1.055,vec3(2.4)),step(vec3(0.04045),t.rgb));
t=vec4(t.rrr,t.a);
t=vec4(t.ggg,t.a);
t=vec4(t.bbb,t.a);
t=t.aaaa;
t*=factorT;
vec4 t=factorT;
vec4 result=mix(a,b,t);
vec4 result=max(a,b);
vec4 result=a*b;
result.r=0.0;
result.g=0.0;
result.b=0.0;
result.a=1.0;
result.rgb=mix(result.rgb*12.92,pow(result.rgb,vec3(1.0/2.4))*1.055-0.055,step(vec3(0.0031308),result.rgb));
gl_FragColor=result;}
`;
// Sideeffect
if (!ShaderStore.ShadersStore[name]) {
ShaderStore.ShadersStore[name] = shader;
}
/** @internal */
export const textureProcessorPixelShader = { name, shader };
//# sourceMappingURL=textureProcessor.fragment.js.map