Using textures to simulate fur Jeff Cousens CS 495 Advanced Computer Graphics January 31, 2002.

21
Using textures to Using textures to simulate fur 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

FurFur

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

Interactive HairInteractive Hair

Real-time control of…– Hair color– Hair length– Hair direction

ResultsResults

5000 faces7500 edges252 patches14 FPS

ResultsResults

5000 faces7547 edges306 patches12 FPS

ResultsResults

Demo

Future DirectionsFuture Directions

One model, multiple hair systemsHair featuresShell multitexturingProgrammable pixel shadersHair dynamics

Questions?Questions?