250 likes | 405 Views
Real-time Rendering of Dynamic Vegetation. Alexander Kusternig Vienna University Of Technology. Overview. Physically based lighting Wind Animation Convincing pictures at high frame rates. Physically based lighting. The difficulties of leaf rendering. Geometric complexity
E N D
Real-time Rendering of Dynamic Vegetation Alexander Kusternig Vienna University Of Technology
Overview • Physically based lighting • Wind Animation • Convincing pictures at high frame rates Alexander Kusternig
The difficulties of leaf rendering • Geometric complexity • Translucency and indirect lighting • Detailed microstructure
Leaf Rendering State of the Art • Much work done on LODs • Leaves often simplified as oriented billboards • PRT techniques • Impressive results • Create huge data sets • Static geometry Alexander Kusternig
Our Method [1] • Photographing leaves • Diffuse illumination • Translucency color • 3D scanning • Actual leaf geometry
Our Method [2] • 4 Textures per leaf side: Diffuse Color Normal HL2 Map Translucency
Our Method [3] • HL2 texture maps • PRT technique • To calculate translucency • The “Half Life 2” basis • Works in tangent space • Local per leaf • No costly transformation • Only 3 coefficients
Our Method [4] • Direct Illumination: • Cook-Torrance Specular Model • Normal Mapping • Shadow Mapping • Indirect Illumination: • Pre-baked Ambient Occlusion • Per vertex
Animation State of the Art [1] • Bone animation • Procedural generation • Physical models • Pre-baking key frames and interpolating • Mass spring models Alexander Kusternig
Animation State of the Art [2] Fastest and most flexible implementations currently used by games • Per Vertex displacement • Weights hand-painted • Many limitations exist: • Not suitable for strong wind • Only possible for trees with 1 long straight stem
Our Method [1] • Take best from both worlds • Physically based branch bending • Fast per vertex animation • Animation completely on the GPU • Animation data baked into vertex streams • Per-branch data baked into textures • Motion data from noise textures Alexander Kusternig
Our Method [2] • Computation of a branching hierarchy • Suitable for all plants • Branches calculated automatically from model • Weights propagated through hierarchy • Up to 4 levels
Our Method [3] • User-friendly! • Use model data from standard tree generation package (Nat FX, XFrog...) • Tweakable by adjusting a few parameters
Our Method [4] • Advantages: • Completely handled by GPU • Scales linearly with number of vertices • Non-linear bending of branches • Every leaf is animated individually
Implementation [1] State of the art rendering pipeline: • DX10 • HDR pipeline • Tonemapper tuned for post-processing • Real-time illumination changes • Preetham Skylight model • Shadow mapping • Light shafts Alexander Kusternig
Implementation [2] Performance: • ~70000 Triangles for branches • ~12000 Leaves • >300 MB of static textures • 80-100 FPS on Geforce 8800 GTX Alexander Kusternig
Future Work • Sophisticated level of detail rendering • Grass rendering • Tree generation Alexander Kusternig
Thanks for your attention Alexander Kusternig
Real-time Rendering of Dynamic Vegetation Alexander Kusternig Vienna University Of Technology