Using textures to simulate fur Jeff Cousens CS 495 Advanced Computer Graphics January 31, 2002.
-
date post
21-Dec-2015 -
Category
Documents
-
view
222 -
download
0
Transcript of Using textures to simulate fur Jeff Cousens CS 495 Advanced Computer Graphics January 31, 2002.
Using textures to simulate furUsing textures to simulate fur
Jeff CousensCS 495 Advanced Computer Graphics
January 31, 2002
Real-Time Fur over Arbitrary SurfacesReal-Time Fur over Arbitrary Surfaces
Jerome Lengyel (MSR), Emil Praun (Princeton), Adam Finkelstein (Princeton) and Hugues Hoppe (MSR)
I3D 2001 – Bi-annual Symposium on Interactive 3D Graphics
Combines several existing texture techniques to render interactive fur
BasisBasis
Particle Systems– Reeves in 1983 to simulate fuzzy objects
(smoke, clouds, fire – not fur)Volume Textures (texels)
– Kaijya and Kay in 1989 to address non-interactive fur
BasisBasis
Lapped Textures– Praun, Finkelstein and Hoppe in 2000 to
optimize texturingShells
– Lengyel in 2000 to enhance interactive fur
Limitations of Previous MethodsLimitations of Previous Methods
Most are computationally intensiveInteractive methods are limited
– Van Gelder and Wilhelms 1997 rendered a limited number of polylines
– Lengyel 2000 requires global parameterization and lots of memory
Silhouettes
Addressing LimitationsAddressing Limitations
Shells require parameterization and lots of memory– Lapped textures
Silhouettes– Textured fins
Geometry PreprocessingGeometry Preprocessing
Establish global direction fieldCover model with lapped textures
– Textures are matched to edges – no overlaps– Seams get lost in textures
Texture PreprocessingTexture Preprocessing
Shell textures– Texture patches to be lapped per geometry
preprocessingFin textures
– Define a single fin to be used globally
RuntimeRuntime
Surface rendering– “Skin” – opaque
Fin rendering– Silhouette – only on edges
Shell rendering– Concentric shells surrounding the skin – semi-
opaque
LightingLighting
Banks/Kajiya-Kay model– HairLighting(u,v) =
Ka+Kd(1-u2)Pd/2+Ks(1-v2)Ps/2
– u = T · L, v = T · HT = hair direction per vertex (pre-computed)L = light directionH = half-vector between eye and light
– Performed using a lookup table– Banks self-shadowing approximation
Other Rendering ConcernsOther Rendering Concerns
VisibilityLevel-of-detailOverlapped parameterization
Future DirectionsFuture Directions
One model, multiple hair systemsHair featuresShell multitexturingProgrammable pixel shadersHair dynamics