From 5a6aaf633ce217f828d981cd8c55951ada67e2df Mon Sep 17 00:00:00 2001 From: LaG1924 Date: Sun, 27 Jun 2021 21:31:00 +0500 Subject: Moved block face model matrix transformation to CPU --- cwd/assets/altcraft/shaders/vert/face.vs | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'cwd/assets/altcraft/shaders/vert/face.vs') diff --git a/cwd/assets/altcraft/shaders/vert/face.vs b/cwd/assets/altcraft/shaders/vert/face.vs index 30ae0d7..424e215 100644 --- a/cwd/assets/altcraft/shaders/vert/face.vs +++ b/cwd/assets/altcraft/shaders/vert/face.vs @@ -1,9 +1,8 @@ #version 330 core -layout (location = 0) in vec3 position; +layout (location = 3) in vec4 position[6]; layout (location = 2) in vec2 UvCoordinates; -layout (location = 7) in vec4 Texture; -layout (location = 8) in mat4 model; +layout (location = 11) in vec4 Texture; layout (location = 12) in vec3 color; layout (location = 13) in vec2 light; layout (location = 14) in float TextureLayer; @@ -22,7 +21,6 @@ uniform mat4 projView; vec3 TransformTextureCoord(vec4 TextureAtlasCoords, vec2 UvCoords, float Layer) { float x = TextureAtlasCoords.x; float y = TextureAtlasCoords.y; -// float w = TextureAtlasCoords.z; float h = TextureAtlasCoords.w; vec2 transformed = vec2(x, 1 - y - h) + UvCoords * TextureAtlasCoords.zw; return vec3(transformed.x, transformed.y, Layer); @@ -30,8 +28,7 @@ vec3 TransformTextureCoord(vec4 TextureAtlasCoords, vec2 UvCoords, float Layer) void main() { - vec4 sourcePosition = vec4(position,1.0f); - gl_Position = projView * model * sourcePosition; + gl_Position = projView * position[gl_VertexID]; vec4 texturePos = Texture; float frameHeight = texturePos.w / TextureFrames; -- cgit v1.2.3 From f324c49d896eae159b7499ad6467f03dbcc900ca Mon Sep 17 00:00:00 2001 From: LaG1924 Date: Mon, 28 Jun 2021 16:25:32 +0500 Subject: More compact faces vertecies format --- cwd/assets/altcraft/shaders/vert/face.vs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'cwd/assets/altcraft/shaders/vert/face.vs') diff --git a/cwd/assets/altcraft/shaders/vert/face.vs b/cwd/assets/altcraft/shaders/vert/face.vs index 424e215..e054dd8 100644 --- a/cwd/assets/altcraft/shaders/vert/face.vs +++ b/cwd/assets/altcraft/shaders/vert/face.vs @@ -1,6 +1,6 @@ #version 330 core -layout (location = 3) in vec4 position[6]; +layout (location = 3) in vec4 position[4]; layout (location = 2) in vec2 UvCoordinates; layout (location = 11) in vec4 Texture; layout (location = 12) in vec3 color; -- cgit v1.2.3 From 04ad0ef50d7eb362fd13272fd1d610740b3ede5e Mon Sep 17 00:00:00 2001 From: LaG1924 Date: Mon, 28 Jun 2021 20:20:49 +0500 Subject: Embed UV to vertex data --- cwd/assets/altcraft/shaders/vert/face.vs | 37 ++++++++------------------------ 1 file changed, 9 insertions(+), 28 deletions(-) (limited to 'cwd/assets/altcraft/shaders/vert/face.vs') diff --git a/cwd/assets/altcraft/shaders/vert/face.vs b/cwd/assets/altcraft/shaders/vert/face.vs index e054dd8..e1f01fc 100644 --- a/cwd/assets/altcraft/shaders/vert/face.vs +++ b/cwd/assets/altcraft/shaders/vert/face.vs @@ -1,15 +1,13 @@ #version 330 core -layout (location = 3) in vec4 position[4]; -layout (location = 2) in vec2 UvCoordinates; -layout (location = 11) in vec4 Texture; -layout (location = 12) in vec3 color; -layout (location = 13) in vec2 light; -layout (location = 14) in float TextureLayer; -layout (location = 15) in float TextureFrames; +layout (location = 0) in vec4 position[4]; +layout (location = 4) in vec2 uv[4]; +layout (location = 8) in float uvLayer; +layout (location = 9) in vec2 animation; +layout (location = 10) in vec3 color; +layout (location = 11) in vec2 light; out VS_OUT { - vec2 UvPosition; vec3 Texture; vec3 Color; vec2 Light; @@ -18,27 +16,10 @@ out VS_OUT { uniform float GlobalTime; uniform mat4 projView; -vec3 TransformTextureCoord(vec4 TextureAtlasCoords, vec2 UvCoords, float Layer) { - float x = TextureAtlasCoords.x; - float y = TextureAtlasCoords.y; - float h = TextureAtlasCoords.w; - vec2 transformed = vec2(x, 1 - y - h) + UvCoords * TextureAtlasCoords.zw; - return vec3(transformed.x, transformed.y, Layer); -} - -void main() -{ +void main() { gl_Position = projView * position[gl_VertexID]; - - vec4 texturePos = Texture; - float frameHeight = texturePos.w / TextureFrames; - float currentFrame = mod(GlobalTime * 4.0f, TextureFrames); - currentFrame = trunc(currentFrame); - texturePos.w = frameHeight; - texturePos.y = texturePos.y + currentFrame * frameHeight; - - vs_out.UvPosition = UvCoordinates; - vs_out.Texture = TransformTextureCoord(texturePos,UvCoordinates,TextureLayer); vs_out.Color = color; vs_out.Light = light; + vs_out.Texture = vec3(uv[gl_VertexID], uvLayer); + vs_out.Texture.y -= animation.x * trunc(mod(GlobalTime * 4.0f, animation.y)); } -- cgit v1.2.3 From 08337925fe048d2e8b746bbc82493f4c2b8603d6 Mon Sep 17 00:00:00 2001 From: LaG1924 Date: Mon, 28 Jun 2021 21:31:26 +0500 Subject: Compacted vertices format --- cwd/assets/altcraft/shaders/vert/face.vs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'cwd/assets/altcraft/shaders/vert/face.vs') diff --git a/cwd/assets/altcraft/shaders/vert/face.vs b/cwd/assets/altcraft/shaders/vert/face.vs index e1f01fc..bea9228 100644 --- a/cwd/assets/altcraft/shaders/vert/face.vs +++ b/cwd/assets/altcraft/shaders/vert/face.vs @@ -1,9 +1,9 @@ #version 330 core -layout (location = 0) in vec4 position[4]; +layout (location = 0) in vec3 position[4]; layout (location = 4) in vec2 uv[4]; layout (location = 8) in float uvLayer; -layout (location = 9) in vec2 animation; +layout (location = 9) in float animation; layout (location = 10) in vec3 color; layout (location = 11) in vec2 light; @@ -17,9 +17,9 @@ uniform float GlobalTime; uniform mat4 projView; void main() { - gl_Position = projView * position[gl_VertexID]; + gl_Position = projView * vec4(position[gl_VertexID], 1.0f); vs_out.Color = color; vs_out.Light = light; vs_out.Texture = vec3(uv[gl_VertexID], uvLayer); - vs_out.Texture.y -= animation.x * trunc(mod(GlobalTime * 4.0f, animation.y)); + vs_out.Texture.y -= (uv[2].y - uv[0].y) * trunc(mod(GlobalTime * 4.0f, animation)); } -- cgit v1.2.3 From 2db3f2a415f20f1224e277cef93e6d9bb2a1244b Mon Sep 17 00:00:00 2001 From: LaG1924 Date: Tue, 29 Jun 2021 07:53:04 +0500 Subject: Tint calculation moved to vertex shader --- cwd/assets/altcraft/shaders/vert/face.vs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'cwd/assets/altcraft/shaders/vert/face.vs') diff --git a/cwd/assets/altcraft/shaders/vert/face.vs b/cwd/assets/altcraft/shaders/vert/face.vs index bea9228..469ea94 100644 --- a/cwd/assets/altcraft/shaders/vert/face.vs +++ b/cwd/assets/altcraft/shaders/vert/face.vs @@ -10,16 +10,18 @@ layout (location = 11) in vec2 light; out VS_OUT { vec3 Texture; vec3 Color; - vec2 Light; } vs_out; uniform float GlobalTime; uniform mat4 projView; +uniform float DayTime; +uniform float MinLightLevel; void main() { gl_Position = projView * vec4(position[gl_VertexID], 1.0f); - vs_out.Color = color; - vs_out.Light = light; vs_out.Texture = vec3(uv[gl_VertexID], uvLayer); vs_out.Texture.y -= (uv[2].y - uv[0].y) * trunc(mod(GlobalTime * 4.0f, animation)); + + float faceLight = clamp(light.x / 15.0 + (light.y / 15.0) * DayTime, MinLightLevel, 1.0); + vs_out.Color = mix(color.rgb * faceLight, vec3(1,1,1) * faceLight, (color == vec3(0,0,0))); } -- cgit v1.2.3