A Crash Course on Texturing

39
A Crash Course on Texturing Li-Yi Wei 2005 at Tsinghua University, Beijing

description

A Crash Course on Texturing. Li-Yi Wei 2005 at Tsinghua University, Beijing. What is texturing. Overview of texturing. Texture generation You need to get the texture first Texture map You need to figure out how to wrap the texture Texture sampling You need to avoid artifacts - PowerPoint PPT Presentation

Transcript of A Crash Course on Texturing

A Crash Course on Texturing

Li-Yi Wei

2005

at Tsinghua University, Beijing

What is texturing

Overview of texturing

Texture generationYou need to get the texture first

Texture mapYou need to figure out how to wrap the texture

Texture samplingYou need to avoid artifacts

GPU texturing issueYou need to do this fast

Texture generation

Draw by handОflexible

О easy to control

Хrequires artistic skills

Хmostly looks artificial

Texture generation

PhotographyОeasy to deploy

Оrealistic image

Хcurvature problem – small patch

Хlighting/shadowing/distortion problem

Texture generation

Texture synthesisОflexible

Оeasy to deploy

Оgeneral

Оarbitrarily large result

Хdifficult to design a good algorithm!

Texture synthesis

Procedural synthesis

Example-based synthesis

Procedural synthesis

Synthesize texture by procedural codeОcompact

Оfull control

Оno resolution limit

Хnot easy to author

Хlimited category

Procedural synthesis examples

Perlin noise

Perlin noise examples

Example-based synthesis

Synthesis from exampleОgeneral

Оeasy to use

Хlimited resolution

Хneed good algorithm

Example-based synthesis

Huge literature

I will only talk about recent workPixel-based synthesis

Patch-based synthesis

Optimization

Pixel-based synthesis

Synthesize pixels based on neighborhood[Efros & Leung 1999] [Wei & Levoy 2000]

Pixel-based synthesis examples

Random Oriented

Regular Semi-regular

Pixel-based synthesis failures

Patch-based synthesis

[Liang et al 2001] [Efros & Freeman 2001]

Patch-based synthesis examples

Comparison

input pixel-based patch-based

Texture mapping

How to map a 2D texture onto a 3D surface?Minimal distortion

No discontinuity

It is not easy! Try to wrap a paper around a ball

Texture mapping methodology

Huge literature, I will only coverVolume texture

Surface synthesis

Texture atlas

Base-domain parameterization

Volume texture

Surround the object with 3D volumeОno distortion nor discontinuity

Хmainly for isotropic textures

Хlarge storage

ХGPU unfriendly

Оnatural for procedural synthesis

Surface synthesis

Extend 2D synthesis to 3D surfaceEither pixel or patch based

Оminimal distortion, no discontinuity

Оanisotropic patterns

Хonly applies to one object/texture combination

Texture atlas

Divide the surface into planar patchesОpopular approach

ОGPU friendly

Хseam and distortion

Base-domain parameterization

MAPS [Lee et al 1998]Parameterize based on coarse mesh

Оless distortion/discontinuity than atlas

Хless straightforward for GPU

Base-domain parameterization

Poly-cube maps [2004]Use multiple cubemaps

Оminimal distortion, no discontinuity

Оcan be done on GPU

Texture sampling

Aliasing

Anti-aliasing

Aliasing,1D case

Aliasing

No aliasing

Aliasing, 2D case

Aliasing, 2D case

Isotropic versus Anisotropic filtering

isotropic

anisotropic

Anisotropic filtering implementation

Ripmap Multiple probes

Texturing on GPU

Model geometry as textureBump map, displacement map, VDM

Texture caching and compression

VDM

View-dependent displacement map [Wang et al 2004]

VDM result

bump horizon displacement VDM

Sphere marching

GPU Gems II chapter 8

Texture compression

DXTО simple and fast

Хlimited compression ratio (8:1)

Tile-based texturing on GPU

[Wei 2004]Оbig compression

Хlimited to homogeneous pattern

Хcan look repetitive

Conclusion

Look at the course paper for more detailsReferences

Exercises

Potential future work