1.add DrawRect2D.vert/.geom shaders

2.add AlphaMask.frag shader
This commit is contained in:
hyzboy 2020-06-24 02:00:40 +08:00
parent d672a741d5
commit 09f5818143
3 changed files with 65 additions and 0 deletions

16
shader/AlphaMask.frag Normal file
View File

@ -0,0 +1,16 @@
#version 450 core
layout(binding = 2) uniform sampler2D tex;
layout(location = 0) in vec2 FragmentTexCoord;
layout(location = 0) out vec4 FragColor;
void main()
{
vec4 color=texture(tex,FragmentTexCoord);
if(color.a<0.3)
discard;
FragColor=vec4(color.rgb,1);
}

17
shader/DrawRect2D.geom Normal file
View File

@ -0,0 +1,17 @@
#version 450 core
layout (points) in;
layout (triangle_strip,max_vertices=4) out;
void main()
{
vec2 lt=gl_in[0].gl_Position.xy;
vec2 rb=gl_in[0].gl_Position.zw;
gl_Position=vec4(lt, vec2(0,1));EmitVertex();
gl_Position=vec4(lt.x,rb.y, vec2(0,1));EmitVertex();
gl_Position=vec4(rb.x,lt.y, vec2(0,1));EmitVertex();
gl_Position=vec4(rb, vec2(0,1));EmitVertex();
EndPrimitive();
}

32
shader/DrawRect2D.vert Normal file
View File

@ -0,0 +1,32 @@
#version 450 core
layout(location = 0) in vec4 Vertex;
layout(binding=0) uniform WorldMatrix // hgl/math/Math.h
{
mat4 ortho;
mat4 projection;
mat4 inverse_projection;
mat4 modelview;
mat4 inverse_modelview;
mat4 mvp;
mat4 inverse_mvp;
vec4 view_pos;
vec2 canvas_resolution;
vec2 viewport_resolution;
}world;
void main()
{
vec4 lt=vec4(Vertex.xy,vec2(0,1));
vec4 rb=vec4(Vertex.zw,vec2(0,1));
vec4 lt_fin=lt*world.ortho;
vec4 rb_fin=rb*world.ortho;
gl_Position=vec4(lt_fin.xy,rb_fin.xy);
}