diff --git a/shader/floor/arrayPos.frag b/shader/floor/arrayPos.frag index 8306f774d..dbbd9ee5e 100644 --- a/shader/floor/arrayPos.frag +++ b/shader/floor/arrayPos.frag @@ -5,8 +5,8 @@ layout (location=0) out vec4 fCol; layout (location=1) out vec4 fPos; layout (location=2) out vec4 normal; //layout (binding=0) uniform sampler2DArray tilesetSampler; -layout (binding=1) uniform sampler2DArray normalSampler; -layout (binding=2) uniform sampler2DArray diffuseSampler; +layout (binding=40) uniform sampler2DArray diffuseSampler; +layout (binding=41) uniform sampler2DArray normalSampler; vec2 rotateV2 (float a, vec2 v) { return vec2(v.x*cos(a) - v.y*sin(a), v.x*sin(a) + v.y*cos(a)); diff --git a/shader/texture/bloomBlur.frag b/shader/texture/bloomBlur.frag index d5253b838..f50d14f71 100644 --- a/shader/texture/bloomBlur.frag +++ b/shader/texture/bloomBlur.frag @@ -5,7 +5,7 @@ const vec2 winSize = vec2 (300.0,300.0); // note that the above opening bracket should be the first in this file // this is so that the window size can be extracted and the shader recompiled on // the fly -uniform sampler2D screenTexture; +layout (binding = 0) uniform sampler2D screenTexture; const float hOff = 3 / winSize.x; const float vOff = 3 / winSize.y; //const vec2 off[9] = vec2[] diff --git a/shader/wall/basic.frag b/shader/wall/basic.frag index 4031efe82..1d6a96a03 100644 --- a/shader/wall/basic.frag +++ b/shader/wall/basic.frag @@ -8,8 +8,8 @@ in vec4 gPos; in vec4 gNorm; in vec4 gColor; in float gAng; -layout (binding=1) uniform sampler2DArray normalSampler; -layout (binding=2) uniform sampler2DArray diffuseSampler; +layout (binding=40) uniform sampler2DArray diffuseSampler; +layout (binding=41) uniform sampler2DArray normalSampler; vec2 rotateV2 (float a, vec2 v) { return vec2(v.x*cos(a) - v.y*sin(a), v.x*sin(a) + v.y*cos(a)); diff --git a/shader/wall/texture.frag b/shader/wall/texture.frag index ec622c25a..ef72a5b25 100644 --- a/shader/wall/texture.frag +++ b/shader/wall/texture.frag @@ -8,8 +8,8 @@ in vec4 gPos; in vec4 gNorm; in vec4 gColor; in float gRot; -layout (binding=1) uniform sampler2DArray normalSampler; -layout (binding=2) uniform sampler2DArray diffuseSampler; +layout (binding=40) uniform sampler2DArray diffuseSampler; +layout (binding=41) uniform sampler2DArray normalSampler; vec2 rotateV2 (float a, vec2 v) { return vec2(v.x*cos(a) - v.y*sin(a), v.x*sin(a) + v.y*cos(a)); diff --git a/src/Data/Preload/Render.hs b/src/Data/Preload/Render.hs index 0062baba3..e6155adf3 100644 --- a/src/Data/Preload/Render.hs +++ b/src/Data/Preload/Render.hs @@ -54,8 +54,8 @@ data RenderData = RenderData , _vboShapes :: VBO , _floorVBO :: VBO , _floorShader :: Shader - , _toNormalMaps :: TO - , _toDiffuse :: TO + , _texaNormalMaps :: TO + , _texaDiffuse :: TO , _wallVBO :: VBO , _wallShader :: Shader , _cloudVBO :: VBO diff --git a/src/Dodge/Render.hs b/src/Dodge/Render.hs index 22a97897a..e608e0891 100644 --- a/src/Dodge/Render.hs +++ b/src/Dodge/Render.hs @@ -179,9 +179,6 @@ doDrawing' win pdata u = do --draw floor onto base buffer glUseProgram (pdata ^. floorShader . shaderUINT) glBindVertexArray $ pdata ^. floorShader . shaderVAO . vaoName - glBindTextureUnit 1 (pdata ^. toNormalMaps . unTO) - --glTextureParameteri (pdata ^. toNormalMaps . unTO) GL_TEXTURE_BASE_LEVEL 3 - glBindTextureUnit 2 (pdata ^. toDiffuse . unTO) glDrawArrays (_unPrimitiveMode $ pdata ^. floorShader . shaderPrimitive ) 0 @@ -227,7 +224,7 @@ doDrawing' win pdata u = do setViewportSize (round winx `div` (2 * resFact)) (round winy `div` (2 * resFact)) glBindFramebuffer GL_FRAMEBUFFER (_unFBO (fst (_fboHalf1 pdata))) glDepthFunc GL_ALWAYS - glBindTexture GL_TEXTURE_2D (pdata ^. fboBloom . _2 . unTO) + glBindTextureUnit 0 (pdata ^. fboBloom . _2 . unTO) glDisable GL_BLEND drawShader (_bloomBlurShader pdata) 4 replicateM_ 9 $ pingPongBetween (_fboHalf1 pdata) (_fboHalf2 pdata) (_bloomBlurShader pdata) diff --git a/src/Preload/Render.hs b/src/Preload/Render.hs index f56a75dfb..065962fc8 100644 --- a/src/Preload/Render.hs +++ b/src/Preload/Render.hs @@ -161,8 +161,10 @@ preloadRender = do let floorverxstrd = 8 floorvbo <- setupVBOStatic floorverxstrd floorshader <- makeShader4 "floor/arrayPos" [vert, frag] [4,4] floorverxstrd pmTriangles floorvbo - tonormalmap <- initTexture2DArray 3 GL_LINEAR_MIPMAP_LINEAR GL_LINEAR "data/normalMaps/normalArray.png" todiffusemap <- initTexture2DArray 3 GL_LINEAR_MIPMAP_LINEAR GL_LINEAR "data/normalMaps/diffuseArray.png" + tonormalmap <- initTexture2DArray 3 GL_LINEAR_MIPMAP_LINEAR GL_LINEAR "data/normalMaps/normalArray.png" + glBindTextureUnit 40 (todiffusemap ^. unTO) + glBindTextureUnit 41 (tonormalmap ^. unTO) let cloudverxsizes = [4,4,4,4] cloudvbo <- setupVBO (sum cloudverxsizes) @@ -250,8 +252,8 @@ preloadRender = do , _vboShapes = shVBO , _floorVBO = floorvbo , _floorShader = floorshader - , _toNormalMaps = tonormalmap - , _toDiffuse = todiffusemap + , _texaNormalMaps = tonormalmap + , _texaDiffuse = todiffusemap , _wallVBO = wallvbo , _wallShader = wallshader , _cloudVBO = cloudvbo