fixed volume shaders

This commit is contained in:
Jason Vertrees
2011-06-09 19:58:09 +00:00
parent c07854191e
commit 34d73b81cf
3 changed files with 14 additions and 4 deletions

View File

@@ -2,6 +2,10 @@
CHANGE LOG
=========================================================================
2011-06-09 Jason Vertrees <Jason.Vertrees@schrodinger.com>
* fixed volume shader; esp for Ubuntu
2011-06-08 Jason Vertrees <Jason.Vertrees@schrodinger.com>
* "fix" for colored sticks problem

View File

@@ -1,12 +1,18 @@
uniform sampler3D volumeTex;
uniform sampler1D colorTex;
uniform float fog_r;
uniform float fog_g;
uniform float fog_b;
uniform float fog_enabled;
varying float fog;
void main()
{
vec3 fog_color = vec3(0.0, 0.0, 0.0);
vec3 fog_color = vec3(fog_r, fog_g, fog_b);
vec4 color = texture1D(colorTex, texture3D(volumeTex, gl_TexCoord[0].xyz).x);
if (color.a == 0.0) discard;
gl_FragColor = vec4(vec3(mix(fog_color, color.rgb, fog)), color.a);
float cfog = mix(1.0, clamp(fog, 0.0, 1.0), fog_enabled);
gl_FragColor = vec4(vec3(mix(fog_color, color.rgb, cfog)), color.a);
}

View File

@@ -5,7 +5,7 @@ void main()
vec4 vertex = gl_ModelViewMatrix * gl_Vertex;
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_ClipVertex = vertex;
gl_FogFragCoord = length(vertex.z);
fog = (gl_Fog.end - gl_FogFragCoord) * gl_Fog.scale;
gl_Position = ftransform();
gl_FogFragCoord = -vertex.z;
fog = (gl_Fog.end - gl_FogFragCoord) * gl_Fog.scale;
}