VolumeRendering
Emission and Absorption with TF
← TF Editor | ● | Isosurface Extraction →
Non linear transfer functions $TF_A=\rho(s(t))$ resp. $TF_E=\kappa(s(t))$:
Transfer functions are stored as 1D RGBA texture, where the RGB channels correspond to $\kappa(s(t))$ and the A channel corresponds to \rho(s(t)).
Realization of numerical integration with OpenGL dependent texture lookup: Numerical integration by view-aligned slicing with slice distance $\Delta t$, Over-Operator and constant vertex color $(\mu_E \Delta t,\mu_E \Delta t,\mu_E \Delta t, 1 - e^{-\mu_A \Delta t})$, 3D-texture lookup of s(t) and modulation of vertex color with dependent-texture lookup of $\kappa(s(t))$ resp. modulation of vertex opacity with dependent-texture lookup of $\rho(s(t))$.
Using an OpenGL fragment program:
!!ARBfp1.0 TEMP tmp, col; # get data from 3D texture TEX tmp.x, fragment.texcoord[0], texture[0], 3D; # dependent 1D texture lookup TEX col, tmp, texture[1], 1D; # modulate and write to output register MUL result.color, col, fragment.color.primary; END
← TF Editor | ● | Isosurface Extraction →