1.add DrawRect2D.vert/.geom shaders
2.add AlphaMask.frag shader
This commit is contained in:
parent
d672a741d5
commit
09f5818143
16
shader/AlphaMask.frag
Normal file
16
shader/AlphaMask.frag
Normal 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
17
shader/DrawRect2D.geom
Normal 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
32
shader/DrawRect2D.vert
Normal 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);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user