resistance: fall of man - public debriefing

Upload: n-epsylon

Post on 02-Jun-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    1/38

    Resistance: Fall ofResistance: Fall of

    ManManInsomniac GamesInsomniac Games

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    2/38

    DevelopmentDevelopment

    Started on PC with a small prototype teamStarted on PC with a small prototype teamconcurrent with PS2 developmentconcurrent with PS2 development Good for prototyping shaders little changeGood for prototyping shaders little change

    Good for prototyping lighting, tools and buildGood for prototyping lighting, tools and buildprocessprocess

    Bad for code development, systems were not writtenBad for code development, systems were not writtenwith the Cell in mindwith the Cell in mind

    ater on, small group handled porting code baseater on, small group handled porting code baseto PS! while others continued wor"ing on PCto PS! while others continued wor"ing on PC

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    3/38

    DevelopmentDevelopment

    #any concepts shared from PS2#any concepts shared from PS2 $sset types named the same to "eep artists happy$sset types named the same to "eep artists happy

    Structure of the engine is similarStructure of the engine is similar

    Similar tool chainSimilar tool chain %o runtime code shared from PS2%o runtime code shared from PS2

    PS! &esistance and PS2 &atchet had little in commonPS! &esistance and PS2 &atchet had little in common

    ots of $S# on PS2 so not much to use on PS!ots of $S# on PS2 so not much to use on PS!

    #ost PS2 systems were considered too simple for PS!#ost PS2 systems were considered too simple for PS!

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    4/38

    Programmer ToolsProgrammer Tools

    PerforcePerforce

    Pro'GPro'G

    S% 'BSS% 'BS (isual Studio(isual Studio

    In house asset control systemIn house asset control system

    In house build serverIn house build server In house world toolIn house world tool

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    5/38

    Art ToolsArt Tools

    #aya#aya

    #ental &ay#ental &ay

    #icrowave#icrowave PhotoshopPhotoshop

    ) Brush) Brush

    Speed*reeSpeed*ree

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    6/38

    Asset TypesAsset Types

    +ept the same asset names to "eep the process+ept the same asset names to "eep the processfamiliarfamiliar -.rags-.rags

    *ies*ies #obys#obys ShrubsShrubs

    .oliage.oliage S"iesS"ies ShadersShaders

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    7/38

    U-FragsU-Frags

    #ost basic - fastest to render#ost basic - fastest to render

    Completely static geometryCompletely static geometry

    (ertices stored in world space as locally compressed(ertices stored in world space as locally compressed

    fragments to "eep the precision as high as possible fragments to "eep the precision as high as possible

    real positions computed in the verte/ programsreal positions computed in the verte/ programs

    %on-instanceable%on-instanceable

    ightmapped or verte/ ba"edightmapped or verte/ ba"ed #emory efficient#emory efficient

    P(S occlusionP(S occlusion

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    8/38

    TiesTies

    Conceptually the same as -.rag but instanced -Conceptually the same as -.rag but instanced -vertices defined in local spacevertices defined in local space

    Completely static geometryCompletely static geometry

    Can be nested within each other in the tools, invisibleCan be nested within each other in the tools, invisibleto runtimeto runtime

    ightmapped or verte/ ba"edightmapped or verte/ ba"ed #ade up the ma0ority of a typical scene#ade up the ma0ority of a typical scene Stored as two &S1 streams, a master and a per instanceStored as two &S1 streams, a master and a per instance

    stream with the lighting infostream with the lighting info P(S occlusionP(S occlusion

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    9/38

    MobysMobys

    'ynamic geometry, most e/pensive'ynamic geometry, most e/pensive

    Can have physics, animations, etcCan have physics, animations, etc

    #ay be rigid 34 bone5 or s"inned 36 bones5#ay be rigid 34 bone5 or s"inned 36 bones5 Static lighting from pre-computed spatialStatic lighting from pre-computed spatial

    lighting volumeslighting volumes

    'ynamic lighting from runtime lights'ynamic lighting from runtime lights Crude static 7'Crude static 7'

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    10/38

    ShrubsShrubs

    (ery fast to render, used to fill scene(ery fast to render, used to fill scene evels would have 48"-28" instancesevels would have 48"-28" instances (ery basic geometry(ery basic geometry Simple lightingSimple lighting 'idn9t cast shadows but could receive them'idn9t cast shadows but could receive them Basic wind li"e animationBasic wind li"e animation .ade out in distance.ade out in distance P(S occlusionP(S occlusion

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    11/38

    FoliageFoliage

    sed for leaves on treessed for leaves on trees

    Camera facing billboardsCamera facing billboards

    sed Speed*ree for data generation but wrotesed Speed*ree for data generation but wroteour own custom renderer for runtimeour own custom renderer for runtime

    Could cast and receive shadowsCould cast and receive shadows

    Basic wind li"e animation similar to shrubsBasic wind li"e animation similar to shrubs P(S occlusionP(S occlusion

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    12/38

    SiesSies

    #ultiple fre:uencies of cloud layers composited#ultiple fre:uencies of cloud layers composited

    togethertogether

    $rtist driven animation parameters to procedurally$rtist driven animation parameters to procedurally

    control cloud turbulence, drift, formation rates, etccontrol cloud turbulence, drift, formation rates, etc Simplified geometry could be rendered before or afterSimplified geometry could be rendered before or after

    cloud layerscloud layers

    Bloom geometry layersBloom geometry layers 'rawn after opa:ue geometry'rawn after opa:ue geometry

    P(S occlusionP(S occlusion

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    13/38

    Sha!ersSha!ers

    Base color map, $lpha;Bloom, %ormal, Gloss, Incandescence, Paralla/, andBase color map, $lpha;Bloom, %ormal, Gloss, Incandescence, Paralla/, and'etail'etail

    .ine grain control e/posed to artists te/ture format, filtering modes, etc.ine grain control e/posed to artists te/ture format, filtering modes, etc (erte/ programs abstracted the asset type(erte/ programs abstracted the asset type $ll assets shared fragment programs - consistent lighting$ll assets shared fragment programs - consistent lighting

    &untime has specific shader programs to optimally handle the various&untime has specific shader programs to optimally handle the variouscombinations of shader featurescombinations of shader features

    sed simple pre-processor

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    14/38

    Sha!ersSha!ers

    *he alpha type is part of the shader*he alpha type is part of the shader 7pa:ue 3updates >57pa:ue 3updates >5 Blended 3does not update >5Blended 3does not update >5 $dditive 3does not update >5$dditive 3does not update >5

    Cutout 3uses alpha test5Cutout 3uses alpha test5 'estination alpha used for bloom'estination alpha used for bloom Shader 7' removed e/pensive featuresShader 7' removed e/pensive features Shaders use the hardware features of the te/ture samplersShaders use the hardware features of the te/ture samplers

    Swi>>le to get the inputs in to the place where the fragment programSwi>>le to get the inputs in to the place where the fragment programe/pects theme/pects them se the sign e/tend and force >ero;one featurese the sign e/tend and force >ero;one feature

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    15/38

    "uil! Process"uil! Process

    ?ach asset type has a stand alone builder?ach asset type has a stand alone builder PC Command line tool, integrated with our asset controlPC Command line tool, integrated with our asset control

    systemsystem

    Single platform, assets are built directly in hardware formatSingle platform, assets are built directly in hardware format PS! viewer that shows individual built assetsPS! viewer that shows individual built assets

    Good for debugging assetsGood for debugging assets

    Good for rough stats on a single assetGood for rough stats on a single asset

    (iewers show all physics and collision info(iewers show all physics and collision info

    (iewers allow artists to light and animate out of the conte/t(iewers allow artists to light and animate out of the conte/t

    of a levelof a level

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    16/38

    "uil! Process"uil! Process

    ?ngine 'ata evel Pac"er?ngine 'ata evel Pac"er $ level is a group of assets of different types pac"ed$ level is a group of assets of different types pac"ed

    together by the pac"ing tooltogether by the pac"ing tool

    *he level pac" tool is what lays optimally in the final*he level pac" tool is what lays optimally in the final

    format, resolves duplicates, partitions memory, etcformat, resolves duplicates, partitions memory, etc

    7n load, very little copying is done, we 0ust need to7n load, very little copying is done, we 0ust need to

    patch up pointerspatch up pointers &S1 data is pac"ed into two chun"s, one that ends&S1 data is pac"ed into two chun"s, one that ends

    up in main memory and one in local memoryup in main memory and one in local memory

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    17/38

    "uil! Process"uil! Process

    ProblemsProblems %o bac"wards;forwards compatibility of data%o bac"wards;forwards compatibility of data

    formatsformats

    Slow asset buildsSlow asset builds

    ive dataive data

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    18/38

    Static #ightingStatic #ighting

    ?nvironments use simplified @2 style light maps -?nvironments use simplified @2 style light maps -directional luminance in the lightmaps and a shareddirectional luminance in the lightmaps and a sharedchrominance per verte/chrominance per verte/

    ?nvironments could also use verte/ lighting, in which?nvironments could also use verte/ lighting, in whichcase there was no lightmaps and the luminance andcase there was no lightmaps and the luminance andchrominance are stored per verte/chrominance are stored per verte/

    *he lightmaps, (s and verte/ components for lighting*he lightmaps, (s and verte/ components for lighting

    are stored per instanceare stored per instance $ll lighting computed through #ental &ay$ll lighting computed through #ental &ay Interactive lightmap resolution and format twea"ingInteractive lightmap resolution and format twea"ing

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    19/38

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    20/38

    Dynamic #ightingDynamic #ighting

    'ynamic lights are rendered as a separate pass per light'ynamic lights are rendered as a separate pass per light 7nly the individual geometry fragments affected by the7nly the individual geometry fragments affected by the

    lights are rendered in the light passeslights are rendered in the light passes $ll lighting is per pi/el, typical light types supported$ll lighting is per pi/el, typical light types supported

    3Point, spot, etc53Point, spot, etc5 ighting model is the same for all assets so they all lightighting model is the same for all assets so they all light

    the samethe same Shadow maps are pre-rendered at the start of the frame,Shadow maps are pre-rendered at the start of the frame,

    there is an mb limit for shadow mapsthere is an mb limit for shadow maps Shadow maps are 4A-bit linear depth and rangeShadow maps are 4A-bit linear depth and range

    controlled for best accuracycontrolled for best accuracy

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    21/38

    Static occlusionStatic occlusion

    Static occlusion is a P(S systemStatic occlusion is a P(S system 'atabase is computed offline using the PS! to render'atabase is computed offline using the PS! to render

    the scene using :ueries and the PC to :uanti>e;pac"the scene using :ueries and the PC to :uanti>e;pac"

    the results usually an overnight processthe results usually an overnight process $t runtime given a camera position you get a bit array$t runtime given a camera position you get a bit array

    of the visible nodes and the ma/ visible distanceof the visible nodes and the ma/ visible distance ?ach asset fragment belongs to a node and a simple?ach asset fragment belongs to a node and a simple

    runtime logic op determines if the node is visibleruntime logic op determines if the node is visible *here is a limited number of nodes, each represented*here is a limited number of nodes, each represented

    by a single bitby a single bit

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    22/38

    Frame "uffer SetupFrame "uffer Setup

    'isplay Buffers'isplay Buffers 2 / 428/28 !2-bit &GB$2 / 428/28 !2-bit &GB$

    Both display buffers share a single tile to reduce wastedBoth display buffers share a single tile to reduce wasted

    memorymemory De did not support 488, couldn9t afford the memoryDe did not support 488, couldn9t afford the memory

    &ender Buffer&ender Buffer 428/28, !2bit, 2/#S$$428/28, !2bit, 2/#S$$

    !2-bit depth buffer!2-bit depth buffer

    Color and depth in their own tiles with compression enabledColor and depth in their own tiles with compression enabled

    $lways render 428/28 down sample for %*SC and P$$lways render 428/28 down sample for %*SC and P$

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    23/38

    Frame "uffer SetupFrame "uffer Setup

    $lternate &ender Buffer$lternate &ender Buffer 428/86, !2bit, 2/#S$$428/86, !2bit, 2/#S$$

    86 is the magic height as it obeys all the restrictions86 is the magic height as it obeys all the restrictions

    of depth and color tilesof depth and color tiles

    Center on the 28 front buffer, giving pi/els ofCenter on the 28 front buffer, giving pi/els of

    blac" top and bottomblac" top and bottom

    %o wasted memory due to alignment 7ver 4#b%o wasted memory due to alignment 7ver 4#bsaved from using 428/28 and 2E fastersaved from using 428/28 and 2E faster

    Idea was too late to be useful on &esistanceIdea was too late to be useful on &esistance

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    24/38

    Frame Ren!er $r!erFrame Ren!er $r!er

    Statically lit opa:ue geometryStatically lit opa:ue geometry S"yS"y Statically lit alpha geometryStatically lit alpha geometry 'ynamically lighting passes on opa:ue geometry'ynamically lighting passes on opa:ue geometry

    'ynamically lighting passes on alpha geometry'ynamically lighting passes on alpha geometry ?ffects, Dater, Ground fog?ffects, Dater, Ground fog &esolve multisampling to display buffer, apply color correction&esolve multisampling to display buffer, apply color correction

    3contrast, brightness and saturation53contrast, brightness and saturation5 $pply post effects on the off screen display buffer$pply post effects on the off screen display buffer 'raw @' directly to display'raw @' directly to display 'raw the system 7S''raw the system 7S' .lip the display buffers.lip the display buffers

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    25/38

    %i!eo Memory "u!get%i!eo Memory "u!get

    (ram is almost e/clusively pi/el data, some verts(ram is almost e/clusively pi/el data, some vertsmay be in vram for memory balancingmay be in vram for memory balancing 24#b .rame buffers24#b .rame buffers

    =42+ .ragment programs=42+ .ragment programs #b Scratch memory 3non-tiled5#b Scratch memory 3non-tiled5 =8-8#b ightmaps=8-8#b ightmaps

    44=-4!=#b *e/tures44=-4!=#b *e/tures Scratch memory is used for shadow buffers,Scratch memory is used for shadow buffers,

    effects, and post effect wor"ing buffers etceffects, and post effect wor"ing buffers etc

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    26/38

    Main MemoryMain Memory

    %o C&* allocations%o C&* allocations

    $llocate our own memory segment$llocate our own memory segment

    $llocate all free memory as 4mb pages$llocate all free memory as 4mb pages Individually commit pages to the segmentIndividually commit pages to the segment

    #ap everything in the segment to the &S1#ap everything in the segment to the &S1

    De do leave a couple of #b slop for the C&*De do leave a couple of #b slop for the C&*because its used by other C&* functions 3printf5because its used by other C&* functions 3printf5

    and networ"ing codeand networ"ing code

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    27/38

    Memory AllocatorsMemory Allocators

    ow level allocator is an Fallocate at end9 type allocatorow level allocator is an Fallocate at end9 type allocatorwith no ability to free memorywith no ability to free memory

    *he allocator has chec"points which we can use to*he allocator has chec"points which we can use torollbac" main and video memoryrollbac" main and video memory

    &eliable clean up without concern about destructors&eliable clean up without concern about destructorsbeing calledbeing called

    *here are chec"points inserted at the various points*here are chec"points inserted at the various pointsduring load so we can :uic"ly reload when a player diesduring load so we can :uic"ly reload when a player dies

    or restarts the levelor restarts the level Systems that needed true dynamic memory dealt with itSystems that needed true dynamic memory dealt with it

    with an optimal allocator specific to that systemwith an optimal allocator specific to that system

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    28/38

    Main Memory "u!getMain Memory "u!get

    ?lfSystem Setup?lfSystem Setup Code and 'ataCode and 'ata 4#b4#b

    2mb of embedded SP elf data2mb of embedded SP elf data

    2mb of P&1 modules2mb of P&1 modules

    BSSBSS #b#b

    C&* @eapC&* @eap 4#b4#b

    SP *hread group swap spaceSP *hread group swap space 2#b2#b

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    29/38

    Main Memory "u!getMain Memory "u!get

    Core engineCore engine Push buffersPush buffers A-48#bA-48#b

    Scratch memoryScratch memory H#bH#b

    Global *e/tures and @'Global *e/tures and @' #b#b

    #isc#isc 2#b2#b SP '#$ buffers, verte/ programs, &* light setupSP '#$ buffers, verte/ programs, &* light setup

    buffers, .I7S init, Sound init etcbuffers, .I7S init, Sound init etc

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    30/38

    Main Memory "u!getMain Memory "u!get

    evel 'ataevel 'ata ?ffects?ffects 44#b44#b GeometryGeometry =8#b=8#b CollisionCollision H#bH#b

    $nim$nim !8#b!8#b ?nviroment Instance?nviroment Instance 2#b2#b 7cclusion;P(S7cclusion;P(S 6#b6#b SoundSound !8#b!8#b 'ialog'ialog 42#b42#b

    PhysicsPhysics H#bH#b %av$I%av$I 6#b6#b #oby Instance#oby Instance A#bA#b Gameplay;ScriptsGameplay;Scripts 48#b48#b

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    31/38

    SPU &onfigurationSPU &onfiguration

    2 &aw mode SPs2 &aw mode SPs 7ne SP running broad collision7ne SP running broad collision 7ne SP running narrow collision7ne SP running narrow collision *hese run all the time*hese run all the time

    ! Job #anagerK SPs! Job #anagerK SPs In a thread group running SP&SIn a thread group running SP&S Job #anagerK policy moduleJob #anagerK policy module $ll 0obs go on these$ll 0obs go on these

    4 nused4 nused *his is for the 7S to steal for $C! ?ncode etc*his is for the 7S to steal for $C! ?ncode etc *his should be used with its own 0ob manager instance in the*his should be used with its own 0ob manager instance in the

    future for 0obs that don9t mind getting interrupted by the 7Sfuture for 0obs that don9t mind getting interrupted by the 7S

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    32/38

    SPU &onfigurationSPU &onfiguration

    Initially we had Job #anagerK using 6 SPsInitially we had Job #anagerK using 6 SPs

    Dhen we finally got a 7S that was stealing an SP itDhen we finally got a 7S that was stealing an SP it

    was more e/pensive to have Job #anagerK on 6 SPswas more e/pensive to have Job #anagerK on 6 SPs

    than on !than on ! Dith $C! ?ncode activeDith $C! ?ncode active

    *otal SP *ime for Job #anagerK of 6*otal SP *ime for Job #anagerK of 6 686 ms686 ms

    *otal SP *ime for Job #anagerK of !*otal SP *ime for Job #anagerK of ! !H26 ms!H26 ms

    #ultiple instances of SP&S;Job #anagerK came too#ultiple instances of SP&S;Job #anagerK came too

    late for us to uselate for us to use

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    33/38

    SPU SystemsSPU Systems

    $nimation$nimation $udio 3%e/tSynth and &45$udio 3%e/tSynth and &45 Buc"eter sortBuc"eter sort Collision 3separate broad and narrow5Collision 3separate broad and narrow5 'ynamic 'B'ynamic 'B 'ynamic 0oint'ynamic 0oint .1 update.1 update Geom Cull Clip 3for shadows and decals5Geom Cull Clip 3for shadows and decals5 GlassGlass #oby constants#oby constants Physics collisionPhysics collision

    Physics simulationPhysics simulation Particle 3weather f/5Particle 3weather f/5 &ender mats&ender mats Static 'BStatic 'B Dater 3..*5Dater 3..*5

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    34/38

    SPUsSPUs

    $ll our systems started off as &$D mode$ll our systems started off as &$D mode *he only long term 3not finished this frame5 asynchronous*he only long term 3not finished this frame5 asynchronous

    processing is the collision on the raw SPsprocessing is the collision on the raw SPs De use Job #anagerK but not all systems use it in the typical wayDe use Job #anagerK but not all systems use it in the typical way

    of fire and forget #ost of our system re:uire the SP to beof fire and forget #ost of our system re:uire the SP to berunning a particular system at the same time as the PPrunning a particular system at the same time as the PP

    *o ensure the SP is doing what we want at the correct time we*o ensure the SP is doing what we want at the correct time wesend Job #anagerK the 0ob and use our own thinsend Job #anagerK the 0ob and use our own thinsynchroni>ation and 0ob buffering schemes using the loc"ed-linesynchroni>ation and 0ob buffering schemes using the loc"ed-linefor communicationfor communication

    48-28E total SP utili>ation48-28E total SP utili>ation

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    35/38

    &ollision $vervie'&ollision $vervie'

    'edicated 2 raw SPs one for broad and narrow phases'edicated 2 raw SPs one for broad and narrow phases De support immediate and deferred :ueriesDe support immediate and deferred :ueries PP can directly issue broad or narrow :ueriesPP can directly issue broad or narrow :ueries Broad and narrow overlap, so narrow is processing as soon asBroad and narrow overlap, so narrow is processing as soon as

    the first broad phase result is availablethe first broad phase result is available *here are two "inds of deferred collision operations, standard*here are two "inds of deferred collision operations, standard

    priority which has to done this frame and low priority which haspriority which has to done this frame and low priority which hasuntil the end of the ne/t frameuntil the end of the ne/t frame

    Immediate re:uests from the PP are higher priority than anyImmediate re:uests from the PP are higher priority than anydeferred collisiondeferred collision

    Getting game code to optimally use the deferred collision was anGetting game code to optimally use the deferred collision was anissueissue

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    36/38

    Animation $vervie'Animation $vervie'

    $ppro/ 688 Joint limit, 4= blended clips$ppro/ 688 Joint limit, 4= blended clips .ull body animations or partials with per 0oint weights.ull body animations or partials with per 0oint weights Stac" driven system similar to IC?Stac" driven system similar to IC? %o blend shapes or set driven "ey support at present%o blend shapes or set driven "ey support at present Dhile the SP is computing the animation for a given moby theDhile the SP is computing the animation for a given moby the

    PP is updating the ne/t moby and computing its anim stac"PP is updating the ne/t moby and computing its anim stac" $nimation time is typically completely hidden, only time we stall$nimation time is typically completely hidden, only time we stall

    is when waiting for the last anim to completeis when waiting for the last anim to complete

    $nimation data is compressed in memory and temporarily$nimation data is compressed in memory and temporarilydecompressed before use by SPdecompressed before use by SP

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    37/38

    Animation $vervie'Animation $vervie'

    ow level animation system is driven by a high level Fmove9ow level animation system is driven by a high level Fmove9system which builds the anim stac"system which builds the anim stac"

    ?nd result of the animation is a set of local space matrices?nd result of the animation is a set of local space matrices Subset of s"eletal 0oints called Fdynamic 0oints9 which can beSubset of s"eletal 0oints called Fdynamic 0oints9 which can be

    modified on post animated data physics, I+, rag doll, gameplaymodified on post animated data physics, I+, rag doll, gameplayprocedural movement, etc operate on theseprocedural movement, etc operate on these

    $ny modifications are multiplied bac" down the hierarchy only$ny modifications are multiplied bac" down the hierarchy onlyfor those leaves of the tree by an SP 0obfor those leaves of the tree by an SP 0ob

    .inally all resultant local space matrices are sent to another SP.inally all resultant local space matrices are sent to another SP0ob which builds the world space matrices and pushbuffer which0ob which builds the world space matrices and pushbuffer whichuploads them to &S1uploads them to &S1

    $ll s"inning is done on the &S1$ll s"inning is done on the &S1

  • 8/11/2019 Resistance: Fall of Man - Public Debriefing

    38/38

    The (n!The (n!

    LuestionsMLuestionsM