A Generic and Scalable Pipeline for GPU Tetrahedral Grid Rendering

About This Presentation
Title:

A Generic and Scalable Pipeline for GPU Tetrahedral Grid Rendering

Description:

A Generic and Scalable Pipeline for GPU Tetrahedral Grid Rendering –

Number of Views:33
Avg rating:3.0/5.0
Slides: 20
Provided by: jensk1
Learn more at: http://vis.computer.org
Category:

less

Transcript and Presenter's Notes

Title: A Generic and Scalable Pipeline for GPU Tetrahedral Grid Rendering


1
A Generic and Scalable Pipelinefor GPU
Tetrahedral Grid Rendering
  • Joachim Georgii, Rüdiger Westermann

2
Motivation
  • Rendering tetrahedral grids?
  • Frequently used in simulations
  • Visualization of internal properties
  • Interactive Rendering of
  • Large data
  • Deformable models
  • Topologically changing models

3
Motivation
  • Rendering tetrahedral grids?
  • Frequently used in simulations
  • Visualization of internal properties
  • Interactive Rendering of
  • Large data
  • Deformable models
  • Topologically changing models

Deformable models
Topological changes
4
Yet another approach?
  • Interactive Rendering
  • Previous approaches applicable?
  • Cell Projection (Shirley 90)
  • Powersort (Cignoni 95)
  • MPVO (Williams 92)
  • k-Buffer (Callahan 05)
  • Raycasting (Weiler 03)
  • Resampling (Weiler 01, Westermann 01)

Deformable models
Topological changes
? ?
? ?
? ?
? ?
? ?
5
Yet another resampler?
  • Explore new graphics hardware features
  • Minimize bus bandwidth
  • Advantages
  • Per-element calculations performed only once
  • Shared vertex and attribute arrays
  • No additional memory
  • Raysampling in barycentric coordinates
  • ? minimal arithmetic and memory access operations

6
Method Overview
  • Element Assembly Primitive Construction
  • Build a tetrahedral element on the GPU
  • Fragment Stage
  • Tetrahedra sampling

7
Shell Partitioning
  • Tetrahedra partitioning and sampling

8
Element Assembly
  • A single vertex is rendered per tetrahedron
  • 4 references into vertex texture
  • Get vertex coordinates (4 x texfetches)
  • Transform to eye-coordinates

Vertex Texture
1 Vertex
9
Primitive Construction
  • Traverse rays in barycentric coordinates
  • needed anyway to interpolate attributes
  • Determine local barycentric coordinates (LBC)
  • Render triangle strip (backfaces are culled)
  • 6 vertices with
  • barycentric ray direction, length (interpolated
    by rasterizer)
  • barycentric eye point, IDs

10
Fragment Stage
Eye
Screen
Shell
11
Fragment Stage cont.
  • Discard samples outside the tetrahedron
  • min bi lt 0, output 0
  • Interpolate attributes (scalars, texcoords)
  • Optimization
  • MRTs
  • Up to 16 samples per fragment/shell? Less access
    operations to scalars/texcoord texture
  • ? Only (cheap) incremental update on bi
  • ? Partitioning gets better

12
Direct volume rendering
13
Is there more?
  • No need to only sample equidistantly along view
    rays
  • We can also
  • Sample at iso-values ? Iso-surface rendering
  • Sample at front-/backfaces? Cell Projection

14
Iso-Surface Rendering
  • Sample tetrahedron at
  • Depth test
  • instead of blending stage
  • Gradients
  • Lighting

15
Cell Projection
  • Determine ray exit point
  • Idea
  • Point on face ? one barycentric coordinate 0
  • Determine 4 candidate values zout
  • Choose smallest value ? exit point
  • Get attenuation from length of ray segment
  • Get scalars on entry and exit point

16
Implementation
  • Element Assembly ? vertex shader
  • Fragment Stage ? fragment shader
  • Primitive Construction ? geometry shader
  • Whats a geometry shader?
  • Specified in Direct3D 10
  • Available next week
  • Therefore 2 passes, render-to-vertex-buffer

17
Results
  • Scalar
  • Bluntfin
  • (190k tets)
  • 400 slices
  • 9 fps
  • 3D texture coordinates
  • Visible male head
  • (3800k tets)
  • 512x512x302 texture
  • 600 slices
  • 1 fps
  • DEMO

18
Conclusion
  • We have proposed a rendering pipeline for
    tetrahedral grids that is
  • Generic
  • Direct volume rendering
  • Iso-surface rendering
  • Cell projection
  • Scalable
  • Large datasets
  • Graphics hardware development
  • Designed for upcoming graphics hardware
  • Geometry shader

19
Future Work
  • Verification on future Direct3D 10 GPUs
  • Early ray termination
  • ClearView

20
Thanks for your attention
Write a Comment
User Comments (0)
About PowerShow.com