Highly Scalable Character Rendering - PowerPoint PPT Presentation

1 / 22
About This Presentation
Title:

Highly Scalable Character Rendering

Description:

No editing of index or vertex buffers. Zero instance memory cost ... Hacks look pretty good for far less cost. Questions... www.muckyfoot.com. TomF_at_muckyfoot.com ... – PowerPoint PPT presentation

Number of Views:63
Avg rating:3.0/5.0
Slides: 23
Provided by: mikemar
Category:

less

Transcript and Presenter's Notes

Title: Highly Scalable Character Rendering


1
Highly Scalable Character Rendering
Tom ForsythGraphics coderMuckyfoot Productions
Ltd
TomF_at_muckyfoot.com
2
The Problem
  • Crowd scenes
  • Close-up faces
  • Detailed scenery
  • Consistent level of detail for world
  • Clutter
  • Lots of incidental stuff
  • Smooth transitions

3
Detailed people worlds
  • High poly count
  • Highly animated - lots of bones
  • Multiple materials textures
  • Lots of rendering passes
  • VS PS effects everywhere

4
Crowd scenes clutter
  • Low poly count per object
  • Few bones
  • Single material
  • Single rendering pass
  • Maintains good batching
  • Allows sort-by-object-type
  • But not necessarily simple shaders

5
Methods
  • Tessellation displacement
  • VIPM
  • But VIPM cant do everything
  • Displacement vertices
  • Update of Meltdown 2000 talk
  • Progressive bones
  • Scalable shaders
  • Lose layers effects gradually
  • Friendly to older hardware

6
Tessellation displacement
  • Author-time phase
  • N-patches with creases
  • Or whatever your artists want
  • Then displace by bumpmap
  • Artist preview tools very important
  • Consistent detail for whole world
  • Reduces artist load e.g. vehicle wheels
  • Copes with obsolescence disasters

7
VIPM
  • Using sliding window method
  • Very low LoD change cost
  • No editing of index or vertex buffers
  • Zero instance memory cost
  • No editing means its all shared
  • Some global memory cost
  • Most stored in memory-mapped files
  • Most used for high detail objects
  • See Games Programming Gems 2

8
Displacement Vertices
  • Base mesh defined
  • Certain (low) level of VIPM mesh
  • Base mesh animated lit fully
  • Rest of vertices interpolated
  • 3 base vertex indices
  • I, J, displacement
  • Norm N1 I(N2-N1) J(N3-N1)
  • Pos P1 I(P2-P1) J(P3-P1) dispNorm

9
Displacement Vertices (2)
  • Reduced vertex bandwidth
  • 8 bytes per vertex
  • Only base mesh needs processing
  • Usually 100 verts
  • Number changes with LoD level
  • Loaded into VS constant space
  • Can require mesh partitioning
  • Dot3, BDRF, etc processing done here

10
Displacement Vertices (3)
  • Displacements from hi-rez mesh
  • Use U,V coords to find I,J values
  • Get closest disp value possible
  • Anneal one of I,J,disp for a few goes
  • Easy linear equations
  • Usually converges very quickly
  • Changing I,J changes U,V
  • Usually doesnt matter
  • Artists post-warp textures where it does

11
Progressive Bones
  • Extremely detailed bone model
  • Collapse bones together
  • Child-parent (e.g. foot - leg)
  • Child-sibling (e.g. finger - finger)
  • Collapses according to LoD
  • Same LoD value as used for VIPM
  • Uses sliding window levels
  • Each animation reduces further
  • e.g. different sorts of wave

12
Progressive Bones (2)
  • Bones stored in collapse order
  • Remap from vertex bones-real bones
  • Animations further modify remap list
  • Can collapse one bone to a lesser bone
  • Anim blending causes conflicts
  • Do each remap in pre-blend copy
  • Do neither when rendering mesh
  • Rare - only happens in transitions
  • Area-specific anims work fine

13
Material Effects
  • Vertex calcs done on base mesh
  • Usually by CPU
  • Use software VS processing for easy SIMD
  • Linearly interpolated for non-base verts
  • Hardware VS could do some calcs
  • More per-vertex data - bandwidth cost
  • If VS not already saturated, raise LoD!
  • Multiple materials at high LoD
  • Transition to single material at low LoD
  • Transitions at VIPM level change

14
Material Effects (2)
  • Dot 3 bumpmapping
  • With VIPM, better lighting than vertex
  • Do for first n lights - rest are vertex
  • n based on LoD of course
  • Do specular properly
  • Power done by dependent texture lookup
  • Or can cheat
  • Use envmap specular trick
  • Modulate by bumpmap Z
  • Looks fine very cheap
  • Works on more hardware

15
Material Effects (3)
  • Emboss bumpmapping
  • Lower texture bandwidth than Dot3
  • Vertex calcs almost identical to Dot3
  • Works on old hardware
  • Better than no bumpmapping
  • Similar specular/envmap cheat
  • EMBM
  • Another good cheat
  • Better specular than emboss

16
Material Effects (4)
  • Parallax texturing
  • Read diffuse map twice, once with shifted UV
    coords
  • Same UV calcs as emboss bumpmap
  • Uses view vector instead of light vector
  • Blend by heightfield in alpha channel
  • Same data as emboss bumpmap!
  • Vertex displacement modulates blend
  • Fake parallax - real parallax with VIPM
  • Cheap version of fur

17
Material Effects (5)
  • Emissive map
  • Special effects (equipment, power ups)
  • Fade with LoD
  • Component still retained in diffuse map
  • Glossmap
  • Env map or RTT cube-map
  • Modulate by alpha channel of diffuse
  • Fade with LoD
  • Rise ambient or specular to compensate

18
Material Effects (6)
  • Self-shadowing bumpmaps
  • Peter-Pike Sloans method
  • Multiple textures - more accurate
  • My method
  • Single 3D texture - quicker
  • Less hardware support
  • Both need multiple passes
  • Both use texkill / alpha-test / stencil
  • But shadows only significant up close
  • Both still to be published

19
Material Effects (7)
  • ID-based Shadowmaps
  • Variable number of ID sections
  • Each segment shadows others
  • Based on same LoD value yet again
  • VIPM-style list of IDs
  • Do merges, etc as for VIPM
  • Remember different LoD often wanted when
    rendering shadowmap
  • A bit hard to smoothly change number
  • Cant really fade the shadow in or anything

20
Summary
  • Scalability is king
  • Copes with changing platform
  • Copes with widely varying scene types
  • Maximum available detail at all times
  • Simple artist tools
  • Full automation not required or wanted
  • Use what works
  • Perfect algorithms are expensive
  • Hacks look pretty good for far less cost

21
Questions...
  • www.muckyfoot.com
  • TomF_at_muckyfoot.com

22
Main References
  • Charles Bloom (www.cbloom.com)
  • Excellent discussion of VIPM methods
  • Peter-Pike Sloan
  • Self-shadowing bumpmapping
  • More details on website
  • www.muckyfoot.com - downloads section
Write a Comment
User Comments (0)
About PowerShow.com