Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions...

57
Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans & Anton Kirczenow Media Molecule Advances in Real-Time Rendering in 3D Graphics and Games

Transcript of Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions...

Page 1: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

Regressions in RT Rendering:

LittleBigPlanet Post Mortem

Alex Evans & Anton Kirczenow

Media MoleculeAdvances in Real-Time Rendering in 3D Graphics and Games

Page 2: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

Constraints & Mash-upsConstraints & Mash-ups

Page 3: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

LBP’s ConstraintsLBP’s Constraints

(Back in 2006)(Back in 2006)

– Blank slateBlank slate• no code, no tech, no existing franchiseno code, no tech, no existing franchise

– New, Unknown & Strange platformNew, Unknown & Strange platform• but a single platform!but a single platform!

– User generated content was to be keyUser generated content was to be key• no pre-computationno pre-computation

• ‘‘worst’ case is the typical case: untrained ‘artists’ aka usersworst’ case is the typical case: untrained ‘artists’ aka users

– Distinctive art style based on ‘miniature world’Distinctive art style based on ‘miniature world’• style binding content: allow LBP’s style to shine through any style binding content: allow LBP’s style to shine through any

UGCUGC

– My technical prejudicesMy technical prejudices

– 1.5 programmers & 36 months1.5 programmers & 36 months

Page 4: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

Prejudices to force decisionsPrejudices to force decisions

We had little time to mess about, so the overriding goal We had little time to mess about, so the overriding goal was always: whatever is easiest to code & plays to our was always: whatever is easiest to code & plays to our

strengthsstrengths

– no middlewareno middleware• (home-made turtles all the way down please)(home-made turtles all the way down please)

– one code path for all rendering of all objectsone code path for all rendering of all objects• eg same path for solid, transparent, fx...eg same path for solid, transparent, fx...

– all lighting per-pixelall lighting per-pixel• no per-vertex or (shudder) per-object ‘optimizations’no per-vertex or (shudder) per-object ‘optimizations’

– playing to strength of team: I hate vertices, and I don’t have playing to strength of team: I hate vertices, and I don’t have time to write those secondary paths anywaytime to write those secondary paths anyway

– minimum number of ‘knobs’ for the artists - but not too minimum number of ‘knobs’ for the artists - but not too fewfew• relatively non-technical art team, busy with other tasksrelatively non-technical art team, busy with other tasks

Page 5: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

Prejudices into FeaturesPrejudices into Features

– lots of dynamic geometry & clothlots of dynamic geometry & cloth• (we can’t pre-compute anything anyway...)(we can’t pre-compute anything anyway...)

– motion blur, DOF, flexible color correctionmotion blur, DOF, flexible color correction• used in unusual contextused in unusual context

– unbounded numbers of dynamic lightsunbounded numbers of dynamic lights

– emphasis on many layers of texture to achieve surface emphasis on many layers of texture to achieve surface looklook

– refractive glassrefractive glass

– correct DOF / motion-blur behind transparent objectscorrect DOF / motion-blur behind transparent objects

– ability to arbitrarily cover the entire world in 'stickers' ability to arbitrarily cover the entire world in 'stickers' with no loss in frame-ratewith no loss in frame-rate

– fluid & cloth to drive all FXfluid & cloth to drive all FX• we almost avoided writing a particle system. almost.we almost avoided writing a particle system. almost.

Page 6: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

Unusual vertex pipeUnusual vertex pipe

– Avoid Vertex Shader slowness on RSX by using SPU Avoid Vertex Shader slowness on RSX by using SPU insteadinstead

– Add some sexy features to take advantage of SPU:Add some sexy features to take advantage of SPU:• ClothCloth

• Soft bodiesSoft bodies

• Patch tesselationPatch tesselation

• Point deformersPoint deformers

Page 7: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

Anton shows all

QuickTime™ and a decompressor

are needed to see this picture.

Page 8: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

Vertex pipeline:Vertex pipeline:

RigidRigidSkinningSkinning

RigidRigidSkinningSkinning

VerletVerletIntegrateIntegrateVerletVerlet

IntegrateIntegrateInput vertsInput vertsInput vertsInput verts CollisionCollisionwith worldwith worldCollisionCollision

with worldwith world

XX

FindFindcluster matrixcluster matrix

FindFindcluster matrixcluster matrix

iterateiteratespring/collision spring/collision

constraintsconstraints

iterateiteratespring/collision spring/collision

constraintsconstraints

MorphMorphtargetstargetsMorphMorphtargetstargets

Input bonesInput bonesInput bonesInput bones

XXStitchStitchseamsseamsStitchStitchseamsseams

computecomputeN, TN, T

computecomputeN, TN, T

Page 9: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

Vertex motionVertex motion

– SPU’s job is to create world-space ‘polygon soup’ per SPU’s job is to create world-space ‘polygon soup’ per frameframe• P & N are triple buffered, allowing simple Verlet physicsP & N are triple buffered, allowing simple Verlet physics

– PPnewnew = 2P-drag*(P-P = 2P-drag*(P-Poldold)-P)-Poldold+A+A

– drag is set by collision routinedrag is set by collision routine

– Meshes automatically turned into springs across grids Meshes automatically turned into springs across grids of quads, with artist weighting in vertex colorsof quads, with artist weighting in vertex colors• http://www.gamasutra.com/features/20000327/lander_02.h

tm

– Vertex lerp’ed back to skinned posVertex lerp’ed back to skinned pos• using artist defined weightsusing artist defined weights

Page 10: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

Collision DetectionCollision Detection

– SPU does collision against:SPU does collision against:• extruded 2D convex shapes (world)extruded 2D convex shapes (world)

• swept ellipsoids (character)swept ellipsoids (character)

– vertex transformed into old & new ellipsoid positionvertex transformed into old & new ellipsoid position

› raycast sphere vs ellipse in stationary ‘ellipse space’raycast sphere vs ellipse in stationary ‘ellipse space’

oldoldnewnew

Pold

Pnewtransforminto ellipsespace

Pold

Pnew

raycast

Page 11: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

ClustersClusters

Lovely mesh-less algorithm: least-squares fit a new rigid Lovely mesh-less algorithm: least-squares fit a new rigid matrix to a deformed cloud of verticesmatrix to a deformed cloud of vertices

– remove center of mass - that gives translational remove center of mass - that gives translational componentcomponent• matrix sum of dyadic of (P-COM) x (Pmatrix sum of dyadic of (P-COM) x (Prestrest-COM-COMrestrest))

– multiply by inverse of pre-computed matrix in rest posemultiply by inverse of pre-computed matrix in rest pose

– orthogonalize resulting best-fit matrix to give affine orthogonalize resulting best-fit matrix to give affine transform, and optionally preserve volume by normalizingtransform, and optionally preserve volume by normalizing

– blend with original rigid body matrices to make as blend with original rigid body matrices to make as squishy/rigid as you wantsquishy/rigid as you want

– more detail: Meshless Deformations Based on Shape more detail: Meshless Deformations Based on Shape Matching - Muller et al, SIGGRAPH 05Matching - Muller et al, SIGGRAPH 05

Page 12: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

flexibility of vertex pipelineflexibility of vertex pipeline

we ended up using that pipeline not just for meshes, we ended up using that pipeline not just for meshes, decorations, clothdecorations, cloth

– but also SFX like confetti, dust, embers,...but also SFX like confetti, dust, embers,...

– allowing us to almost entirely avoid an explicit allowing us to almost entirely avoid an explicit ‘particle system’‘particle system’• with one exception: jet-pack smoke was a simple point-with one exception: jet-pack smoke was a simple point-

sprite based backend on the integrated/collided vertices...sprite based backend on the integrated/collided vertices...

– rendered 1/4 screen-res for fill-rate reasonsrendered 1/4 screen-res for fill-rate reasons

– each point sprite has a 2D gradient across it - gives each point sprite has a 2D gradient across it - gives remarkable sense of ‘3d-ness’remarkable sense of ‘3d-ness’

– every pixel samples the sun’s shadowmap to give every pixel samples the sun’s shadowmap to give volumetric shadows in the smokevolumetric shadows in the smoke

Page 13: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

On to pixels: graph based?On to pixels: graph based?

Page 14: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

fixed everything aint so bad?fixed everything aint so bad?

– the graph editor was never used by artiststhe graph editor was never used by artists

– they were happy to composite LOTS of texture layers they were happy to composite LOTS of texture layers at different scalesat different scales

– and left me to hard-code a single ‘uber-shader’ that and left me to hard-code a single ‘uber-shader’ that handled everything else.handled everything else.• that BRDF is entirely ‘cooked up’ based on live shader that BRDF is entirely ‘cooked up’ based on live shader

editing and my eyeballs. approximately:editing and my eyeballs. approximately:

– 2 strong rim-light with color set using artist controlled 2 strong rim-light with color set using artist controlled hemisphere based on (V.N)^2 with bias & scalehemisphere based on (V.N)^2 with bias & scale

› the 2 rim lights are lerp’ed between based on sunlight the 2 rim lights are lerp’ed between based on sunlight shadow shadow

– diffuse a mixture of N.L and (N.L)^2diffuse a mixture of N.L and (N.L)^2

– ambient a simple 2 color hemisphereambient a simple 2 color hemisphere

– specular simply (R.L)^22specular simply (R.L)^22

Page 15: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

shadowingshadowing

one sun light & arbitrary numbers of ‘sprite lights’one sun light & arbitrary numbers of ‘sprite lights’– world has shallow depth, so we got away with very simple world has shallow depth, so we got away with very simple

shadowmappingshadowmapping• Initially TSM eg Initially TSM eg

http://www.comp.nus.edu.sg/~tants/tsm/tsm.pdf

• Finally, just orthogonal single 768x768 shadowmap!Finally, just orthogonal single 768x768 shadowmap!

• very tightly tuned frustum of shadow castersvery tightly tuned frustum of shadow casters

– soft shadows via variance shadow maps + AO contact soft shadows via variance shadow maps + AO contact shadowsshadows• just the vanilla form of VSM: after Donnelly et aljust the vanilla form of VSM: after Donnelly et al

• lots of light leakinglots of light leaking

• used 16FP render targets with two copies of X, X^2 in R/G and used 16FP render targets with two copies of X, X^2 in R/G and B/AB/A

– second copy scaled by 32. recombined in shader -> less boilingsecond copy scaled by 32. recombined in shader -> less boiling

Page 16: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

ambient occlusion for ambient occlusion for contactscontacts

the character’s feet were small & felt floaty...the character’s feet were small & felt floaty...

– so we added an AO ‘light’ that analytically computed so we added an AO ‘light’ that analytically computed the occlusion of the character modeled as 5 spheres the occlusion of the character modeled as 5 spheres (2 feet, 2 legs, 1 groin)(2 feet, 2 legs, 1 groin)

•see Inigo Quilez’ awesome site for derivationsee Inigo Quilez’ awesome site for derivation– http://iquilezles.org/www/articles/sphereao/sphereao.htm

AO=

(N.D) (r2/D.D)

Page 17: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

Spritelights take 1Spritelights take 1

as presented at SIGGRAPH 06, I started by slicing the as presented at SIGGRAPH 06, I started by slicing the view frustum and rendering light volumes directly into view frustum and rendering light volumes directly into

those slices (as a volume texture)those slices (as a volume texture)

– A sort of ‘irradiance volume’ - but with no directional A sort of ‘irradiance volume’ - but with no directional component. (‘0th order SH’)component. (‘0th order SH’)

– Use grad of irradiance in direction of normal to Use grad of irradiance in direction of normal to approximate N.L type lighting.approximate N.L type lighting.

Page 18: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

Sprite Lights Take 1

Page 19: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

Sprite Lights Take 1

QuickTime™ and a decompressor

are needed to see this picture.

Page 20: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

Sprite lights take 2: Defer?Sprite lights take 2: Defer?Lay down a Z/N pre-pass at 2X MSAALay down a Z/N pre-pass at 2X MSAA

...then light as if it were grey plastic (specular -> ...then light as if it were grey plastic (specular -> alpha)alpha)– ...and do sprite lights in the traditional ‘deferred’ way...and do sprite lights in the traditional ‘deferred’ way

• BUT! no G-buffer, no material properties, no MRTs: just Z, N inBUT! no G-buffer, no material properties, no MRTs: just Z, N in

Page 21: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

Sprite lights take 2: Defer?Sprite lights take 2: Defer?

then re-render scene ‘forwards’, sampling ‘L’ into then re-render scene ‘forwards’, sampling ‘L’ into BRDFBRDF

Page 22: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

sprite lights take 2: god rayssprite lights take 2: god rays

now we’re doing sprite lights properly, we might as now we’re doing sprite lights properly, we might as well add some features: god rays!well add some features: god rays!

Page 23: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

god rays implementationgod rays implementation

– completely 2d screenspace effectcompletely 2d screenspace effect

– each light volume is rendered to an off-screen each light volume is rendered to an off-screen surface, one channel per light (in batches of 4)surface, one channel per light (in batches of 4)• pixel shader integrates light scattering along eye ray to pixel shader integrates light scattering along eye ray to

first solid object (z buffer distance)first solid object (z buffer distance)

– 3 pass ‘smear shader’ then 3 pass ‘smear shader’ then smears smears

– dark regions with MIN blendingdark regions with MIN blending• each pass doubles distance of each pass doubles distance of

smearsmear

• similar to masa’s ‘rthdribl’ lens-similar to masa’s ‘rthdribl’ lens-flare streak shadersflare streak shaders

– http://www.daionet.gr.jp/~masa/rthdribl/

Page 24: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

god rays implementationgod rays implementation

– completely 2d screenspace effectcompletely 2d screenspace effect

– each light volume is rendered to an off-screen each light volume is rendered to an off-screen surface, one channel per light (in batches of 4)surface, one channel per light (in batches of 4)• pixel shader integrates light scattering along eye ray to pixel shader integrates light scattering along eye ray to

first solid object (z buffer distance)first solid object (z buffer distance)

– 3 pass ‘smear shader’ then 3 pass ‘smear shader’ then smears smears

– dark regions with MIN blendingdark regions with MIN blendingC = sample(u,v)

for (i=0;i<5;i++)

u=(u-cu)*k+cu; v=(v-cv)*k+cv;

C=min(C, sample(u,v) + i/5.f);

(where k<1 sets smear radius, cu,cv is the screenspace position of the lightsource)

Page 25: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

2 layer transparency2 layer transparency

deferred shading with alpha. what?deferred shading with alpha. what?

Page 26: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

2 Layer transparency2 Layer transparency

Exploiting the fact that we have 2X MSAA hardwareExploiting the fact that we have 2X MSAA hardware

– and we can ‘cast’ the ‘L’ buffer to be 2560x720p non and we can ‘cast’ the ‘L’ buffer to be 2560x720p non MSAAMSAA• deferred lighting done at full 2560x720p resolutiondeferred lighting done at full 2560x720p resolution

• allows us two independent Z values per final pixelallows us two independent Z values per final pixel

– PS3 you have to resolve your 2560x720p into PS3 you have to resolve your 2560x720p into 1280x720 by hand. turn this into a virtue:1280x720 by hand. turn this into a virtue:• trade transparency for MSAA in different regions of the trade transparency for MSAA in different regions of the

screenscreen

• custom resolve shader is quite tricky: uses alpha channel custom resolve shader is quite tricky: uses alpha channel to control blend between the two samples - compositing to control blend between the two samples - compositing either as ‘A over B’ or ‘(A+B)/2’either as ‘A over B’ or ‘(A+B)/2’

Page 27: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

2 layer transparency & DOF 2 layer transparency & DOF &...&...

Page 28: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

2 is not a big number2 is not a big number

leads to odd effects when you get more than 2 layers:leads to odd effects when you get more than 2 layers:

users actively are exploiting this to great effect!users actively are exploiting this to great effect!

Page 29: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

2 layers: Refraction2 layers: Refraction

– Glass shader only WRITES to Glass shader only WRITES to even pixels in X (‘alpha layer’)even pixels in X (‘alpha layer’)

– it only READS from odd pixels in it only READS from odd pixels in X (‘solid layer’), sampling from X (‘solid layer’), sampling from it’s own screenspace pos P it’s own screenspace pos P perturbed by the glass surface perturbed by the glass surface normalnormal• k is the ‘index of refraction’k is the ‘index of refraction’

– P.xy+=k*N.xyP.xy+=k*N.xy

– P.x-=frac(P.x)+0.5; <--- MAGIC!P.x-=frac(P.x)+0.5; <--- MAGIC!

– CCoutout=tex2D(screen,P)=tex2D(screen,P)

• code above relies on using UV’s code above relies on using UV’s measured in pixels, not 0-1measured in pixels, not 0-1

Page 30: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

careful MB/DOF calculationcareful MB/DOF calculation

Motion-blur & DOF were vital to the miniature lookMotion-blur & DOF were vital to the miniature look

– willing to spend lots of GPU cycles on thiswilling to spend lots of GPU cycles on this

– however it still runs at half res:however it still runs at half res:

– PASS 0: downsample 2x in Y, 4x in XPASS 0: downsample 2x in Y, 4x in X• blend 2 layers correctly according to degree to which each blend 2 layers correctly according to degree to which each

sample needs blurring. Alpha channel = coarse z buffersample needs blurring. Alpha channel = coarse z buffer

Page 31: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

careful MB/DOF calculationcareful MB/DOF calculation

– PASS 1 & 2: 7 tap ‘classic’ DOF with variable circle of PASS 1 & 2: 7 tap ‘classic’ DOF with variable circle of confusion, checking alpha channel for z conflictsconfusion, checking alpha channel for z conflicts

• samples distorted along direction of screenspace motionsamples distorted along direction of screenspace motion

– motion blur comes ‘for free’ using same sample points as DOFmotion blur comes ‘for free’ using same sample points as DOF

– Final MSAA Resolve:Final MSAA Resolve:• reads 1/2 res blurred image, and composites it over the full-res screen;reads 1/2 res blurred image, and composites it over the full-res screen;

– however it does this BEFORE blending the two alpha layers, and mixes however it does this BEFORE blending the two alpha layers, and mixes the blurred image into each layer only according to that layer’s need. the blurred image into each layer only according to that layer’s need.

– This conditional blend happens at full res, so no need for bilateral filter et This conditional blend happens at full res, so no need for bilateral filter et alal

stationarypixel

fast moving pixel

Page 32: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

first stab at motion blurfirst stab at motion blur

– we have a screenspace motion vector (x,y) for each we have a screenspace motion vector (x,y) for each pixelpixel

– however, boundaries of objects don’t look nice:however, boundaries of objects don’t look nice:

– Initially, tried to render Initially, tried to render geometry extruded along geometry extruded along direction of motion. however, direction of motion. however, fast rotating objects broke fast rotating objects broke this:this:

Page 33: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

improving motion blurimproving motion blur

how to improve ‘leading’ and ‘trailing’ edges?how to improve ‘leading’ and ‘trailing’ edges?– insight: use 2 frames of info - this frame (1) and old frame (0)insight: use 2 frames of info - this frame (1) and old frame (0)

• blur C1 with V0, and C0 with V1 (twice as many taps) blur C1 with V0, and C0 with V1 (twice as many taps)

– use Z-in-alpha to help composite samples togetheruse Z-in-alpha to help composite samples together

Frame 0 Frame 1

these regions get frame 0 backgroundblurred by frame 1’s velocity

while these regions get fr.1background, with fr.0 velocity

Page 34: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

improving motion blur: improving motion blur: resultsresults

Page 35: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

fluids: how?fluids: how?

Stam stable fluids, 2D water-grid PDE, or SPH?Stam stable fluids, 2D water-grid PDE, or SPH?

– Anton will take them all, thanks very much!Anton will take them all, thanks very much!

– Stam-style stable fluids can be seen all over the place Stam-style stable fluids can be seen all over the place for smoke, fire & dissolve fxfor smoke, fire & dissolve fx

– Water Grid used for ‘sea level’Water Grid used for ‘sea level’

– Rigid body coupling to grid, generates...Rigid body coupling to grid, generates...

– ... splash particles, combining SPH water-volume ... splash particles, combining SPH water-volume preserving forces with existing vertex pipeline (verlet, preserving forces with existing vertex pipeline (verlet, collisions etc)collisions etc)

Page 36: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

water gridwater grid

shallow water simulation - 256x128 on SPUshallow water simulation - 256x128 on SPU

– fixed grid only contains visible play area, and is post-fixed grid only contains visible play area, and is post-perspective distortion to give even tesselationperspective distortion to give even tesselation

• The method is as in Claes Johanson’s MSc thesis, The method is as in Claes Johanson’s MSc thesis, "Real Time Water Rendering: Introducing the "Real Time Water Rendering: Introducing the projected grid concept” but tweakedprojected grid concept” but tweaked

• to keep the grid evenly spaced in X when the camera to keep the grid evenly spaced in X when the camera is very near the surface and looking forward.is very near the surface and looking forward.

– V advects quantities with bicubic filteringV advects quantities with bicubic filtering• linear not good enough - leads to ‘viscous’ looklinear not good enough - leads to ‘viscous’ look

– method is similar to Chapter 11 of ‘Fluid Simulation for method is similar to Chapter 11 of ‘Fluid Simulation for Computer Graphics by Robert Bridson 2008’Computer Graphics by Robert Bridson 2008’

Page 37: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

Water renderingWater rendering

– The water surface normals are generated by bicubic The water surface normals are generated by bicubic filtering a texture of the height field, linear isn’t good filtering a texture of the height field, linear isn’t good enough:enough:

– Refraction is just cheesy resampling of screen buffer Refraction is just cheesy resampling of screen buffer with perturbed UVs by the surface normalwith perturbed UVs by the surface normal• additional z check to ensure refracted sample is actually additional z check to ensure refracted sample is actually

below surface:below surface:

Page 38: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

Water renderingWater rendering

Page 39: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

water grid / rigid body water grid / rigid body couplingcoupling

– For rigid body coupling:For rigid body coupling:• find rigid bodies intersecting the water surface, take their find rigid bodies intersecting the water surface, take their

AABBs and compute the change of "submerged-ness" in the AABBs and compute the change of "submerged-ness" in the water.water.

– This is diffused and added to the water depth to create This is diffused and added to the water depth to create wakes and ripples. wakes and ripples. • The method is as per [Thurey et. al."Real Time Breaking The method is as per [Thurey et. al."Real Time Breaking

Waves for Shallow Water Simulations" 2007] ,Waves for Shallow Water Simulations" 2007] ,

– but with Stam style stable diffusion so it doesn't blow up but with Stam style stable diffusion so it doesn't blow up so much.so much.

– We also add some of the velocities of the immersed We also add some of the velocities of the immersed objects to the water gridobjects to the water grid

Page 40: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

Grid -> SPH: Splashes!Grid -> SPH: Splashes!

– We generate splashes wherever the water height We generate splashes wherever the water height changes rapidlychanges rapidly

– emit particles where these both hold:emit particles where these both hold:• change in water height > thresholdchange in water height > threshold

• gradient(water height) dot water velocity > 0gradient(water height) dot water velocity > 0

Splash particles (and bubbles) also add depth to the Splash particles (and bubbles) also add depth to the water grid when they collide with it to cause secondary water grid when they collide with it to cause secondary

ripples.ripples.• splash particles are in an SPH simulationsplash particles are in an SPH simulation

– as per Muller et. al. "Particle based Fluid Simulation for as per Muller et. al. "Particle based Fluid Simulation for Interactive Applications" Eurographics 2003Interactive Applications" Eurographics 2003

• with a novel collision detection scheme that is more SPU with a novel collision detection scheme that is more SPU friendlyfriendly

• more details in the course notes! more details in the course notes!

Page 41: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

splat based splash renderingsplat based splash rendering

2 pass rendering:2 pass rendering:

– 1st pass sorts coarse quads front-to-back, with 1st pass sorts coarse quads front-to-back, with UNDER compositing of N and alphaUNDER compositing of N and alpha• this ensures isolated particles look sharp, while still this ensures isolated particles look sharp, while still

blending adjacent particles smoothlyblending adjacent particles smoothly

• each particle is elongated along its direction of motioneach particle is elongated along its direction of motion

• particles near the water surface stretch to simulate joiningparticles near the water surface stretch to simulate joining

– 2nd pass outputs color2nd pass outputs color• uses stencil buffer to avoid overdrawuses stencil buffer to avoid overdraw

• uses similar shader as the water surface to provide uses similar shader as the water surface to provide consistencyconsistency

Page 42: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

underwater & caustics!underwater & caustics!

inspired by Pixar’s ‘Finding Nemo’ DVD extras &inspired by Pixar’s ‘Finding Nemo’ DVD extras &

Advanced Animation and Rendering Techniques by Advanced Animation and Rendering Techniques by Alan Watt & Mark Watt, 1992, Ch 10.1Alan Watt & Mark Watt, 1992, Ch 10.1

small area compared to grid = brightlarge area compared to grid = dark

Incoming light on regular grid – intersect refracted intersect refracted grid of sun-rays with grid of sun-rays with fixed ground-plane fixed ground-plane beneath the water beneath the water surfacesurface

Page 43: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

underwater & caustics!underwater & caustics!

inspired by Pixar’s ‘Finding Nemo’ DVD extras &inspired by Pixar’s ‘Finding Nemo’ DVD extras &

Advanced Animation and Rendering Techniques by Advanced Animation and Rendering Techniques by Alan Watt & Mark Watt, 1992, Ch 10.1Alan Watt & Mark Watt, 1992, Ch 10.1

– simply intersect refracted grid of sun-rays with simply intersect refracted grid of sun-rays with fixed ground-plane beneath the water surfacefixed ground-plane beneath the water surface

– on SPU, for each vertex, compute change in area of on SPU, for each vertex, compute change in area of surrounding refracted quads vs un-refracted quadssurrounding refracted quads vs un-refracted quads• output as a gouraud shaded mesh, rendered by GPUoutput as a gouraud shaded mesh, rendered by GPU

• blend as MAX rather than +, to keep dynamic range blend as MAX rather than +, to keep dynamic range downdown

Page 44: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

RefractionRefraction

• a 1024x512 caustic map renders in only 0.6ms!a 1024x512 caustic map renders in only 0.6ms!

Page 45: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

underwaterunderwater

– when rendering main scene, project caustic texture when rendering main scene, project caustic texture through world through world

Page 46: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

stable fluidsstable fluids

– 3 layers of 256x128 2D fluid, used for smoke & 3 layers of 256x128 2D fluid, used for smoke & dissolve FXdissolve FX• borrowing tricks from Mark Harris’ GPU implementation borrowing tricks from Mark Harris’ GPU implementation

(GPU Gems)(GPU Gems)

– GPU re-samples screenspace z & v buffers to initialize GPU re-samples screenspace z & v buffers to initialize boundary conditionsboundary conditions

– fluid only run on 3 world aligned slices, that scroll fluid only run on 3 world aligned slices, that scroll with the camerawith the camera

– GPU copies from the backbuffer into the fluid buffer to GPU copies from the backbuffer into the fluid buffer to cause objects to ‘dissolve’cause objects to ‘dissolve’

– SPU outputs list of point sprites on a grid to avoid SPU outputs list of point sprites on a grid to avoid wasting fill rate where there is no fluidwasting fill rate where there is no fluid

Page 47: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

breathe....breathe....

...and be thankful that we didn’t go through all the ...and be thankful that we didn’t go through all the other fun stuff, like virtual texturing for stickering, or other fun stuff, like virtual texturing for stickering, or

procedural mesh generation on the SPU...procedural mesh generation on the SPU...

Page 48: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

remind me what that was remind me what that was about?about?the key here is that many disparate techniques can be the key here is that many disparate techniques can be

blended to create something blended to create something unique lookingunique looking– it’s valid to treat dev-time as a primary constraintit’s valid to treat dev-time as a primary constraint

– for LBP, we were able to trade accuracy & generality for for LBP, we were able to trade accuracy & generality for ‘good enough’ approximations...‘good enough’ approximations...• the devil joy is in the details!the devil joy is in the details!

– the SPU freed us from worrying about casting every the SPU freed us from worrying about casting every problem as a VS/PS stream processing ‘DX9’ problem as a VS/PS stream processing ‘DX9’ combinationcombination• which ironically unlocked a lot of fun pre-GPU literaturewhich ironically unlocked a lot of fun pre-GPU literature

– avoiding special case code paths kept the complexity avoiding special case code paths kept the complexity down and the code coverage good...down and the code coverage good...• ...making it cheap to re-visit major decisions, like ‘forward’ vs ...making it cheap to re-visit major decisions, like ‘forward’ vs

‘deferred’, and re-implement features several times.‘deferred’, and re-implement features several times.

Page 49: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

conclusionconclusion

in other words,in other words,

have fun mixing up and blending as many ideas as have fun mixing up and blending as many ideas as you think will help you achieve the visual look you’re you think will help you achieve the visual look you’re

afterafter

(or something)(or something)

Page 50: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

thankyou!thankyou!

Page 51: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

Bibliography 1/5Bibliography 1/5

– Akenine-Moller T., Haines, E. & Hoffman, N. (eds) - "Real Akenine-Moller T., Haines, E. & Hoffman, N. (eds) - "Real Time Rendering 3rd Ed." 2008 A. K. Peters (pub) - Time Rendering 3rd Ed." 2008 A. K. Peters (pub) - http://www.realtimerendering.com

– Bridson, R. et. al. - "Curl-Noise for Procedural Fluid Flow" Bridson, R. et. al. - "Curl-Noise for Procedural Fluid Flow" 2007 - in ACM Transactions on Graphics 20072007 - in ACM Transactions on Graphics 2007

– Bridson, R. - "Fluid Simulation for Computer Graphics by Bridson, R. - "Fluid Simulation for Computer Graphics by Robert Bridson" 2008, Ch. 11 - Robert Bridson" 2008, Ch. 11 - http://www.cs.ubc.ca/~rbridson/fluidbook

– Donnelly, W. & Lauritzen A. - "Variance Shadow Maps" Donnelly, W. & Lauritzen A. - "Variance Shadow Maps" 2007 - 2007 - http://www.punkuser.net/vsm/vsm_paper.pdf

– Engel, W. - "Light Pre-Pass Renderer Mark III" 2009 - in Engel, W. - "Light Pre-Pass Renderer Mark III" 2009 - in SIGGRAPH 2009 Advances in Real-Time Rendering in 3D SIGGRAPH 2009 Advances in Real-Time Rendering in 3D Graphics and Games course notes, 2009Graphics and Games course notes, 2009

Page 52: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

Bibliography 2/5Bibliography 2/5

– Evans, A. - "Fast Approximations for Global Illumination on Evans, A. - "Fast Approximations for Global Illumination on Dynamic Scenes" 2006 in SIGGRAPH 2006 Advanced Real-Dynamic Scenes" 2006 in SIGGRAPH 2006 Advanced Real-Time Rendering in 3D Graphics and Games course notes - Time Rendering in 3D Graphics and Games course notes - http://ati.amd.com/developer/techpapers.html-acm2006

– Harris, M. - “Fast Fluid simulation on the GPU” 2004 in GPU Harris, M. - “Fast Fluid simulation on the GPU” 2004 in GPU GemsGems

– Iwasaki, Kei et al - "An Efficient Method for Rendering Iwasaki, Kei et al - "An Efficient Method for Rendering Underwater Optical Effects Using Graphics Hardware" 2002 - Underwater Optical Effects Using Graphics Hardware" 2002 - in Computer Graphics Forum 2002 - in Computer Graphics Forum 2002 - http://nis-lab.is.s.u-http://nis-lab.is.s.u-tokyo.ac.jp/nis/cdrom/cgi/cgf.pdftokyo.ac.jp/nis/cdrom/cgi/cgf.pdf

– Johanson C. - "Real Time Water Rendering: Introducing the Johanson C. - "Real Time Water Rendering: Introducing the projected grid concept" 2004 - in MSc Thesisprojected grid concept" 2004 - in MSc Thesis

– Lander, J. - "Devil in the Blue-Faceted Dress: Real-Time Cloth Lander, J. - "Devil in the Blue-Faceted Dress: Real-Time Cloth Animation" 2000 - In Gamasutra Magazine Features, 2000 - Animation" 2000 - In Gamasutra Magazine Features, 2000 - www.gamasutra.com/features/20000327/lander_01.htmwww.gamasutra.com/features/20000327/lander_01.htm

Page 53: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

Bibliography 3/5Bibliography 3/5

– Martin, T. & Tan, Tiow-Seng - "Anti-aliasing and Continuity Martin, T. & Tan, Tiow-Seng - "Anti-aliasing and Continuity with Trapezoidal Shadow Maps" 2004 - in proceedings of with Trapezoidal Shadow Maps" 2004 - in proceedings of Eurographics Symposium on Rendering 2004 - Eurographics Symposium on Rendering 2004 - http://www.comp.nus.edu.sg/~tants/tsm/tsm.pdfhttp://www.comp.nus.edu.sg/~tants/tsm/tsm.pdf

– Muller, M. et al - "Particle based Fluid Simulation for Muller, M. et al - "Particle based Fluid Simulation for Interactive Applications" 2003 - in Proceedings of Interactive Applications" 2003 - in Proceedings of Eurographics 2003Eurographics 2003

– Muller, M. et al - "Meshless deformations based on shape Muller, M. et al - "Meshless deformations based on shape matching" 2005 - in proceedings of SIGGRAPH 2005 - matching" 2005 - in proceedings of SIGGRAPH 2005 - http://www.matthiasmueller.info/publications/MeshlessDefohttp://www.matthiasmueller.info/publications/MeshlessDeformations_SIG05.pdfrmations_SIG05.pdf

– O'Brien & Hodgkins - "Dynamic Simulation of Splashing O'Brien & Hodgkins - "Dynamic Simulation of Splashing Fluids" 1995 - in Proc. Computer Animation 1995Fluids" 1995 - in Proc. Computer Animation 1995

– Quilez, I. - "Sphere Ambient Occlusion" 2007 - Quilez, I. - "Sphere Ambient Occlusion" 2007 - http://iquilezles.org/www/articles/sphereao/sphereao.htmhttp://iquilezles.org/www/articles/sphereao/sphereao.htm

Page 54: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

Bibliography 4/5Bibliography 4/5

– Sigg, C. & Hadwidger M. - "Fast Third Order Texture Filtering" Sigg, C. & Hadwidger M. - "Fast Third Order Texture Filtering" 2004 - in GPU Gems 2 - 2004 - in GPU Gems 2 - http://medvis.vrvis.at/fileadmin/publications/TR-VRVis-2004-http://medvis.vrvis.at/fileadmin/publications/TR-VRVis-2004-053.pdf053.pdf

– Stam, J. - "Stable Fluids" 1999 - In SIGGRAPH 99 Conference Stam, J. - "Stable Fluids" 1999 - In SIGGRAPH 99 Conference Proceedings, Annual Conference Series, August 1999, 121-128 Proceedings, Annual Conference Series, August 1999, 121-128 - - http://www.dgp.toronto.edu/people/stam/reality/Research/pdf/http://www.dgp.toronto.edu/people/stam/reality/Research/pdf/ns.pdfns.pdf

– Swoboda, M. et al, "Deferred Lighting and Post Processing on Swoboda, M. et al, "Deferred Lighting and Post Processing on PLAYSTATION" 2009 - in GDC 2009 Presentations, PLAYSTATION" 2009 - in GDC 2009 Presentations, http://www.technology.scee.net/files/presentations/gdc2009/Dhttp://www.technology.scee.net/files/presentations/gdc2009/DeferredLightingandPostProcessingonPS3.ppteferredLightingandPostProcessingonPS3.ppt

– Thuerey, N. et. al. - "Real Time Breaking Waves for Shallow Thuerey, N. et. al. - "Real Time Breaking Waves for Shallow Water Simulations" 2007 - Water Simulations" 2007 - http://graphics.ethz.ch/~thuereyn/ntoken3/Publications.htmlhttp://graphics.ethz.ch/~thuereyn/ntoken3/Publications.html

Page 55: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

Bibliography 5/5Bibliography 5/5

– Valient, M. et al, "Deferred Rendering in Killzone," 2007 - in Valient, M. et al, "Deferred Rendering in Killzone," 2007 - in Develop Conference, Brighton, July 2007. Develop Conference, Brighton, July 2007. http://www.develop-conference.com/developconference/dohttp://www.develop-conference.com/developconference/downloads/vwsection/Deferredwnloads/vwsection/Deferred

– Watt, A. & Watt, M. - "Advanced Animation and Rendering Watt, A. & Watt, M. - "Advanced Animation and Rendering Techniques" 1992 - Ch 10.1Techniques" 1992 - Ch 10.1

Page 56: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

the endthe end

Page 57: Advances in Real-Time Rendering in 3D Graphics and Games New Orleans, LA (August 2009) Regressions in RT Rendering: LittleBigPlanet Post Mortem Alex Evans.

Advances in Real-Time Rendering in 3D Graphics and GamesNew Orleans, LA (August 2009)

really the endreally the end