1 / 78

High-Quality Volume Graphics on Consumer PC Hardware

High-Quality Volume Graphics on Consumer PC Hardware. Klaus Engel. Joe Kniss. Markus Hadwiger. Christof Rezk-Salama. a ( f ). R G B ( f ). Shading, Compositing…. Human Tooth CT. Map data value f to color and opacity. R G B. a. f. ~. ~. Optical Properties. Color (RGB)

isaura
Download Presentation

High-Quality 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. High-Quality Volume Graphics on Consumer PC Hardware Klaus Engel Joe Kniss Markus Hadwiger Christof Rezk-Salama

  2. a(f) RGB(f) Shading, Compositing… Human Tooth CT Map data value f to color and opacity RGB a f

  3. ~ ~ Optical Properties • Color (RGB) • Emissive term =

  4. ~ ~ Optical Properties • Alpha (a.k.a. opacity or extinction) • Attenuates light based on density = =

  5. ~ ~ Optical Properties • Traditional Volume Rendering Equation • Emission & absorption

  6. Optical Properties • Scale alpha values based on sample rate (sr) 1.3 .7

  7. Transfer Function • Transform scalar data value into optical properties • Use optical properties to solve integral • Very easy to implement • Data is a texture • Transfer function is a lookup • Compute Riemann sum using “over operator”

  8. Transfer Function Pre-classification Post-classification Transfer function evaluated before interpolation, i.e. interpolation of colors not data Transfer function evaluated after interpolation, i.e. data is interpolated first

  9. Implementation • Two choices: • Texture Lookup Table • glColorTable* • Varies depending on hardware, may require a special texture data format • Fast • Dependent Texture Read • Very hardware dependent • Becoming more general, see OpenGl 2.0 • Slower but more flexible…

  10. Transfer Function • Problem: • No shape or depth queues • No shading. color alpha f(x,y,z)

  11. Transfer Function • Solution: Faux Shading • Ramp color to black with alpha • Silhouette edges color alpha f(x,y,z)

  12. Transfer Function • Better: Surface Shading • Slower, requires normal • More flexible

  13. Transfer Function • Better: Surface Shading • Slower, requires normal • More flexible • Faux shading enhances

  14. Transfer Function • Problem: Can’t surface shade homogeneous regions • Need good gradients • Sensitive to noise

  15. Transfer Function • Solution: Surface scalar (s) • Only shade high gradient magnitudes: • Or, add s to TF • Interpolate…

  16. Transfer Function • Problem: How did the light get there? • No attenuation through volume • Not realistic!

  17. Transfer Function • Solution: Shadows • Better depth queues • Dramatic effects

  18. Shadows Image plane r1 r0 Eye Light

  19. ~ ~ Shadows Sample ri (s) Image plane r1 r0 l0 IL Eye

  20. Shadows • Implementation: • 2 passes • Attenuate from the light source • Render from the eye • Store light attenuation in second volume • Multiply color by attenuation from shadow volume

  21. Shadows • Disadvantages: • Difficult to build shadow volume on the card • Slow to build off the card • Additional volume required • Attenuation leakage • Blurry shadow boundaries • Low resolution shadows!

  22. Shadows • Alternative: Incremental shadows • Generate shadows one slice at a time • Only use a 2D buffer • Image space shadow computation • All on card • Half angle slicing

  23. Shadows Eye Slicing from light’s point of view

  24. Shadows Eye Slicing from eye’s point of view

  25. Incremental Shadows Eye Half angle slicing: good from either point of view

  26. Incremental Shadows Similar aspect ratio from both points of view

  27. Incremental Shadows * Slice pass 1

  28. Incremental Shadows Slice pass 2

  29. Incremental Shadows • Advantages: • Screen space shadows • No leakage • Use render to texture to optimize • Shades perturbed volumes • Simple implementation • Disadvantages: • Aliasing at sharp opacity changes • Fix with slightly larger light buffer

  30. Shadows • Problem: Shadows still too dark • Direct attenuation is inadequate • Need to handle higher order light transport effects Shadows

  31. Shadows • Solution: Translucency • One consequence of light scattering • Smoke, clouds, skin, wax…. Translucent Shadows

  32. Translucency • Wax: Real Shadows

  33. Translucency • Wax: Translucent Real Shadows

  34. Translucency • Add indirect attenuation Direct attenuation, same as shadows Blurred indirect attenuation, includes an indirect alpha

  35. Translucency Direct (Id) and indirect (Ii) attenuation

  36. Translucency • How? • Same as shadows (two light buffers) • Sample previous light buffer multiple times for blur • Ping-pong blending • Store indirect in a color component • Sum direct and indirect in fragment shader for the eye pass • Only use direct attn. for eye pass

  37. Translucency • Problem: Still doesn’t look right Translucent Real Shadows

  38. Translucency • Solution: add spectral attenuation Translucent w/spectral attn. Real

  39. Translucency • Spectral attenuation: • Attenuate some colors more than others • Spectral indirect attn. is simplest • Need separate alpha for RGB • Store in RGB components of light buffer

  40. Translucency • Indirect alpha vs. transport color • Alpha: • Transport: =1-alpha Transport color is easier to specify

  41. Optical Properties • Recap: • Reflective color/Emission (RGB) • Direct attenuation/alpha (A) • Surface scalar (s) • Indirect attenuation (Ar,Ag,Ab) • Others? Scattering, absorption, phase function, density, emission, index of refraction…

  42. Transfer function • Specification • Simple, easy • Expressive • Guided

  43. Transfer function • Typical: 1D linear ramps • Independent R,G,B,A control • Difficult • Trial and error alpha f(x,y,z)

  44. Transfer function • Problem: • RGB = bad color space for humans • No concept of features alpha f(x,y,z)

  45. Transfer function • Better: set color at control points • Use HSV or HLS color spaces • Simplified interface • Still no guidance alpha f(x,y,z)

  46. Transfer function • Guided techniques: • Design Galleries • Thumbnails • Semi-Automatic • Dual-domain interaction

  47. Design Galleries • Treat TF and rendering as a high dimensional parameter space • Stochastically sample space • Cluster images based on fitness • Select best looking image

  48. Design Galleries

  49. Design Galleries • Computationally expensive • Difficult to implement • Not guided by dataset specifics • Only handles 1D transfer functions

  50. Thumbnails • Visual history of changes • Show important regions of TF • Show effects of potential changes

More Related