400 likes | 524 Views
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
E N D
A Crash Course on Texturing Li-Yi Wei 2005 at Tsinghua University, Beijing
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 • GPU texturing issue • You 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
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 work • Pixel-based synthesis • Patch-based synthesis • Optimization
Pixel-based synthesis • Synthesize pixels based on neighborhood • [Efros & Leung 1999] [Wei & Levoy 2000]
Pixel-based synthesis examples Oriented Random Regular Semi-regular
Patch-based synthesis • [Liang et al 2001] [Efros & Freeman 2001]
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 cover • Volume 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 surface • Either 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
Isotropic versus Anisotropic filtering isotropic anisotropic
Ripmap Multiple probes Anisotropic filtering implementation
Texturing on GPU • Model geometry as texture • Bump 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 details • References • Exercises • Potential future work