300 likes | 455 Views
Real-Time Fur on Arbitrary Surfaces. Microsoft Research Princeton University Princeton University Microsoft Research. Jed Lengyel Emil Praun Adam Finkelstein Hugues Hoppe. Real-Time CG Needs Fuzzy Objects. Name your favorite things… almost all of them are fuzzy. Motivation.
E N D
Real-Time Furon Arbitrary Surfaces Microsoft Research Princeton University Princeton University Microsoft Research Jed Lengyel Emil Praun Adam Finkelstein Hugues Hoppe
Real-Time CG Needs Fuzzy Objects • Name your favorite things… almost all of them are fuzzy.
Previous work on fur • Particle systems [Reeves ’83] • Volume textures [Kajiya & Kay ’86] • Special surface shader [Goldman ’97] • Geometry [Van Gelder & Wilhelms ’97] • Volume textures using CG Hardware [Meyer and Neyret ‘98] [Lengyel ’00]
Geometric Models • Cones too slow on current hardware • Lines interactive for sparse fur • Poor filtering [Van Gelder, Wilhelms ’97]
Previous work on fur • Volume textures using CG hardware [Meyer and Neyret ‘98] • Shell textures [Lengyel ’00]
Shell textures [Lengyel ’00]
Generating the Textures [Lengyel ’00] • Geometric model • – Seed surface with “curl” starting points. –Grow as particle system.
Generating the Textures [Lengyel ’00] –Interpolate to generate more seed points. – Ignore hair-to-hair collision.
Generating the Textures [Lengyel ’00] 2. Sample volumeKeep: – color –opacity – (normal)
Generating the Textures [Lengyel ’00] Wide range of fur possible with different seed colors and curl parameters
lappedvolumetextures Problems with shell textures (1) Surface parametrization (given arbitrary surface)? (2) Texture memory usage (several shells,over entire surface,at hair resolution!)
fin textures Problems with shell textures (3) Poor silhouettes (shells break apart at oblique angles)
Review of Lapped Textures texture patch surface
Key Idea: Patch Pasting texture patch “lapped textures” surface
256 x 256texture (282 times) 15,000 faces Stone Bunny Result 25 frames per sec!
Lapped volume textures • Simple idea: each shell is a lapped texture. opaque skin transparent shells composite
Issues • Rendering order • innermost outermost shell • Directional texture vs. isotropic texture • Texture alpha • Lapped textures: splotch outline • Volume is semi-transparent alpha = splotch outline × volume alpha
edge1 edge2 • Single fin texture • Interval region for each edge. Fin Texture
Fin rendering • Rendering order: skin – shells – fins • shells, fins – no Z buffer write! • Fade based onviewing angle
Interactive Controls • Hair color • Hair length • Hair direction (combing)