From 0aec63ef08aea4692b2ce5359f898b5be75c6f38 Mon Sep 17 00:00:00 2001 From: LaG1924 <12997935+LaG1924@users.noreply.github.com> Date: Wed, 1 Nov 2017 20:58:46 +0500 Subject: Minor shader optimization --- cwd/shaders/face.vs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'cwd/shaders/face.vs') diff --git a/cwd/shaders/face.vs b/cwd/shaders/face.vs index 2d3b4b5..dbb8dd8 100644 --- a/cwd/shaders/face.vs +++ b/cwd/shaders/face.vs @@ -17,13 +17,23 @@ out VS_OUT { //uniform mat4 projection; uniform mat4 projView; +vec2 TransformTextureCoord(vec4 TextureAtlasCoords, vec2 UvCoords) { + 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); +} + void main() { vec4 sourcePosition = vec4(position,1.0f); gl_Position = projView * model * sourcePosition; vs_out.UvPosition = vec2(UvCoordinates.x,UvCoordinates.y); - vs_out.Texture = Texture; + vs_out.Texture = TransformTextureCoord(Texture,UvCoordinates); vs_out.Color = color; vs_out.Light = light; } -- cgit v1.2.3