Fix dust rendering
This commit is contained in:
+2
-17
@@ -1,30 +1,15 @@
|
||||
#version 450 core
|
||||
in vec4 vPosID;
|
||||
in vec4 vCol;
|
||||
in vec4 vCenterSize;
|
||||
in vec4 vControls;
|
||||
layout (location=0) out vec4 fCol;
|
||||
layout (location=1) out vec4 fPos;
|
||||
layout (location=2) out vec4 fNorm;
|
||||
void main()
|
||||
{
|
||||
// there are quite a few intricate controls concerning the normals
|
||||
// we want normals to be bigger towards the center, so that when two clouds
|
||||
// are blended central normals predominate
|
||||
// similarly, we want normals to be bigger the further up the cloud is
|
||||
// finally, we want normals to allow for shadows at the edge of a cloud
|
||||
// when a light is direcly above the cloud
|
||||
float d = dot(vControls,vControls);
|
||||
if (d > 1) {discard;}
|
||||
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 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);
|
||||
fPos = vec4(vPosID.xyz, vCol.w*(1-d));
|
||||
fNorm = vec4(vControls.xy, 0.1 ,fPos.w); // note arbirary 0.1, might want to point downwards at the edges?
|
||||
}
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
#version 450 core
|
||||
layout (location = 0) in vec4 posID;
|
||||
layout (location = 1) in vec4 col;
|
||||
layout (location = 2) in vec4 centerSize;
|
||||
layout (location = 3) in vec4 controls;
|
||||
//layout (location = 2) in vec4 centerSize;
|
||||
layout (location = 2) in vec4 controls;
|
||||
layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ;
|
||||
out vec4 vPosID;
|
||||
out vec4 vCol;
|
||||
out vec4 vCenterSize;
|
||||
//out vec4 vCenterSize;
|
||||
out vec4 vControls;
|
||||
void main()
|
||||
{
|
||||
gl_Position = theMat * vec4(posID.xyz,1);
|
||||
vPosID = posID;
|
||||
vCol = col;
|
||||
vCenterSize = centerSize;
|
||||
//vCenterSize = centerSize;
|
||||
vControls = controls;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user