260 likes | 482 Views
Geometry Textures. Rodrigo de Toledo, ( PhD candidate at LORIA-INRIA) (Researcher at Tecgraf, PUC-Rio) Bin Wang and Bruno Levy. Geometry Textures. Geometry Texture is a patch of surface A set of GT is used to represent/render an entire object Representation is based on height maps
E N D
Geometry Textures Rodrigo de Toledo,(PhD candidate at LORIA-INRIA) (Researcher at Tecgraf, PUC-Rio) Bin Wang and Bruno Levy
Geometry Textures • Geometry Texture is a patch of surface • A set of GT is used to represent/render an entire object • Representation is based on height maps • Rendering is based on GPU ray casting
Motivation • In highly detailed meshes, small triangles represent mesostructures • Maybe it is better to render these mesostructres using a more appropriate representation • Main idea: to use mesoscale rendering algorithms for macroscale visualization
Summary • Motivation • Scale level classification • Mesoscale • GPU ray-casting of height maps • Conversion • Visualizing • Results
Macroscale Scene-scale Microscale Mesoscale Visualization algorithmsgrouped into scale levels • z-buffer • ray tracing • spatial subdivision • culling • (between macro and micro) • textures • mesostructures • object representation • shading • LOD • impostors • complex lighting models • photon mapping • BSSRDF
Mesoscale • Mesostructure representation • Color map • Normal map (bump) • Height map • Volumetric mesostructure • Shading function (BRDF)
Mesostructure visualization Mesoscale Mesoscalemethods • Expected rendering effects
Summary • Motivation • Scale level classification • Mesoscale • GPU ray-casting of height maps • Conversion • Visualizing • Results
Linear search Binary search BinRayCasting() { for 1..M { Δ Δ / 2 Δ z(P) ? -Δ : Δ P P + Δ’ } } ray path sampled N times missing a sample if is big v P0 P1 second searching step P2 Pi-1 Pi-1 P'i Pi Pi hm(x,y) Height-map GPU ray casting
Height-map GPU ray casting • Silhouette, self-occlusion and self-shadow • Balance between steps 66 85 70 55 Top viewBalance: more speed Profile view Balance: more quality [Policarpo and Oliveira 2005]
Height-map GPU ray casting It can be used to mesoscale visualization But, we propose to use it for macroscale visualization: Geometry Textures
Geometry Textures • Parallel hexahedron with height map in its interior • Each one has its own orientation • HM domain is not restricted to a perfect rectangle • Previous work on multiple height maps: • Relief Texture Mapping [OB00] • Rendering Geometry with Relief Texture [BD06] • Real-time VDM using per-pixel visibility [PDG05]
Summary • Motivation • Scale level classification • Mesoscale • GPU ray-casting of height maps • Conversion • Visualizing • Results
Verifyfolding Conversion overview Mesh Partioning Bounding-box Maps extraction mesh x, y definition (PCA analysis) color,normal,height maps extraction Partioning Overlapping bbox domain in 3D maps dilation z definition (normal median) Geometry Texture set
Partitioning • The most complex step in conversion • Each part should not present any folding (no overhang) • Domain as square as possible
Partitioning strategies VSA [Steiner et al. 04] PGP [Ray et al. 05]
Summary • Motivation • Scale level classification • Mesoscale • GPU ray-casting of height maps • Conversion • Visualizing • Results
Geometry Texture Results Using dragon example to test: (1.2 million triangles) • Rendering quality • Rendering speed • Pre-processing performance • Memory space
mesh 5122 2562 1282 Geometry Texture Results(rendering quality) mesh 5122 2562 1282 2562 is the best option
Geometry Texture Results(rendering quality) Seamless reconstruction due to overlapping + z-buffer • GT should respect z-buffer rules: • Compute depth + test + update z-buffer • Z-fight (for the same color)
Geometry Texture Results(rendering performance) • 2562 GeoTex is faster than mesh for screen-size smaller than 800x600 GeForce 8800
Geometry Texture Results(pre-processing and memory) • Original Dragon: 13.3 MB • From quality point of view: 2562 is good • If memory is a problem: 1282
Conclusion • Positive aspects: • Rendering speed follows a LOD behavior. • It can be used with other polygonal objects in scene (z-buffer). • Memory reduction is possible without losing too much information. • Drawbacks: • Too much complex conversion algorithm. • Especially the partitioning step (which is considerably elaborate). • We suggest the use of multilayer height maps (FW). • It is hard to battle VBO speed in recent graphics cards. • We should test GT with more complex models (such as David). • If multiple models on the screen at the same time, GT can battle VBO. [PDG05]
Future work • Image operations on geometry textures • Multilayer height maps • Sequence of height maps for the entire object • Layers forming a CSG representation
Thank you Questions?