geometry shaders, map poi icons

This commit is contained in:
milek7
2019-03-17 20:30:25 +01:00
parent 3091e13433
commit 4383b0c7e0
16 changed files with 193 additions and 46 deletions

View File

@@ -1,4 +1,7 @@
layout(location = 0) in vec3 v_vert;
layout(location = 2) in vec2 v_coords;
out vec2 g_coords;
#include <common>
@@ -7,4 +10,5 @@ void main()
vec4 clip_pos = projection * vec4(v_vert, 1.0f);
gl_Position = vec4(clip_pos.xz, 0.5, 1.0);
g_coords = v_coords;
}

14
shaders/map_poi.frag Normal file
View File

@@ -0,0 +1,14 @@
in vec2 f_coords;
layout(location = 0) out vec4 out_color;
#texture (tex1, 0, sRGB_A)
uniform sampler2D tex1;
void main()
{
vec2 texcoord = f_coords;
vec4 color = texture(tex1, texcoord);
out_color = color;
}

30
shaders/map_poi.geom Normal file
View File

@@ -0,0 +1,30 @@
layout (points) in;
layout (triangle_strip, max_vertices = 4) out;
in vec2 g_coords[];
out vec2 f_coords;
#include <common>
void main() {
vec4 position = gl_in[0].gl_Position;
vec2 size = vec2(0.1) * scene_extra.xy;
gl_Position = position + vec4(-size.x, -size.y, 0.0, 0.0);
f_coords = vec2(g_coords[0].s, 0.0);
EmitVertex();
gl_Position = position + vec4( size.x, -size.y, 0.0, 0.0);
f_coords = vec2(g_coords[0].t, 0.0);
EmitVertex();
gl_Position = position + vec4(-size.x, size.y, 0.0, 0.0);
f_coords = vec2(g_coords[0].s, 1.0);
EmitVertex();
gl_Position = position + vec4( size.x, size.y, 0.0, 0.0);
f_coords = vec2(g_coords[0].t, 1.0);
EmitVertex();
EndPrimitive();
}