2017-09-12 18:05:05 +00:00
|
|
|
#version 330
|
|
|
|
|
|
|
|
layout (location = 0) in vec2 inVertex;
|
|
|
|
layout (location = 1) in vec2 inVertexTexCoord;
|
|
|
|
layout (location = 2) in ivec2 inVertexTexRightOrBottom;
|
|
|
|
|
2017-09-27 10:15:30 +00:00
|
|
|
uniform mat4x2 Pos;
|
2017-10-09 16:58:44 +00:00
|
|
|
uniform float LOD;
|
2017-09-12 18:05:05 +00:00
|
|
|
|
|
|
|
uniform vec2 Dir;
|
|
|
|
|
|
|
|
noperspective out vec2 texCoord;
|
2017-10-14 21:27:14 +00:00
|
|
|
flat out float fragLOD;
|
2017-09-12 18:05:05 +00:00
|
|
|
|
|
|
|
void main()
|
|
|
|
{
|
2017-09-27 10:15:30 +00:00
|
|
|
vec4 VertPos = vec4(inVertex, 0.0, 1.0);
|
2017-09-12 18:05:05 +00:00
|
|
|
VertPos.x += Dir.x * (gl_InstanceID+1);
|
|
|
|
VertPos.y += Dir.y * (gl_InstanceID+1);
|
|
|
|
|
2017-09-27 10:15:30 +00:00
|
|
|
gl_Position = vec4(Pos * VertPos, 0.0, 1.0);
|
2017-10-14 21:27:14 +00:00
|
|
|
float F1 = -(0.5/(1024.0 * pow(0.5, LOD)));
|
|
|
|
float F2 = (0.5/(1024.0 * pow(0.5, LOD)));
|
2017-10-09 17:44:22 +00:00
|
|
|
float tx = (inVertexTexCoord.x/(16.0));
|
|
|
|
float ty = (inVertexTexCoord.y/(16.0));
|
2017-09-12 18:05:05 +00:00
|
|
|
texCoord = vec2(tx + (inVertexTexRightOrBottom.x == 0 ? F2 : F1), ty + (inVertexTexRightOrBottom.y == 0 ? F2 : F1));
|
2017-10-14 21:27:14 +00:00
|
|
|
fragLOD = LOD;
|
2017-11-09 10:31:13 +00:00
|
|
|
}
|