From 97780395cfefa0b2913c3dfa294d0cced41dc2f3 Mon Sep 17 00:00:00 2001 From: Teejoon Date: Wed, 10 Feb 2016 17:15:54 +0100 Subject: [PATCH] ... Now mipmaps and Splatmaps i comming :) --- .../Schema/Entities/SplatMapTesWorld.xml | 8 +++++++- .../Shaders/ForwardPlusSplatMap.frag.glsl | 20 +++++++++---------- src/Engine/Rendering/Texture.cpp | 3 ++- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/resources/Schema/Entities/SplatMapTesWorld.xml b/resources/Schema/Entities/SplatMapTesWorld.xml index 11660a63..fe5718eb 100644 --- a/resources/Schema/Entities/SplatMapTesWorld.xml +++ b/resources/Schema/Entities/SplatMapTesWorld.xml @@ -9,8 +9,14 @@ + + + + + + - Models/Test/SplatMapTest.mesh + Models/Ground.mesh diff --git a/resources/Shaders/ForwardPlusSplatMap.frag.glsl b/resources/Shaders/ForwardPlusSplatMap.frag.glsl index c4908534..239c51b5 100644 --- a/resources/Shaders/ForwardPlusSplatMap.frag.glsl +++ b/resources/Shaders/ForwardPlusSplatMap.frag.glsl @@ -151,8 +151,6 @@ vec4 CalcNormalMappedValue(vec3 normal, vec3 tangent, vec3 bitangent, vec2 textu return vec4(TBN * normalize(NormalMap), 0.0); } -#define TEXTURE_TILE 5.0 - vec4 CalcBlendedTexel(vec4 blendValue, sampler2D R, sampler2D G, sampler2D B, sampler2D A, sampler2D D, vec2 R_TileValues, vec2 G_TileValues, vec2 B_TileValues, vec2 A_TileValues, vec2 D_TileValues){ vec4 R_Channel = texture2D(R, Input.TextureCoordinate * R_TileValues); @@ -163,10 +161,11 @@ vec4 CalcBlendedTexel(vec4 blendValue, sampler2D R, sampler2D G, sampler2D B, sa float total = blendValue.r + blendValue.g + blendValue.b + blendValue.a; if(total > 1.0f){ - blendValue.r / total; - blendValue.g / total; - blendValue.b / total; - blendValue.a / total; + float totalDiv = 1.0f / total; + blendValue.r = blendValue.r * totalDiv; + blendValue.g = blendValue.g * totalDiv; + blendValue.b = blendValue.b * totalDiv; + blendValue.a = blendValue.a * totalDiv; } float D_percent = clamp( 1.0f - total, 0.0f, 1.0f); @@ -188,10 +187,11 @@ vec4 CalcBlendedNormal(vec4 blendValue, sampler2D R, sampler2D G, sampler2D B, s float total = blendValue.r + blendValue.g + blendValue.b + blendValue.a; if(total > 1.0f){ - blendValue.r / total; - blendValue.g / total; - blendValue.b / total; - blendValue.a / total; + float totalDiv = 1 / total; + blendValue.r = blendValue.r * totalDiv; + blendValue.g = blendValue.g * totalDiv; + blendValue.b = blendValue.b * totalDiv; + blendValue.a = blendValue.a * totalDiv; } float D_percent = clamp( 1.0f - total, 0.0f, 1.0f); diff --git a/src/Engine/Rendering/Texture.cpp b/src/Engine/Rendering/Texture.cpp index 57f3ca36..df197400 100644 --- a/src/Engine/Rendering/Texture.cpp +++ b/src/Engine/Rendering/Texture.cpp @@ -30,9 +30,10 @@ Texture::Texture(std::string path) glBindTexture(GL_TEXTURE_2D, m_Texture); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glTexImage2D(GL_TEXTURE_2D, 0, format, image.Width, image.Height, 0, format, GL_UNSIGNED_BYTE, image.Data); + glGenerateMipmap(GL_TEXTURE_2D); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); GLERROR("Texture load"); }