diff --git a/shader/cloud/basic.frag b/shader/cloud/basic.frag index ae0bcead0..40e6522e8 100644 --- a/shader/cloud/basic.frag +++ b/shader/cloud/basic.frag @@ -16,12 +16,15 @@ void main() // when a light is direcly above the cloud float d = dot(vControls,vControls); if (d > 1) {discard;} - //fCol = vCol; fCol = vec4(vCol.xyz,vCol.w*(1-d)); + //fCol = vCol; //float rad = vCenterSize.w*0.5; float rad = vCenterSize.w; float h = (1-d) * rad; fPos = vec4(vPosID.xy, vPosID.z + h, vCol.w*(1-d)); - vec3 fn1 = fPos.z*normalize(vec3(vCenterSize.xyz - fPos.xyz)); - fNorm = vec4(fn1,fPos.w); + //vec3 vCen = + //vec3 fn1 = fPos.z*normalize(vec3(vCenterSize.xyz - fPos.xyz)); + vec3 fn1 = fPos.z*normalize(vec3(vCenterSize.xy - vPosID.xy,0)); + //fNorm = vec4(fn1,fPos.w); + fNorm = vec4(vControls.xy, 0.1 ,fPos.w); } diff --git a/shader/wall/blank.geom b/shader/wall/blank.geom index 6e1212177..0feb2a704 100644 --- a/shader/wall/blank.geom +++ b/shader/wall/blank.geom @@ -20,8 +20,8 @@ void main() vec4 a1 = theMat * p1; vec4 a2 = theMat * p2; // if (0 > isLHS (a1.xy - a2.xy, a1.xy - "viewFromPoint")) { - vec4 p3 = vec4 (p1.xy,500,1); //note the random z value, used for GL_DEPTH_CLAMP - vec4 p4 = vec4 (p2.xy,500,1); + vec4 p3 = vec4 (p1.xy,5000,1); //note the random z value, used for GL_DEPTH_CLAMP + vec4 p4 = vec4 (p2.xy,5000,1); vec4 a3 = theMat * p3; vec4 a4 = theMat * p4; gPos = p1;gl_Position = a1; EmitVertex(); diff --git a/src/Dodge/Render.hs b/src/Dodge/Render.hs index b66cbb7d4..a4ff1f3ad 100644 --- a/src/Dodge/Render.hs +++ b/src/Dodge/Render.hs @@ -148,21 +148,13 @@ doDrawing' win pdata u = do 0 (fromIntegral trueNWalls) -- clear color and normals - withArray [0, 0, 0, 1] $ \ptr -> - glClearNamedFramebufferfv - (pdata ^. fboBase . _1 . unFBO) - GL_COLOR - 0 - ptr - withArray [0, 0, 0, 0] $ \ptr -> - glClearNamedFramebufferfv - (pdata ^. fboBase . _1 . unFBO) - GL_COLOR - 2 - ptr + withArray [0, 0, 0, 1] $ + glClearNamedFramebufferfv (pdata ^. fboBase . _1 . unFBO) GL_COLOR 0 + withArray [0, 0, 0, 0] $ + glClearNamedFramebufferfv (pdata ^. fboBase . _1 . unFBO) GL_COLOR 2 withArray [GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2] $ glNamedFramebufferDrawBuffers (pdata ^. fboBase . _1 . unFBO) 3 --- \ptr -> glDrawBuffers 3 ptr + -- \ptr -> glDrawBuffers 3 ptr --draw walls onto base buffer -- maybe cull faces? maybe do this before? glEnable GL_CULL_FACE @@ -204,7 +196,7 @@ doDrawing' win pdata u = do (fromIntegral nchs) withArray [GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2] $ glNamedFramebufferDrawBuffers (pdata ^. fboBase . _1 . unFBO) 3 --- \ptr -> glDrawBuffers 3 ptr + -- \ptr -> glDrawBuffers 3 ptr glDepthMask GL_TRUE --draw floor onto base buffer glUseProgram (pdata ^. floorShader . shaderUINT) @@ -288,8 +280,8 @@ doDrawing' win pdata u = do glDepthMask GL_FALSE glBlendFuncSeparate GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA GL_ONE_MINUS_DST_ALPHA GL_ONE --withArray [GL_COLOR_ATTACHMENT0, GL_NONE] $ \ptr -> glDrawBuffers 2 ptr - withArray [GL_COLOR_ATTACHMENT0, GL_NONE] - $ glNamedFramebufferDrawBuffers (pdata ^. fboCloud . _1 . unFBO) 2 + withArray [GL_COLOR_ATTACHMENT0, GL_NONE] $ + glNamedFramebufferDrawBuffers (pdata ^. fboCloud . _1 . unFBO) 2 withArray [0.5, 0.5, 0.5, 0] $ \ptr -> glClearNamedFramebufferfv (pdata ^. fboCloud . _1 . unFBO) @@ -343,7 +335,7 @@ doDrawing' win pdata u = do (fromIntegral nCloudIs) GL_UNSIGNED_SHORT nullPtr --- drawShader (_windowShader pdata) nWins + -- drawShader (_windowShader pdata) nWins glBindFramebuffer GL_FRAMEBUFFER (pdata ^. fboPos . _1 . unFBO) withArray [0, 0, 0, 0] $ \ptr -> glClearNamedFramebufferfv @@ -374,7 +366,7 @@ doDrawing' win pdata u = do glDepthMask GL_FALSE withArray [GL_COLOR_ATTACHMENT0, GL_NONE] $ glNamedFramebufferDrawBuffers (pdata ^. fboCloud . _1 . unFBO) 2 --- $ \ptr -> glDrawBuffers 2 ptr + -- $ \ptr -> glDrawBuffers 2 ptr glDepthFunc GL_ALWAYS glBindTextureUnit 0 (_unTO . snd $ _fboLighting pdata) glEnable GL_BLEND @@ -383,7 +375,8 @@ doDrawing' win pdata u = do glBlendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA -- bind base buffer for drawing clouds and bloom - glBindFramebuffer GL_FRAMEBUFFER (_unFBO (fst (_fboBase pdata))) + --glBindFramebuffer GL_FRAMEBUFFER (_unFBO (fst (_fboBase pdata))) + glBindFramebuffer GL_FRAMEBUFFER (pdata ^. fboBase . _1 . unFBO) --draw shadowed clouds onto base buffer glBindTextureUnit 0 (pdata ^. fboCloud . _2 . _1 . unTO)