Start simplifying cloud shader
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
+12
-19
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user