1 / 38

Interactive Rendering of Meso-structure Surface Details using Semi-transparent 3D Textures

Interactive Rendering of Meso-structure Surface Details using Semi-transparent 3D Textures. Vision, Modeling, Visualization Erlangen, Germany November 16-18, 2005. Jean-François Dufort, Luc Leblanc, Pierre Poulin LIGUM, Université de Montréal. Goals and Motivation.

ziven
Download Presentation

Interactive Rendering of Meso-structure Surface Details using Semi-transparent 3D Textures

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Interactive Rendering of Meso-structure Surface Details using Semi-transparent 3D Textures Vision, Modeling, Visualization Erlangen, Germany November 16-18, 2005 Jean-François Dufort, Luc Leblanc, Pierre Poulin LIGUM, Université de Montréal

  2. Goals and Motivation • Hardware rendering semi-transparent details • Flexible • Arbitrary mesh and 3D texture • Mesh animation • Texture animation • Semi-transparency neglected in most applications • Important rendering features • Color blending because of semi-transparency • Filtering • Displaced silhouettes

  3. Motivation

  4. Motivation

  5. Previous Work :Bump and Parallax mapping [Welsh 2004]

  6. Previous Work : Displacement Mapping [Wang et al. 2003] • Adaptive tesselation [Moule and McCool 2002] • View-dependent displacement map [Wang et al. 2003] • Ray-tracing in height field [Hirche et al. 2003]

  7. Previous Work : 3D Textures • Using proxy geometry [Meyer and Neyret 1998] [Lensch et al. 2002] • Generalized displacement maps [Wang et al. 2004] • Shells maps [Porumbescu et al. 2005] [Wang et al. 2004]

  8. Previous Work :Volume Rendering • Data inside a grid • Regular • Tetrahedra [Kraus et al. 2004] • Ray marching

  9. Plan • Algorithm overview • Mesh processing • Tetrahedra sorting • Vertex shader: Ray construction • Fragment shader: Opacity/color integration • Results • Conclusion and future work

  10. Mesh extrusion Algorithm Overview CPU • Computed once • Extrude a shell from the surface triangular mesh • Divide each shell prism into three tetrahedra

  11. Mesh extrusion Tetrahedra sorting Algorithm Overview CPU • Alpha blending involves sorting • Sorting tetrahedra with the SXMPVO algorithm

  12. Mesh extrusion Tetrahedra sorting Ray creation Algorithm Overview CPU • Vertex shader • Defines an object-space ray within each tetrahedron GPU

  13. Mesh extrusion Tetrahedra sorting Ray creation Color integration Rendering loop Algorithm Overview CPU • Per pixel, maps object ray in • texture space • 3D texture sampling by ray marching • Accumulate color in frame buffer GPU

  14. Mesh Processing • We map tetrahedra on base mesh • Defines a tetrahedral shell in which the 3D texture is mapped

  15. Mesh Processing

  16. Mesh Processing

  17. Mesh Processing • Affine transformation from object space to texture space • Ptex = Mobj->tex Pobj

  18. E B C F D A Tetrahedra Sorting • Alpha blending requires sorting • SXMPVO: graph of « behind » relations [Cook et al. 2004] G

  19. Tetrahedra Sorting • Adjacent faces : object space E B C F D A G

  20. Tetrahedra Sorting • Non-adjacent faces using A-buffer : screen space E B C F D A G

  21. Tetrahedra Sorting • Non-adjacent faces using A-buffer : screen space E B C F D A G

  22. G A B D E C A F F G E C D B G E B C F D A F E G D C B A Tetrahedra Sorting • Depth-first traversal

  23. Ray Construction • Tetrahedra sent down the pipeline • Each vertex has • View vector • Plane equation of other three faces • Vertex shader computes ray intersection with faces

  24. Ray Construction : 2D Example • Red triangle rasterized • Vertices A and B, Planes F1 and F2 A F1 F2 B

  25. Ray Construction : 2D Example • Compute distance between A and other faces from viewpoint IA2 A IA1

  26. Ray Construction : 2D Example • Compute distance between B and other faces from viewpoint IB2 B IB1

  27. Ray Construction : 2D Example • Rasterization interpolates distances for each pixel covered • We keep the closest valid point A B

  28. Color/Opacity Integration • Fragment shader picks closest valid intersection point • Matrix Mobj->tex maps point in texture space • Defines texture ray in texture space • Ray marching

  29. Color/Opacity Integration • 3D normal map for shading • Front-to-back blending • Alpha at sample location is modified based on distance traveled by light in object space

  30. Performances • Implemented 2 schemes • Uniform sampling • DDA grid traversal • Brute force uniform sampling worked best in our test cases (3D textures 512x512x32) • Fixed number of iterations • User defined, trade-off for quality • Main bottleneck : sorting on CPU

  31. Results : Filtering

  32. Results : Transparency

  33. Results : Volumetric Shadows

  34. Results : Simpler Opaque Case

  35. Results : Real-time Video

  36. Conclusion • We reached our goals • Interactive rendering of arbitrary 3D textures using GPU • Flexible: Semi-transparent and opaque • Rendering effects (transparency, volumetric shadows) • Allows animation of mesh and texture • However… • Not fast enough for real time • Improve performance with precomputation? • Faster sampling scheme?

  37. Future Work • Level-of-detail framework • Geometric details filtering • Improve shading effects • Absorption within 3D texture • Light scattering

  38. Thank you! Questions?

More Related