34 lines
807 B
GLSL
34 lines
807 B
GLSL
layout (location = 0) in vec2 i_pos;
|
|
layout (location = 1) in vec2 i_size;
|
|
layout (location = 2) in vec2 i_uv_pos;
|
|
layout (location = 3) in vec2 i_uv_size;
|
|
layout (location = 4) in vec4 i_color;
|
|
|
|
out vec2 v_pos;
|
|
out vec2 v_size;
|
|
out vec2 v_uv_pos;
|
|
out vec2 v_uv_size;
|
|
out vec2 v_dp;
|
|
out vec4 v_color;
|
|
|
|
void main(void) {
|
|
const vec2[] verts = vec2[](
|
|
vec2( 0., 0.), vec2( 0., -1.), vec2( 1., -1.),
|
|
vec2( 0., 0.), vec2( 1., -1.), vec2( 1., 0.)
|
|
);
|
|
|
|
float scale = (uni.cam * vec4(1., 0., 0., 0.)).x;
|
|
scale = pow(1.2, scale-1.);
|
|
|
|
v_pos = i_pos * scale;
|
|
v_size = i_size * scale;
|
|
v_uv_pos = i_uv_pos;
|
|
v_uv_size = i_uv_size;
|
|
v_color = i_color;
|
|
|
|
v_dp = verts[gl_VertexID]*v_size*1.5 + v_pos;
|
|
v_dp /= pow(length(v_dp), .1);
|
|
|
|
gl_Position = vec4(v_dp, 0., 1.);
|
|
}
|