Geometry Textures Rodrigo de Toledo, ( PhD candidate at LORIA-INRIA) (Researcher at Tecgraf,...

Post on 16-Jan-2016

215 views 0 download

Tags:

Transcript of Geometry Textures Rodrigo de Toledo, ( PhD candidate at LORIA-INRIA) (Researcher at Tecgraf,...

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 algorithmsgrouped into scale levels

Scene-scale

Macroscale Microscale

Mesoscale

• z-buffer• ray tracing• spatial subdivision• culling

• object representation• shading• LOD• impostors

• (between macro and micro)• textures• mesostructures

• complex lighting models• photon mapping• BSSRDF

Mesoscale

• Mesostructure representation

– Color map

– Normal map (bump)

– Height map

– Volumetric mesostructure

– Shading function (BRDF)

Mesostructure visualization

• Expected rendering effects– – – – –

MesoscaleMesoscalemethods

Summary• Motivation

• Scale level classification

• Mesoscale

• GPU ray-casting of height maps

• Conversion

• Visualizing

• Results

Height-map GPU ray casting

hm(x,y)

missing a sample if is big

ray path sampled N timesP0

P1

P2

Pi

Pi-1

v

Linear search Binary search

Pi

Pi-1

P'i

second searching step

BinRayCasting(){ for 1..M { Δ Δ / 2 Δ z(P) ? -Δ : Δ P P + Δ’ }}

Height-map GPU ray casting• Silhouette, self-occlusion and self-shadow

6666 85857070 5555

Top viewTop viewBalance: more Balance: more

speedspeed

Profile viewProfile viewBalance: more Balance: more qualityquality

[Policarpo and Oliveira 2005]

• Balance between steps

It can be used to mesoscale visualization

But, we propose to use it for macroscale visualization:Geometry Textures

Height-map GPU ray casting

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 overviewMesh Partioning Bounding-box Maps extraction

Partioning

Overlapping

Verifyfolding

z definition(normal median)

x, y definition(PCA analysis)

bbox domain in 3D

color,normal,heightmaps extraction

maps dilation

Geometry Texture set

mesh

Partitioning

• The most complex step in conversion

• Each part should not present any folding (no overhang)

• Domain as square as possible

[Steiner et al. 04]

Partitioning strategies

PGP

VSAMethod Domain

filling (%)InitialCharts

FoldingCharts

PGP 77.44% 403 62

VSA 53.75% 397 6[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

mesh51222562

Geometry Texture Results(rendering quality)

mesh 5122

2562 1282

2562 is the best option 1282

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

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?