Effects Techniques Used in Uncharted 3
Particles:
- scheme based macro language
- Ubershader
- Processing split between PPU and SPU
New system
- more data driven
- improve iteration time
- better dynamics
- more flexible shader
- 100% asynchronous SPU
Data compiler
- most runtime data
- scheme based
Noodler
- Rewritten shaders still not flexible
- Sony ATG demos editor
Caustic shader
Nooder internals
- vertex frontend - define input attribute
- interface node - outputs fed into might code
- each node is a cg function
-automatic split into vs & ps
- auto space conversion
Noodler used for all FX shaders
Spawning Effects
- spawners in character ( level ed)
-script
- animation effect files (EFF)
-water spawners
- directly in code
Particle interface
Runtime Design
- GPU cycle budget for particle are limited
- SPUs provide for complex computation
Particle Frame
- preupdate: collision
- update
- cull
- build geometry
- sort
Preupdate - collision is expensive.
Update: apply drag, volume axis,radial
- bake inmayrds parameter
VM with 16 verteor register
non braching
cull particle
Geometry
Sorting
- spawn order, distance order
Sorting for each emitter set in particle
- artist can set order list
Build command list
- FSX, render state.
Job chain
want to all run on spy
Sand Footprints
- deform the surface
- animate the deformation
snow prints
- screen space projecioyn
- static
- tailer to the wall
Projevted particle
"render box
Transform depth to world
-
Transform world in particles
Transform world to particle
Stencil
- avoid multiple projected particle
- scheme based macro language
- Ubershader
- Processing split between PPU and SPU
New system
- more data driven
- improve iteration time
- better dynamics
- more flexible shader
- 100% asynchronous SPU
Data compiler
- most runtime data
- scheme based
Noodler
- Rewritten shaders still not flexible
- Sony ATG demos editor
Caustic shader
Nooder internals
- vertex frontend - define input attribute
- interface node - outputs fed into might code
- each node is a cg function
-automatic split into vs & ps
- auto space conversion
Noodler used for all FX shaders
Spawning Effects
- spawners in character ( level ed)
-script
- animation effect files (EFF)
-water spawners
- directly in code
Particle interface
Runtime Design
- GPU cycle budget for particle are limited
- SPUs provide for complex computation
Particle Frame
- preupdate: collision
- update
- cull
- build geometry
- sort
Preupdate - collision is expensive.
Update: apply drag, volume axis,radial
- bake inmayrds parameter
VM with 16 verteor register
non braching
cull particle
Geometry
Sorting
- spawn order, distance order
Sorting for each emitter set in particle
- artist can set order list
Build command list
- FSX, render state.
Job chain
want to all run on spy
Sand Footprints
- deform the surface
- animate the deformation
snow prints
- screen space projecioyn
- static
- tailer to the wall
Projevted particle
"render box
Transform depth to world
-
Transform world in particles
Transform world to particle
Stencil
- avoid multiple projected particle
Comments
Post a Comment