Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add KHR_TF_2D extension to support 2D Transfer Functions for Volumes #69

Open
griffin28 opened this issue Mar 22, 2023 · 1 comment
Open
Labels
ready for proposal A formalized proposal to change the spec.

Comments

@griffin28
Copy link
Collaborator

griffin28 commented Mar 22, 2023

When a scalar volume value is associated with multiple materials/boundaries a 1D transfer function is unable to render them in isolation. This arises a lot in medical datasets, like the one below, and when trying to isolate different layers in an ICF capsule dataset. There are other limitations to 1D transfer functions that can be found with a quick Google search so I won’t list them here.

APIs like VTK (see VTK Volume Property) currently support 2D transfer functions and knowing what renderers support 2D TFs will be important for volume rendering these types of datasets.

EXAMPLE: Volume rendering head dataset (Data/headsq/quarter) with VTK using OpenGL (vtkOpenGLGPUVolumeRayCastMapper ) with 2D transfer function (linear, gradient) vs. VTK using ANARI (vtkAnariVolumeMapper ) using a 1D transfer function (linear)

image image

@griffin28
Copy link
Collaborator Author

griffin28 commented Mar 29, 2023

Simple case (Implicit 2D transfer function for scalar data)

  1. SpatialField stays the same (single scalar value)
  2. Add gradient parameter to scivis volumes
  3. Add tf2D parameter to scivis volumes of type Sampler with subtype image2D for explicitly defining the 2D transfer function look-up table with the second dimension representing the gradient magnitude

More general case (Explicit and implicit 2D transfer function for multivariate data)

  1. SpatialField supports up to vec2 scalar values
  2. Add second opacity parameter to scivis volumes that maps the second scalar value to an opacity multiplier
  3. Add tf2D parameter to scivis volumes of type Sampler with subtype image2D for explicitly defining the 2D transfer function look-up table

@griffin28 griffin28 added the ready for proposal A formalized proposal to change the spec. label Apr 12, 2023
@jeffamstutz jeffamstutz added the v1.1 Issues to be decided on for the v1.1 specification label Apr 26, 2023
@jeffamstutz jeffamstutz removed the v1.1 Issues to be decided on for the v1.1 specification label Oct 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready for proposal A formalized proposal to change the spec.
Projects
None yet
2 participants