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

Options: