390 likes | 405 Views
This crash course delves into texturing methods from hand-drawn to synthesis, mapping, and sampling, emphasizing GPU issues and advancements like texture caching, compression, and more.
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