glviewvol
annotate sdr/fast.p.glsl @ 8:fb6d93471352
main thing done
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Tue, 30 Dec 2014 20:03:32 +0200 |
parents | 04330eb80b36 |
children | 931a6b35f1cd |
rev | line source |
---|---|
nuclear@4 | 1 uniform sampler3D vol_tex; |
nuclear@4 | 2 uniform sampler1D xfer_tex; |
nuclear@4 | 3 |
nuclear@4 | 4 void main() |
nuclear@4 | 5 { |
nuclear@8 | 6 vec3 tc = gl_TexCoord[0].xyz; |
nuclear@8 | 7 float max_manh_dist = max(tc.x, max(tc.y, tc.z)); |
nuclear@8 | 8 float min_manh_dist = min(tc.x, min(tc.y, tc.z)); |
nuclear@8 | 9 float border = step(0.0, min_manh_dist) * (1.0 - step(1.0, max_manh_dist)); |
nuclear@8 | 10 |
nuclear@4 | 11 vec4 voxel = texture3D(vol_tex, gl_TexCoord[0].xyz); |
nuclear@4 | 12 vec4 color = texture1D(xfer_tex, voxel.a); |
nuclear@4 | 13 |
nuclear@8 | 14 float alpha = color.a * border; |
nuclear@8 | 15 if(alpha < 0.001) discard; |
nuclear@8 | 16 |
nuclear@8 | 17 gl_FragColor.rgb = voxel.rgb; |
nuclear@8 | 18 gl_FragColor.a = alpha; |
nuclear@4 | 19 } |