1 / 42

Volume Graphics on Consumer PC Hardware

Volume Graphics on Consumer PC Hardware. Advanced Techniques Klaus Engel. Ray Integration. discrete approximation of Volume Rendering Integral will converge against correct result for d -> 0 scalar field can be correctly reconstructed with sampling rate according to the Nyquist frequency.

iria
Download Presentation

Volume Graphics on Consumer PC Hardware

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. Volume Graphics on Consumer PC Hardware Advanced Techniques Klaus Engel

  2. Ray Integration • discrete approximation of Volume Rendering Integral will converge against correct result for d -> 0 • scalar field can becorrectly reconstructedwith sampling rateaccording to the Nyquist frequency

  3. T(s) T(s(x)) s High Frequency Transfer Functions • High frequencies in the transfer function T increase required sampling rate s(x) x x

  4. High Frequency Transfer Functions Cryoelectron-microscopic Volume Isosurface of Escherichia Coli Ribosome at 18 Ångström T(s) s 64 data slices 10 times more slices

  5. 50 x more slices High Frequency Transfer Functions multiple peaks T(s) s

  6. High Frequency Transfer Functions Red: piecewise linear Green: random Blue: piecewise linear Alpha: identity

  7. Classification Interpolation Transfer-Functions Pre-Classification Interpolation Classification Post-Classification Pre- and Postclassification Voxel

  8. Pre- and Postclassification • Pre-Classification • no high-frequencies from TF • Post-Classification • reproduces high-frequencies on theslice polygons • to reproduce high frequencies in between slices => render many slices

  9. Pre-Integrated Classification • Pre-Integrated Classification • split numerical integration into • one pre-integration for the TF • one integration for the scalar field • slab-by-slabrendering slice-by-slice slab-by-slab

  10. shell rendering slice rendering Pre-Integrated Classification d sb sf

  11. Pre-Integration of all possible combinations save values In table sf sb sb sf Pre-Integrated Volume Rendering • Pre-processing

  12. Pre-Integrated Volume Rendering • Rendering project back slice sf sb front slice back slice

  13. utilize sf and sb as texture coordinates for the dependent texture sb sf Pre-Integrated Volume Rendering • Rendering fetch sf and sb during rasterization sf sb slice

  14. fetch pre-integrated ray-segment sb sf Pre-Integrated Volume Rendering • Rendering texture polygon with pre-integrated value sf sb slice

  15. R RGBA A Pre-Integrated Volume Rendering • Fetch of pre-integrated valuesrequires dependent texture fetch • GL_DEPENDENT_AR_TEXTURE_2D_NV

  16. RGBA R RGBA R Pre-Integrated Volume Rendering • dependent texture fetch withR-components of two slices

  17. RGB R RGB R Pre-Integrated Volume Rendering • implementation (NVIDIA) • GL_DOT_PRODUCT_TEXTURE2D_NV • (1,0,0)=R • (1,0,0)=R

  18. RGBA R mov mov RGBA G Pre-Integrated Volume Rendering • implementation (ATI) • glSampleMapATI R G B A

  19. a - = 0 sf sb Pre-Integrated Classification • problem: pre-integration for each TF ~ 20sec. on Athlon650=> no interactive change of TF • acceleration (<0.05 sec.): • use integral functions • requires to neglect self-attenuation O(n2) O(n) a 0 sf sb

  20. 128 slices pre-classification 128 slices post-classification 284 slices post-classification 128 slices pre-integrated Pre-Integrated Volume Rendering

  21. Pre-Integrated Volume Rendering Pre-Classification Post-Classification Pre-Integrated-Classification

  22. Pre-Integrated Volume Rendering single peak

  23. Pre-Integrated Volume Rendering multiple peaks

  24. Pre-Integrated Volume Rendering many peaks

  25. Pre-Integrated Volume Rendering noise volume inside car

  26. Pre-Integrated Volume Rendering inhomogeneous region homogeneous region

  27. isosurface  sf <=siso <=sb or sf >=siso >=sb siso Pre-Integrated Isosurfaces sf sf sb front slice back slice

  28. 1. 2. 1 front slice back slice front slice back slice 4 3. 4. 3a 2 3 3a front slice back slice front slice back slice Pre-Integrated Isosurfaces isosurfaces:particular dependent tex sb 96 32 sf 32 96

  29. gb R G B A gf Pre-Integrated Isosurfaces gradient interpolation sb g front slice g = w gb + (1-w) gf w = (siso – sf)/(sb – sf) back slice gx gy gz s

  30. Pre-Integrated Isosurfaces • there´s no per-fragment division available in current graphics hardware (NV2x,R300)=>store w in dependent texture • no more texture fetches available?=>use one dep.tex. for color and w=>store w in ALPHA

  31. Pre-Integrated Isosurfaces • lighting • NVIDIA • dot product lighting (register combiners) • lightmap (texture shaders)(will require more texture shader fetches than currently available) • ATI • dot product lighting (fragment shaders) • lightmap (fragment shaders)

  32. Pre-Integrated Isosurfaces Results

  33. Pre-Integrated Isosurfaces

  34. Pre-Integrated Isosurfaces isosurface volume shading direct

  35. Beyond SciVis

  36. Volumetric FX Ebert et al.: Texturing and Modeling: A Procedural Approach, Academic Press, 1998 • Idea: procedural noise for microstructure coarse volume for macrostructure

  37. Volumetric FX • two basic approaches • perturb data access • cannot produce new data values • implemented by texture coordinate distortion(offset textures) • good for perturbation of boundaries • perturb data • can produces new data values • implemented by blending of data and noise • also perturbs homogeneous regions

  38. Volumetric FX + + Radial distance volume Perlin noise Perlin noise RGB texture

  39. (1,0,0)=R RGB S0 RGB S1 Volumetric FX • Pre-Integration + noising • dot-product weighting • (a,b,g)=S0 • (1,0,0)=R • (a,b,g)=S1

  40. Volumetric FX • Pre-Integration + noising • animation: • change weighting through texture coords.=> distortion of dependent lookup • color cycling with transfer functions=> outwards movement

  41. Conclusions • Pre-Integrated Volume Rendering • great quality, less slices • less error due to pre-processing • reproduces high frequencies from transfer function • arbitrary number of lit isosurfaces in a single pass • Volumetric FX • coarse macrostructure, details from noise and TF • animate TF and weighting of volumes for dynamics • give something back to the gaming industry in returnfor the new great graphics hardware

  42. Q&A Thank you for your attention! Questions ? • Want to know more ?Wed. 16:00-17:30 - STAR(S2): Interactive High-Quality Volume Rendering on Flexible Consumer Graphics Hardware

More Related