diff options
author | LaG1924 <12997935+LaG1924@users.noreply.github.com> | 2018-08-05 01:40:01 +0200 |
---|---|---|
committer | LaG1924 <12997935+LaG1924@users.noreply.github.com> | 2018-08-05 01:40:01 +0200 |
commit | c0b81150298ce9f2f21da42f26a57fe59a93bb77 (patch) | |
tree | 15304e4c36093a5beb524e67c976a241c5c556f3 /cwd/shaders | |
parent | Implemented texture atlas (diff) | |
download | AltCraft-c0b81150298ce9f2f21da42f26a57fe59a93bb77.tar AltCraft-c0b81150298ce9f2f21da42f26a57fe59a93bb77.tar.gz AltCraft-c0b81150298ce9f2f21da42f26a57fe59a93bb77.tar.bz2 AltCraft-c0b81150298ce9f2f21da42f26a57fe59a93bb77.tar.lz AltCraft-c0b81150298ce9f2f21da42f26a57fe59a93bb77.tar.xz AltCraft-c0b81150298ce9f2f21da42f26a57fe59a93bb77.tar.zst AltCraft-c0b81150298ce9f2f21da42f26a57fe59a93bb77.zip |
Diffstat (limited to '')
-rw-r--r-- | cwd/shaders/face.fs | 4 | ||||
-rw-r--r-- | cwd/shaders/face.vs | 10 |
2 files changed, 8 insertions, 6 deletions
diff --git a/cwd/shaders/face.fs b/cwd/shaders/face.fs index a4e020c..62a2d37 100644 --- a/cwd/shaders/face.fs +++ b/cwd/shaders/face.fs @@ -2,12 +2,12 @@ in VS_OUT { vec2 UvPosition; - vec2 Texture; + vec3 Texture; vec3 Color; vec2 Light; } fs_in; -uniform sampler2D textureAtlas; +uniform sampler2DArray textureAtlas; uniform vec2 windowSize; uniform float DayTime; diff --git a/cwd/shaders/face.vs b/cwd/shaders/face.vs index 5431ff2..9c40846 100644 --- a/cwd/shaders/face.vs +++ b/cwd/shaders/face.vs @@ -5,10 +5,11 @@ layout (location = 7) in vec4 Texture; layout (location = 8) in mat4 model; layout (location = 12) in vec3 color; layout (location = 13) in vec2 light; +layout (location = 14) in float TextureLayer; out VS_OUT { vec2 UvPosition; - vec2 Texture; + vec3 Texture; vec3 Color; vec2 Light; } vs_out; @@ -17,14 +18,15 @@ out VS_OUT { //uniform mat4 projection; uniform mat4 projView; -vec2 TransformTextureCoord(vec4 TextureAtlasCoords, vec2 UvCoords) { +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 A = vec2(x, 1 - y - h); vec2 B = vec2(x + w, 1 - y); - return A + UvCoords * (B - A); + vec2 transformed = A + UvCoords * (B - A); + return vec3(transformed.x, transformed.y, Layer); } void main() @@ -33,7 +35,7 @@ void main() gl_Position = projView * model * sourcePosition; vs_out.UvPosition = vec2(UvCoordinates.x,UvCoordinates.y); - vs_out.Texture = TransformTextureCoord(Texture,UvCoordinates); + vs_out.Texture = TransformTextureCoord(Texture,UvCoordinates,TextureLayer); vs_out.Color = color; vs_out.Light = light; } |