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

Comments

Popular posts from this blog

Drawing textured cube with Vulkan on Android

glTF loader for Android Vulkan

C++ unit testing & CI integration in GitHub (I/2)