Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Rendering Geometry with Relief Textures L.Baboud X.Décoret ARTIS-GRAVIR/IMAG-INRIA.

Similar presentations


Presentation on theme: "1 Rendering Geometry with Relief Textures L.Baboud X.Décoret ARTIS-GRAVIR/IMAG-INRIA."— Presentation transcript:

1 1 Rendering Geometry with Relief Textures L.Baboud X.Décoret ARTIS-GRAVIR/IMAG-INRIA

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

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

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

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

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

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

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

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

11 11 Policarpo [I3D 05] Missed intersection

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

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

14 14 Policarpo [I3D 05]

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

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

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

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

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

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

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

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

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

24 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 25 Adapted Amanatides traversal Texture resolution dependent Texture resolution dependent Double resolution  half speed Double resolution  half speed Ideally should depend on “variations” of heightfield, not sampling frequency Ideally should depend on “variations” of heightfield, not sampling frequency Binary search doesn’t have this drawback Binary search doesn’t have this drawback Constant number of texture lookups Constant number of texture lookups

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

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

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

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

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

31 31 Failsafe binary search

32 32 Failsafe binary search

33 33 Failsafe binary search

34 34 Failsafe binary search

35 35 Failsafe binary search

36 36 Failsafe binary search

37 37 Failsafe binary search

38 38 Failsafe binary search

39 39 Failsafe binary search

40 40 Failsafe binary search

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

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

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

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

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

46 46 Projective height-fields

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

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

49 49 Multiple height-fields

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

51 51 Future Geometry representable with heightfields Geometry representable with heightfields Because we are exact Because we are exact Model directly with heightfields Model directly with heightfields Photoshop 3D [Mok01] Photoshop 3D [Mok01] Apply to judicious situations Apply to judicious situations

52 52 Future Thank you! Thank you! Questions? Questions?


Download ppt "1 Rendering Geometry with Relief Textures L.Baboud X.Décoret ARTIS-GRAVIR/IMAG-INRIA."

Similar presentations


Ads by Google