1 / 52

Rendering Geometry with Relief Textures

Rendering Geometry with Relief Textures. L.Baboud X.Décoret ARTIS-GRAVIR/IMAG-INRIA. Height-field representation. What can we represent? How to render it? Fast ? Exact? Previous work Our contributions. Height-field. Function from [0,1] 2 to [0,1] Represents a surface

milton
Download Presentation

Rendering Geometry with Relief 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. Rendering Geometry withRelief Textures L.Baboud X.Décoret ARTIS-GRAVIR/IMAG-INRIA

  2. Height-field representation • What can we represent? • How to render it? • Fast ? • Exact? • Previous work • Our contributions

  3. Height-field • Function from [0,1]2 to [0,1] • Represents a surface • Sampled in a texture • Memory/GPU efficient (a) Height texture (b) Reconstructed surface

  4. Height-field • Function from [0,1]2 to [0,1] • Represents a surface • Sampled in a texture • Memory/GPU efficient (a) nearest • Theory: How do you reconstruct? • Practice: Which interpolation for texture lookups? (b) linear Refer to the paper for details

  5. How to render? • Polygonalize • Simple & natural • Costly, not output sensitive • Aliasing -> LOD Small coverage • What if the object is not the “main” one? • Bump • Small objects Large coverage

  6. How to render? • Polygonalize • Simple & natural • Costly, not output sensitive • Aliasing -> LOD • Ray-tracing • Slow? Feasible on GPU! • Output sensitive

  7. Ray-tracing • Existing solution : VDM [Wang 2003] • Sampling in all viewing directions • Memory costly (4 Mb compressed for 128x128) • Use GPU capabilities instead

  8. Principle (1/2) Top view 2D slice

  9. Principle (2/2) • Comparing heights • Along ray • In the heightfield • Until we pass below

  10. Policarpo [I3D 05] Binary search How many iterations? Is it correct?

  11. Missed intersection Policarpo [I3D 05]

  12. Policarpo [I3D 05] Fixed size steps Binary search Better but still potentially false

  13. Policarpo [I3D 05] Fixed size steps Binary search Missed intersection Amounts to vertical slicing Size of steps along the ray depends on ray tilt

  14. Policarpo [I3D 05]

  15. Tatarchuk [I3D06] • Varying size steps (between two bounds) • Depending on ray tilt

  16. Use it for bump Conclusion on existing methods • Advantages : speed • Drawbacks : missed intersections (at grazing angles) Policarpo05 Tatarchuk06

  17. Being exact, what for? • Intellectually rewarding  • Usability large scale geometry • Terrain, buildings, architectural details • Objects (cars, etc.) How many polygons ?

  18. Being exact, what for? • Intellectually rewarding  • Usability large scale geometry • Terrain, buildings, architectural details • Objects (cars, etc.) Only 6 quads !

  19. Being exact, is it hard? • Problem with constant steps • Can always miss intersections

  20. Being exact, is it hard? • Problem with constant steps • Can always miss intersections • Travel slowly above empty space

  21. Being exact, is it hard? • Problem with constant steps • Can always miss intersections • Travel slowly above empty space • Our contributions • Amanatides based approach • Failsafe approach • But requires preprocess solves

  22. Adapted Amanatides traversal • We run along the ray on texel edges

  23. Adapted Amanatides traversal • We run along the ray on texel edges • Advantages : • very simple iterations • exact intersection fragment shader main loop

  24. Adapted Amanatides traversal • We run along the ray on texel edges • Advantages : • very simple iterations • exact intersection • Drawbacks : • potentially many iterations • texture resolution dependent

  25. Adapted Amanatides traversal • Texture resolution dependent • Double resolution  half speed • Ideally should depend on “variations” of heightfield, not sampling frequency • Binary search doesn’t have this drawback • Constant number of texture lookups

  26. Analysis of binary search • At the moment we pass below • At least one intersection • But potentially several ? 2D slice

  27. Analysis of binary search • At the moment we pass below • At least one intersection • But potentially several • Ideally : at most one intersection ? 2D slice How can we guarantee this? Precompute safety radius

  28. What is safety radius ? • Local information Which step ? T Precomputed radius ? For any possible viewing ray passing above T Top view

  29. considered texel Safety radius What is safety radius ? • Local information Viewing direction

  30. What is safety radius ? • Local information • In 3D : for each texel : • Scan every direction • Keep the minimum radius

  31. Failsafe binary search

  32. Failsafe binary search

  33. Failsafe binary search

  34. Failsafe binary search

  35. Failsafe binary search

  36. Failsafe binary search

  37. Failsafe binary search

  38. Failsafe binary search

  39. Failsafe binary search

  40. Failsafe binary search

  41. Various details • Textures • Can have different resolutions • Normal, color, height • Can be packed/compressed • Needs recent fragment shaders supporting dynamic loops

  42. Results • Fast and exact • Height-field regularity dependent • Correct interaction with Z-buffer • Output sensitive

  43. Height-field representation • What can we represent? • How to render it? • Fast ? • Exact? • Previous work • Our contributions

  44. More than bump • Previous methods : small scale bump • Curved surfaces : warping considerations • VDM [Wang 03] • [Policarpo05] • We want to do large scale • Problem : limited expressiveness • orthogonal height-fields

  45. Expressiveness of heightfields • Lack of samples on vertical sides

  46. Projective height-fields

  47. Projective height-fields • Similar to “cubist images” [Hanson 98] • Projective transforms preserve lines • Unmodified algorithm

  48. Projective height-fields • Wasted fillrate • Many eventually discarded fragments • Easy to solve : clip the bounding box (b) clipped (a) not clipped

  49. Multiple height-fields

  50. Conclusion • Remember fast and exact is possible! • Efficient representation • Small memory footprint • Automatic LOD • Two useful methods (dynamic/static)

More Related