Start simplifying cloud shader
This commit is contained in:
@@ -16,12 +16,15 @@ void main()
|
|||||||
// when a light is direcly above the cloud
|
// when a light is direcly above the cloud
|
||||||
float d = dot(vControls,vControls);
|
float d = dot(vControls,vControls);
|
||||||
if (d > 1) {discard;}
|
if (d > 1) {discard;}
|
||||||
//fCol = vCol;
|
|
||||||
fCol = vec4(vCol.xyz,vCol.w*(1-d));
|
fCol = vec4(vCol.xyz,vCol.w*(1-d));
|
||||||
|
//fCol = vCol;
|
||||||
//float rad = vCenterSize.w*0.5;
|
//float rad = vCenterSize.w*0.5;
|
||||||
float rad = vCenterSize.w;
|
float rad = vCenterSize.w;
|
||||||
float h = (1-d) * rad;
|
float h = (1-d) * rad;
|
||||||
fPos = vec4(vPosID.xy, vPosID.z + h, vCol.w*(1-d));
|
fPos = vec4(vPosID.xy, vPosID.z + h, vCol.w*(1-d));
|
||||||
vec3 fn1 = fPos.z*normalize(vec3(vCenterSize.xyz - fPos.xyz));
|
//vec3 vCen =
|
||||||
fNorm = vec4(fn1,fPos.w);
|
//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 a1 = theMat * p1;
|
||||||
vec4 a2 = theMat * p2;
|
vec4 a2 = theMat * p2;
|
||||||
// if (0 > isLHS (a1.xy - a2.xy, a1.xy - "viewFromPoint")) {
|
// 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 p3 = vec4 (p1.xy,5000,1); //note the random z value, used for GL_DEPTH_CLAMP
|
||||||
vec4 p4 = vec4 (p2.xy,500,1);
|
vec4 p4 = vec4 (p2.xy,5000,1);
|
||||||
vec4 a3 = theMat * p3;
|
vec4 a3 = theMat * p3;
|
||||||
vec4 a4 = theMat * p4;
|
vec4 a4 = theMat * p4;
|
||||||
gPos = p1;gl_Position = a1; EmitVertex();
|
gPos = p1;gl_Position = a1; EmitVertex();
|
||||||
|
|||||||
+12
-19
@@ -148,21 +148,13 @@ doDrawing' win pdata u = do
|
|||||||
0
|
0
|
||||||
(fromIntegral trueNWalls)
|
(fromIntegral trueNWalls)
|
||||||
-- clear color and normals
|
-- clear color and normals
|
||||||
withArray [0, 0, 0, 1] $ \ptr ->
|
withArray [0, 0, 0, 1] $
|
||||||
glClearNamedFramebufferfv
|
glClearNamedFramebufferfv (pdata ^. fboBase . _1 . unFBO) GL_COLOR 0
|
||||||
(pdata ^. fboBase . _1 . unFBO)
|
withArray [0, 0, 0, 0] $
|
||||||
GL_COLOR
|
glClearNamedFramebufferfv (pdata ^. fboBase . _1 . unFBO) GL_COLOR 2
|
||||||
0
|
|
||||||
ptr
|
|
||||||
withArray [0, 0, 0, 0] $ \ptr ->
|
|
||||||
glClearNamedFramebufferfv
|
|
||||||
(pdata ^. fboBase . _1 . unFBO)
|
|
||||||
GL_COLOR
|
|
||||||
2
|
|
||||||
ptr
|
|
||||||
withArray [GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2] $
|
withArray [GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2] $
|
||||||
glNamedFramebufferDrawBuffers (pdata ^. fboBase . _1 . unFBO) 3
|
glNamedFramebufferDrawBuffers (pdata ^. fboBase . _1 . unFBO) 3
|
||||||
-- \ptr -> glDrawBuffers 3 ptr
|
-- \ptr -> glDrawBuffers 3 ptr
|
||||||
--draw walls onto base buffer
|
--draw walls onto base buffer
|
||||||
-- maybe cull faces? maybe do this before?
|
-- maybe cull faces? maybe do this before?
|
||||||
glEnable GL_CULL_FACE
|
glEnable GL_CULL_FACE
|
||||||
@@ -204,7 +196,7 @@ doDrawing' win pdata u = do
|
|||||||
(fromIntegral nchs)
|
(fromIntegral nchs)
|
||||||
withArray [GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2] $
|
withArray [GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2] $
|
||||||
glNamedFramebufferDrawBuffers (pdata ^. fboBase . _1 . unFBO) 3
|
glNamedFramebufferDrawBuffers (pdata ^. fboBase . _1 . unFBO) 3
|
||||||
-- \ptr -> glDrawBuffers 3 ptr
|
-- \ptr -> glDrawBuffers 3 ptr
|
||||||
glDepthMask GL_TRUE
|
glDepthMask GL_TRUE
|
||||||
--draw floor onto base buffer
|
--draw floor onto base buffer
|
||||||
glUseProgram (pdata ^. floorShader . shaderUINT)
|
glUseProgram (pdata ^. floorShader . shaderUINT)
|
||||||
@@ -288,8 +280,8 @@ doDrawing' win pdata u = do
|
|||||||
glDepthMask GL_FALSE
|
glDepthMask GL_FALSE
|
||||||
glBlendFuncSeparate GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA GL_ONE_MINUS_DST_ALPHA GL_ONE
|
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] $ \ptr -> glDrawBuffers 2 ptr
|
||||||
withArray [GL_COLOR_ATTACHMENT0, GL_NONE]
|
withArray [GL_COLOR_ATTACHMENT0, GL_NONE] $
|
||||||
$ glNamedFramebufferDrawBuffers (pdata ^. fboCloud . _1 . unFBO) 2
|
glNamedFramebufferDrawBuffers (pdata ^. fboCloud . _1 . unFBO) 2
|
||||||
withArray [0.5, 0.5, 0.5, 0] $ \ptr ->
|
withArray [0.5, 0.5, 0.5, 0] $ \ptr ->
|
||||||
glClearNamedFramebufferfv
|
glClearNamedFramebufferfv
|
||||||
(pdata ^. fboCloud . _1 . unFBO)
|
(pdata ^. fboCloud . _1 . unFBO)
|
||||||
@@ -343,7 +335,7 @@ doDrawing' win pdata u = do
|
|||||||
(fromIntegral nCloudIs)
|
(fromIntegral nCloudIs)
|
||||||
GL_UNSIGNED_SHORT
|
GL_UNSIGNED_SHORT
|
||||||
nullPtr
|
nullPtr
|
||||||
-- drawShader (_windowShader pdata) nWins
|
-- drawShader (_windowShader pdata) nWins
|
||||||
glBindFramebuffer GL_FRAMEBUFFER (pdata ^. fboPos . _1 . unFBO)
|
glBindFramebuffer GL_FRAMEBUFFER (pdata ^. fboPos . _1 . unFBO)
|
||||||
withArray [0, 0, 0, 0] $ \ptr ->
|
withArray [0, 0, 0, 0] $ \ptr ->
|
||||||
glClearNamedFramebufferfv
|
glClearNamedFramebufferfv
|
||||||
@@ -374,7 +366,7 @@ doDrawing' win pdata u = do
|
|||||||
glDepthMask GL_FALSE
|
glDepthMask GL_FALSE
|
||||||
withArray [GL_COLOR_ATTACHMENT0, GL_NONE] $
|
withArray [GL_COLOR_ATTACHMENT0, GL_NONE] $
|
||||||
glNamedFramebufferDrawBuffers (pdata ^. fboCloud . _1 . unFBO) 2
|
glNamedFramebufferDrawBuffers (pdata ^. fboCloud . _1 . unFBO) 2
|
||||||
-- $ \ptr -> glDrawBuffers 2 ptr
|
-- $ \ptr -> glDrawBuffers 2 ptr
|
||||||
glDepthFunc GL_ALWAYS
|
glDepthFunc GL_ALWAYS
|
||||||
glBindTextureUnit 0 (_unTO . snd $ _fboLighting pdata)
|
glBindTextureUnit 0 (_unTO . snd $ _fboLighting pdata)
|
||||||
glEnable GL_BLEND
|
glEnable GL_BLEND
|
||||||
@@ -383,7 +375,8 @@ doDrawing' win pdata u = do
|
|||||||
glBlendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
|
glBlendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
|
||||||
|
|
||||||
-- bind base buffer for drawing clouds and bloom
|
-- 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
|
--draw shadowed clouds onto base buffer
|
||||||
glBindTextureUnit 0 (pdata ^. fboCloud . _2 . _1 . unTO)
|
glBindTextureUnit 0 (pdata ^. fboCloud . _2 . _1 . unTO)
|
||||||
|
|||||||
Reference in New Issue
Block a user