Add wallFace shaders files

This commit is contained in:
2021-03-21 18:55:33 +01:00
parent 1527ee3069
commit a7591bb1d7
5 changed files with 73 additions and 0 deletions
+12
View File
@@ -0,0 +1,12 @@
#version 430 core
in vec2 tPos;
in vec4 gColor;
uniform sampler2D tex;
out vec4 fColor;
void main()
{
fColor = gColor * texture(tex,tPos);
}
+36
View File
@@ -0,0 +1,36 @@
#version 430 core
layout (points) in;
layout (triangle_strip, max_vertices = 4) out;
in vec4 vColor [];
out vec4 gColor;
out vec2 tPos;
uniform mat4 perpMat;
// consider using isLHS to check if the wall is facing the center
float isLHS (vec2 startV, vec2 testV)
{
return sign( -startV.x * testV.y + startV.y * testV.x);
}
void main()
{
gColor = vColor[0];
vec4 p1 = vec4 (gl_in[0].gl_Position.xy,0,1);
vec4 p2 = vec4 (gl_in[0].gl_Position.zw,0,1);
vec4 p3 = vec4 (p1.xy,-0.5,1);
vec4 p4 = vec4 (p2.xy,-0.5,1);
vec4 a1 = perpMat * p1;
vec4 a2 = perpMat * p2;
vec4 a3 = perpMat * p3;
vec4 a4 = perpMat * p4;
tPos = vec2 ( 1,-1) ; gl_Position = a1; EmitVertex();
tPos = vec2 ( 1, 1) ; gl_Position = a3; EmitVertex();
tPos = vec2 (-1,-1) ; gl_Position = a2; EmitVertex();
tPos = vec2 (-1, 1) ; gl_Position = a4; EmitVertex();
EndPrimitive();
}
+11
View File
@@ -0,0 +1,11 @@
#version 430 core
layout (location = 0) in vec4 poss;
layout (location = 1) in vec4 color;
out vec4 vColor;
void main()
{
gl_Position = poss;
vColor = color;
}
+11
View File
@@ -0,0 +1,11 @@
#version 430 core
layout (location = 0) in vec4 poss;
layout (location = 1) in vec4 color;
out vec4 vColor;
void main()
{
gl_Position = poss;
vColor = color;
}
+3
View File
@@ -53,8 +53,11 @@ renderPicture' :: RenderData -> Float -> Float -> (Float,Float) -> (Float,Float)
(Float,Float) -> Picture -> IO (Word32,Word32) (Float,Float) -> Picture -> IO (Word32,Word32)
renderPicture' pdata rot zoom trans wins wallPoints lightPoints renderPicture' pdata rot zoom trans wins wallPoints lightPoints
viewFroms pic = do viewFroms pic = do
startTicks <- SDL.ticks
setCommonUniforms pdata rot zoom trans wins setCommonUniforms pdata rot zoom trans wins
renderPicture pdata rot zoom trans wins wallPoints lightPoints viewFroms pic renderPicture pdata rot zoom trans wins wallPoints lightPoints viewFroms pic
endTicks <- SDL.ticks
return (startTicks, endTicks - startTicks)
renderPicture :: RenderData -> Float -> Float -> (Float,Float) -> (Float,Float) -> renderPicture :: RenderData -> Float -> Float -> (Float,Float) -> (Float,Float) ->
[(Point2,Point2)] -> [Point4] -> [(Point2,Point2)] -> [Point4] ->