Towards RealTime Texture Synthesis With the Jump Map

  • Slides: 27
Download presentation
Towards Real-Time Texture Synthesis With the Jump Map Steve Zelinka Michael Garland University of

Towards Real-Time Texture Synthesis With the Jump Map Steve Zelinka Michael Garland University of Illinois at Urbana-Champaign Thirteenth Eurographics Workshop on Rendering (2002)

Texture Synthesis

Texture Synthesis

Neighbourhood-based • Compare local causal neighbourhoods Efros and Leung (ICCV ’ 99) Wei and

Neighbourhood-based • Compare local causal neighbourhoods Efros and Leung (ICCV ’ 99) Wei and Levoy (SIGGRAPH 2000) Ashikhmin (I 3 D 2001) Input Output

Fast Texture Synthesis • Goal: Interactivity • Want synthesis that is: • Fast •

Fast Texture Synthesis • Goal: Interactivity • Want synthesis that is: • Fast • Simple • High quality

Patch-based Methods • Copy patches of pixels rather than single pixels

Patch-based Methods • Copy patches of pixels rather than single pixels

Patch-based Methods • Copy patches of pixels rather than single pixels • Chaos Mosaic,

Patch-based Methods • Copy patches of pixels rather than single pixels • Chaos Mosaic, Xu et al, 1997

Patch-based Methods • Copy patches of pixels rather than single pixels • Chaos Mosaic,

Patch-based Methods • Copy patches of pixels rather than single pixels • Chaos Mosaic, Xu et al, 1997 • Patch-Based Sampling, Liang et al, 2002

Patch-based Methods • Copy patches of pixels rather than single pixels • Chaos Mosaic,

Patch-based Methods • Copy patches of pixels rather than single pixels • Chaos Mosaic, Xu et al, 1997 • Patch-Based Sampling, Liang et al, 2002 • Image Quilting, Efros and Williams, 2001

Our Inspiration • Video Textures • . . Schodl et al, SIGGRAPH 2000 •

Our Inspiration • Video Textures • . . Schodl et al, SIGGRAPH 2000 • Given a sample video, generate endless video without looping • Generate links between similar frames • Play video, randomly following links

Our Approach • Divide task into two phases: • Analysis • Once per input

Our Approach • Divide task into two phases: • Analysis • Once per input texture (need not be fast) • Generates jump map • Synthesis • Uses jump map • Fast enough for interactive applications

What is a Jump Map? • Same size as input

What is a Jump Map? • Same size as input

What is a Jump Map? • Same size as input • Set of jumps

What is a Jump Map? • Same size as input • Set of jumps per pixel

What is a Jump Map? • Same size as input • Set of jumps

What is a Jump Map? • Same size as input • Set of jumps per pixel • Jumps are weighted according to similarity 0. 4 0. 2 • Need not sum to 1 0. 3

Synthesis with Jump Maps Input Output

Synthesis with Jump Maps Input Output

Synthesis With Jump Maps Input Output

Synthesis With Jump Maps Input Output

Synthesis Order • Synthesis order influences patch shapes • Not likely to extend in

Synthesis Order • Synthesis order influences patch shapes • Not likely to extend in directions where there aren’t alreadysynthesized neighbours

Synthesis Orders • Serpentine • Reverse direction at end of scan-line • Better than

Synthesis Orders • Serpentine • Reverse direction at end of scan-line • Better than scan-line, just as fast • Hilbert curve • Maximizes locality • Much higher quality • Adds some overhead

Synthesis Issues • Artifacts may occur if a patch hits an input image boundary

Synthesis Issues • Artifacts may occur if a patch hits an input image boundary • Modify probability of taking a jump • Increase for jumps from input boundary • Decrease for jumps to input boundary • Blend patch boundaries

Texture Analysis • Need best matches for each input pixel • Pose as high-dimensional

Texture Analysis • Need best matches for each input pixel • Pose as high-dimensional ANN problem PCA … … Input Neighbourhood Vectors ANN Vectors

Multi-resolution Analysis • Use image pyramid and multi-resolution neighbourhood vectors • Smaller neighbourhood required

Multi-resolution Analysis • Use image pyramid and multi-resolution neighbourhood vectors • Smaller neighbourhood required • Improves PCA reduction

Jump Map Diversity • Undesirable repitition may occur if jumps cluster spatially • L

Jump Map Diversity • Undesirable repitition may occur if jumps cluster spatially • L 2 norm is particularly susceptible

Poisson Disc Sampling 1 6 2 4 3 5 • Find extra matches •

Poisson Disc Sampling 1 6 2 4 3 5 • Find extra matches • Iteratively accept matches satisfying Poisson disc criterion • Include a Poisson disc at the source

Analysis Summary • Need best matches for each input pixel • Use multi-resolution neighbourhoods

Analysis Summary • Need best matches for each input pixel • Use multi-resolution neighbourhoods • Pose as high-dimensional ANN problem • Reduce dimension with PCA • Filter matches with Poisson discs • Normalize similarity values across the jump map

Results • Current implementation: 2. 1 million pixels/second scan-line 0. 8 million pixels/second Hilbert

Results • Current implementation: 2. 1 million pixels/second scan-line 0. 8 million pixels/second Hilbert • Good quality on stochastic textures • Not so good on structured textures • TBD: demo

Future Work • Analysis phase: • Use perceptual metrics • Clustering instead of ANN

Future Work • Analysis phase: • Use perceptual metrics • Clustering instead of ANN • Synthesis phase • Multi-resolution synthesis • Output control mechanisms

Future Work • Generalization to patches • Reduce storage used • Sample size required?

Future Work • Generalization to patches • Reduce storage used • Sample size required?

Contact Information Steve Zelinka zelinka@uiuc. edu Michael Garland garland@uiuc. edu http: //graphics. uiuc. edu/~zelinka/jumpmaps

Contact Information Steve Zelinka zelinka@uiuc. edu Michael Garland garland@uiuc. edu http: //graphics. uiuc. edu/~zelinka/jumpmaps