#include "Uniforms.glsl" #include "Samplers.glsl" #include "Transform.glsl" #if defined(DIFFMAP) || defined(ALPHAMAP) varying vec2 vTexCoord; #endif #ifdef VERTEXCOLOR varying vec4 vColor; #endif void VS() { mat4 modelMatrix = iModelMatrix; vec3 worldPos = GetWorldPos(modelMatrix); gl_Position = GetClipPos(worldPos); #ifdef DIFFMAP vTexCoord = iTexCoord; #endif #ifdef VERTEXCOLOR vColor = iColor; #endif } void PS() { vec4 diffColor = cMatDiffColor; #ifdef VERTEXCOLOR diffColor *= vColor; #endif #if (!defined(DIFFMAP)) && (!defined(ALPHAMAP)) gl_FragColor = diffColor; #endif #ifdef DIFFMAP vec4 diffInput = texture2D(sDiffMap, vTexCoord); #ifdef ALPHAMASK if (diffInput.a < 0.5) discard; #endif gl_FragColor = diffColor * diffInput; #endif #ifdef ALPHAMAP float alphaInput = texture2D(sDiffMap, vTexCoord).a; gl_FragColor = vec4(diffColor.rgb, diffColor.a * alphaInput); #endif }