presentation - rodrigodetoledo

Download Report

Transcript presentation - rodrigodetoledo

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
Visualization algorithms
grouped into scale levels
Scene-scale
• z-buffer
• ray tracing
• spatial subdivision
• culling
Macroscale
• object representation
• shading
• LOD
• impostors
Mesoscale
• (between macro and micro)
• textures
• mesostructures
Microscale
• complex lighting models
• photon mapping
• BSSRDF
Mesoscale
• Mesostructure
representation
– Color map
– Normal map (bump)
– Height map
– Volumetric mesostructure
– Shading function (BRDF)
Mesostructure visualization
Mesoscale
Mesoscale
methods
• Expected rendering effects
–
–
–
–
–
Summary
• Motivation
• Scale level classification
• Mesoscale
• GPU ray-casting of
height maps
• Conversion
• Visualizing
• Results
Height-map GPU ray casting
Linear search
Binary search
BinRayCasting()
{
for 1..M
{
ΔΔ/2
Δ  z(P) ? -Δ : Δ
P  P + Δ’
}
}
ray path
sampled
N times
v
P0
second
searching
step
missing a
sample if
is big
Pi-1
P1
P2
P'i
Pi-1
Pi
hm(x,y)
Pi
Height-map GPU ray casting
• Silhouette, self-occlusion and self-shadow
• Balance between steps
66
[Policarpo and Oliveira 2005]
70
85
Profile
Top view
view
Balance:
Balance:more
morequality
speed
55
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
Conversion overview
Mesh Partioning
mesh
Bounding-box
Maps extraction
Partioning
x, y definition
(PCA analysis)
color,normal,height
maps extraction
Overlapping
bbox domain in 3D
maps dilation
z definition
(normal median)
Verify
folding
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]
Method Domain
filling (%)
PGP
77.44%
VSA
PGP [Ray et al. 05]
53.75%
Initial Folding
Charts Charts
403
62
397
6
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
Geometry Texture Results
(rendering quality)
mesh
5122
2562
1282
2562 is the best option
mesh
5122
256
128
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)
GeForce 8800
• 2562 GeoTex is faster than mesh for
screen-size smaller than 800x600
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
Video
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?