1 / 120

Quadtree Displacement Mapping with Height Blending

Quadtree Displacement Mapping with Height Blending. Practical Detailed Multi-Layer Surface Rendering Michal Drobot Technical Art Director Reality Pump. Outline. Introduction Motivation Existing Solutions Quad tree Displacement Mapping Shadowing Surface Blending Conclusion.

kanan
Download Presentation

Quadtree Displacement Mapping with Height Blending

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. Quadtree Displacement Mappingwith Height Blending Practical Detailed Multi-Layer Surface Rendering Michal Drobot Technical Art Director Reality Pump

  2. Outline • Introduction • Motivation • ExistingSolutions • Quad tree Displacement Mapping • Shadowing • Surface Blending • Conclusion

  3. Introduction • Next generation rendering • Higher quality per-pixel • More effects • Accurate computation • Less triangles, more sophistication • Ray tracing • Volumetric effects • Post processing • Real world details • Shadows • Lighting • Geometric properties

  4. Surface rendering • Surface rendering stuck at • Blinn/Phong • Simple lighting model • Normal mapping • Accounts for light interaction modeling • Doesn’t exhibit geometric surface depth • Industry proven standard • Fast, cheap, but we want more…

  5. Improvements • Several titles tackled high quality surface rendering • Gears of War • Multiple custom materials • Different light properties • Additional geometric details • Crysis • Multiple custom surfaces • Exhibit natural phenomenon • Ice • Skin • Parallax mapped terrain features

  6. Terrain surface rendring • Rendering terrain surface is costly • Requires blending • With current techniques prohibitive • Blend surface exhibit high geometric complexity

  7. Surfaceproperties • Surfacegeometricproperties • Volume • Depth • Variousfrequencydetails • Together they model visual clues • Depth parallax • Self shadowing • Light Reactivity

  8. Surface Rendering • Lightinteractions • Depends on surfacemicrostructere • Many analitycsolutionsexists • Cook Torrance BRDF • Modelling geometric complexity • Triangle approach • Costly • Vertextransform • Memory • More usefullwithTessalation (DX 10.1/11) • Ray tracing

  9. Motivation • Render different surfaces • Terrains • Objects • Dynamic Objects • Fluid/Gas simulation • Do it fast • Current Hardware • Consoles (X360) • Scalable for upcoming GPUs • Minimize memory usage • Preferably not more than standard normal mapping • Consoles are limited

  10. Motivation • Our solution should support • Accurate depth at all angles • Self shadowing • Ambient Occlusion • Fast and accurate blending

  11. ExistingSolutions • Depth complexity • Calculate correct surface depth • Find correct view ray – height field intersection • Compute lighting calculation using calculated depth offset

  12. False View Ray 0.0 Height 1.0 0.0 UV Texture Space 1.0

  13. False View Ray Correct 0.0 Height 1.0 0.0 UV Texture Space 1.0

  14. Online methods • Perform ray tracing using height field data only • Additional memory footprint • 1x8 bit texture • May use alpha channel • DXT5 – OK! • Remember about alpha interpolation!

  15. Relief mapping • Relief mapping (Policarpo 2005) • Performs intersection calculation by linear search in 2D height field space • Refines the result by binary search near the point of possible hit

  16. Linearsearchwithstatic step length False View Ray Correct 0.0 HIT Height 1.0 0.0 UV Texture Space 1.0

  17. LinearSearch • Linear search in each step • Check if ray over height field • If YES • Move the ray by const distance • If NOT • Stop and go to Binary Search

  18. LinearSearch • Capped by max iterations • Dynamic early out on stop condition • Utilizesindependantreads and linearfiltering • Hardware optimized • Fast for small number of iterations

  19. LinearSearch • Drawbacks • Slow convergence • Prone to aliasing • With large steps may miss height field features • Scales bad with high resolution height fields • Worst case iteration count is n*sqrt(2) for n texelheightfield

  20. Linearsearchwithstatic step length False View Ray Correct 0.0 MISS Height HIT 1.0 0.0 UV Texture Space 1.0

  21. BinarySearch • Staticnumber of iterations • Performssearchalonglast step vector • Convergesfast • Utilizeslinearfiltering

  22. BinarySearch • Drawbacks • Utilizes dependant reads • Not optimized hardware • Slow • Adds GPR • May find wrong intersection due to linear search fault • On its own unusable

  23. Binary search withstatic step length False View Ray Correct 0.0 Binary search region Height 1.0 0.0 UV Texture Space 1.0

  24. Parallax Oclussion Mapping • POM (Tatarchuk 06) • Substitiutes costly binary search by piecewise linear approximation using ALU • Adds several performance improvements to linear search • Dynamic iteration count • LOD system • Approximate soft shadows

  25. Parallax Oclussion Mapping • Pros • Faster than relief mapping • Cons • Same as for linear search • Inaccurate intersection point resulting in missed features for the cost of less noticeable artifacts

  26. POM False View Ray Correct 0.0 linearly approximated intersection Height 1.0 0.0 UV Texture Space 1.0

  27. Preprocessed method • Several methods rely on preprocessed data • Per-pixel Displacement with Distance Function • Using additional 3D textures rising memory footprint to much • Impractical • Cone Step Mapping • Relaxed Cone Step Mapping

  28. Cone Step Mapping • CSM (Dummer 2006) • Based on Cone Maps • Associate circular cone to each texel of height field • Per-texel cone is the largest cone, not intersecting the height field • Performs linear search with step length determined by actual cone radius • Leaps empty space • Conservative approach • Allows accurate intersection computation • Requires additional uncompressed 1x8bit texture for cone angles

  29. Cone Step Mapping • Pros • Very fast • Requires significantly smaller number of iterations than pure linear methods • Under-sampling provides distortions artifact, less noticeable than interleaving • Accurate • There is no possibility to miss a feature

  30. Cone Step Mapping • Cons • May not converge in reasonable number of steps • Needs iteration cap • Performance highly dependant on height field complexity • Horrendous preprocessing time • 256^2 - ~2 min • 512^2 - ~14 min • 1024^2 - ~7.5 h • Effectively impractical for interactive artist tweaking or on-the-fly generation

  31. CSM False View Ray Correct 0.0 Height 1.0 0.0 UV Texture Space 1.0

  32. CSM False View Ray Correct 0.0 Height 1.0 0.0 UV Texture Space 1.0

  33. CSM False View Ray Correct 0.0 Height 1.0 0.0 UV Texture Space 1.0

  34. CSM False View Ray Correct 0.0 Height 1.0 0.0 UV Texture Space 1.0

  35. CSM False View Ray Correct 0.0 HIT Height 1.0 0.0 UV Texture Space 1.0

  36. Quadtree Displacement Mapping • QDM • GPU optimisedversion of classicterrainrenering, hierarchicalraytraycingalgorithm [Cohen ans Sake 1993] • usesmipmapstructureresembling a densequadtreestoring minimum depth to thebaseplane of height field

  37. QuadtreeStructure • Simple construction • Mipmappingwith min operator instead of average • Hardware optimized • Smallmemoryfootprint • 1x8bit texturewithMipMaps

  38. QuadtreeStructure • Quadtreecan be generated on-the-fly • Neglible performance loss

  39. QDM • Ray tracing • Traverse the quadtree • From root (max MIP-hierarchy level) • To lowest leaf (MIP-hierarchy Level 0) • MIP Level 0 • Accurate intersection • Can get inter-texel results using • Linear approximation • Binary Search • Bilinear Patch

  40. Ray tracing • While(Hierarchy_Level > 0) • Depth =getMaxDepth(Pos,Level) • If(Ray_Depth < Depth) • Move_Ray_To_Nearest_Intersection • Else • Descend_One_Hierarchy_Level • Find_Accurate_Intersection

  41. QDM construction 0.0 z Height 1.0 0.0 UV TextureSpace 1.0

  42. QDM construction 0.0 z Height 1.0 0.0 UV Texture Space 1.0

  43. QDM construction 0.0 z Height 1.0 0.0 UV Texture Space 1.0

  44. QDM construction 0.0 z Height 1.0 0.0 UV Texture Space 1.0

  45. QDM construction 0.0 z Height 1.0 0.0 UV Texture Space 1.0

  46. QDM construction 0.0 z Height 1.0 0.0 UV Texture Space 1.0

  47. View Ray QDM Ray tracing 0.0 z Height 1.0 0.0 UV Texture Space 1.0

More Related