brawl-stars-assets/41.131/shader/impostor.vsh
2023-12-08 08:22:40 +04:00

47 lines
1,009 B
GLSL

#ifdef GL_ES
precision highp float;
#else
#define highp
#define mediump
#define lowp
#endif
attribute vec4 a_pos;
#ifdef SUPPORTED_GL_OES_30
attribute vec4 a_colorMul;
attribute vec4 a_colorAdd;
#endif
uniform mat4 u_projectionView;
uniform vec3 u_corner0;
uniform vec3 u_corner1;
uniform vec3 u_corner2;
uniform vec3 u_corner3;
uniform vec2 u_viewportSize;
uniform vec2 u_viewportOffset;
uniform vec2 u_textureSizeInverse;
varying highp vec3 v_uvw;
#ifdef SUPPORTED_GL_OES_30
varying mediump vec4 v_colorMul;
varying mediump vec4 v_colorAdd;
#endif
void main(void)
{
vec3 pos = u_corner0 * a_pos.x + u_corner1 * a_pos.y + u_corner2 * a_pos.z + u_corner3 * a_pos.w;
gl_Position = u_projectionView * vec4(pos, 1.0);
vec2 uv = ((gl_Position.xy / gl_Position.w * vec2(0.5, 0.5) + vec2(0.5, 0.5)) * u_viewportSize - u_viewportOffset) * u_textureSizeInverse;
v_uvw = vec3(uv * gl_Position.w, gl_Position.w);
#ifdef SUPPORTED_GL_OES_30
v_colorMul = a_colorMul;
v_colorAdd = a_colorAdd;
#endif
}