elene@24: uniform sampler3D tex; elene@24: uniform float tmin; elene@24: uniform float tmax; elene@24: elene@24: float transfer(float x, float tmin, float tmax) elene@24: { elene@24: float dt = 0.25 * (tmax - tmin); elene@24: return smoothstep(tmin - dt, tmin + dt, x) * elene@24: (1.0 - smoothstep(tmax - dt, tmax + dt, x)); elene@24: } elene@24: elene@24: void main() elene@24: { elene@24: float texel = texture3D(tex, gl_TexCoord[0].xyz).x; elene@24: float val = transfer(texel, tmin, tmax); elene@24: elene@24: gl_FragColor = vec4(val, val, val, 1.0); elene@24: }