volmetrics
annotate data/shaders/transfer.f.glsl @ 26:5ee081af59b8
volume rendering
author | Eleni Maria Stea <elene.mst@gmail.com> |
---|---|
date | Sun, 27 Apr 2014 18:25:40 +0300 |
parents | |
children |
rev | line source |
---|---|
elene@24 | 1 uniform sampler3D tex; |
elene@24 | 2 uniform float tmin; |
elene@24 | 3 uniform float tmax; |
elene@24 | 4 |
elene@24 | 5 float transfer(float x, float tmin, float tmax) |
elene@24 | 6 { |
elene@24 | 7 float dt = 0.25 * (tmax - tmin); |
elene@24 | 8 return smoothstep(tmin - dt, tmin + dt, x) * |
elene@24 | 9 (1.0 - smoothstep(tmax - dt, tmax + dt, x)); |
elene@24 | 10 } |
elene@24 | 11 |
elene@24 | 12 void main() |
elene@24 | 13 { |
elene@24 | 14 float texel = texture3D(tex, gl_TexCoord[0].xyz).x; |
elene@24 | 15 float val = transfer(texel, tmin, tmax); |
elene@24 | 16 |
elene@24 | 17 gl_FragColor = vec4(val, val, val, 1.0); |
elene@24 | 18 } |