Effects Techniques Used in Uncharted 3

  - 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

- 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)
- 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


- 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

  - avoid multiple  projected particle


Popular posts from this blog


Drawing textured cube with Vulkan on Android

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