From 0c4b68a8842b572513f3cd9685bb8cc03defc66e Mon Sep 17 00:00:00 2001 From: Stuart Buchanan Date: Sat, 17 Dec 2011 19:12:38 +0000 Subject: [PATCH] Impostor and geometry changes for 3D clouds. --- Effects/cloud.eff | 4 ---- Shaders/3dcloud.frag | 3 ++- Shaders/3dcloud.vert | 21 ++++++++------------- 3 files changed, 10 insertions(+), 18 deletions(-) diff --git a/Effects/cloud.eff b/Effects/cloud.eff index ee9cce00a..0dc464100 100644 --- a/Effects/cloud.eff +++ b/Effects/cloud.eff @@ -57,10 +57,6 @@ usrAttr2 11 - - usrAttr3 - 12 - baseTexture diff --git a/Shaders/3dcloud.frag b/Shaders/3dcloud.frag index 4222fbfc8..6a6a4a2cf 100644 --- a/Shaders/3dcloud.frag +++ b/Shaders/3dcloud.frag @@ -6,6 +6,7 @@ void main(void) vec4 base = texture2D( baseTexture, gl_TexCoord[0].st); vec4 finalColor = base * gl_Color; gl_FragColor.rgb = mix(gl_Fog.color.rgb, finalColor.rgb, fogFactor ); - gl_FragColor.a = mix(0.0, finalColor.a, fogFactor); + //gl_FragColor.a = mix(0.0, finalColor.a, fogFactor); + gl_FragColor.a = finalColor.a; } diff --git a/Shaders/3dcloud.vert b/Shaders/3dcloud.vert index ab724622e..a650e4d00 100644 --- a/Shaders/3dcloud.vert +++ b/Shaders/3dcloud.vert @@ -7,21 +7,16 @@ uniform float range; // From /sim/rendering/clouds3d-vis-range attribute vec3 usrAttr1; attribute vec3 usrAttr2; -attribute vec3 usrAttr3; -float textureIndexX = usrAttr1.r; -float textureIndexY = usrAttr1.g; -float wScale = usrAttr1.b; -float hScale = usrAttr2.r; -float shade_factor = usrAttr2.g; -float cloud_height = usrAttr2.b; -float bottom_factor = usrAttr3.r; -float middle_factor = usrAttr3.g; -float top_factor = usrAttr3.b; +float shade_factor = usrAttr1.g; +float cloud_height = usrAttr1.b; +float bottom_factor = usrAttr2.r; +float middle_factor = usrAttr2.g; +float top_factor = usrAttr2.b; void main(void) { - gl_TexCoord[0] = gl_MultiTexCoord0 + vec4(textureIndexX, textureIndexY, 0.0, 0.0); + gl_TexCoord[0] = gl_MultiTexCoord0; vec4 ep = gl_ModelViewMatrixInverse * vec4(0.0,0.0,0.0,1.0); vec4 l = gl_ModelViewMatrixInverse * vec4(0.0,0.0,1.0,1.0); vec3 u = normalize(ep.xyz - l.xyz); @@ -36,8 +31,8 @@ void main(void) // scaling in the homogeneous component of pos. gl_Position = vec4(0.0, 0.0, 0.0, 1.0); gl_Position.xyz = gl_Vertex.x * u; - gl_Position.xyz += gl_Vertex.y * r * wScale; - gl_Position.xyz += gl_Vertex.z * w * hScale; + gl_Position.xyz += gl_Vertex.y * r; + gl_Position.xyz += gl_Vertex.z * w; // Apply Z scaling to allow sprites to be squashed in the z-axis gl_Position.z = gl_Position.z * gl_Color.w;