SlideShare ist ein Scribd-Unternehmen logo
1 von 49
Relic’s FX System:
Making Big Battles Come Alive
        Daniel Barrero, PhD
    Senior Graphics Programmer
     Relic Entertainment - THQ
    Korea Game Conference – KGC 2012 – October 8 2012
Introduction
• Video/Screenshots of fx
Relic’s FX System Lineage




Direct Descendant
Influenced By       Custom Port
FX System: More than a Few Good
             Particles
• FX Systems are at the core particle systems, for our purposes we
  require it to:
   • Allow multiple particle types at the same time
   • Be Fast and scale performance based on available resources
   • Allow wildly different particle behaviors
   • Multiple ways to generate particles
   • Easy to use by content creators
   • Able to interact easily with gameplay
   • Be able to be used for wildly different types of game worlds
Relic’s FX System Features
•   Broad variety of particle types
•   Hierarchical Particle System
•   Cascading FX (Trigger other FX and game actions)
•   FX Batching ( just 1 to 2 render calls to render everything )
•   Multiple Particle Behavior environments
•   Lit particles
•   Soft/Volumetric Particles
•   Explicit draw particle order within a particle system
•   Forward and Deferred renderer support.
•   Automatic texture atlas generation on load
•   Animated texture support
•   Efficient memory management
•   In camera and Post-Processing FX
System Architecture
• Object oriented style system
                        FX Type



   FX Combo   FX Particle     FX Emitters


• FX Types hold the information for the effect, FX
  Objects are instanced based on that information
  when a FX gets triggered and hold the specific
  instance mutable state information.
Hierarchical Particle System
• The FX Combo type is one of the core building
  blocks of the hierarchical particle system.
  – It can have up to 8 children of any FX Type, including
    more combos.
Hierarchical Particle System
• The FX Combo type is one of the core building
  blocks of the hierarchical particle system.
  – It can have up to 8 children of any FX Type, including
    more combos.
  – It’s properties indicate how, when and where children
    are created.
Hierarchical Particle System
• The FX Combo type is one of the core building
  blocks of the hierarchical particle system.
  – It can have up to 8 children of any FX Type, including
    more combos.
  – It’s properties indicate how, when and where children
    are created.
  – Children properties with the same name as the
    combo are relative to it’s parent, similarly root combo
    properties are relative to the action or object that
    triggered the effect.
Hierarchical Particle System
• The second key building block of the
  hierarchical particle system is the ability for
  any FX Type other than a combo to trigger a
  single child effect of any other FX type.
FX Particle Types
• Standard Geometric Particles:
  • FX Ring: just a simple standard textured quad.
     • The most common type of particle. E.g.
       Smoke, Explosions, Clouds, Ground effects, UI…
FX Particle Types
• Standard Geometric Particles:
  • FX Beam: a long stripped rectangle that goes from a point
    of origin to a specific destination point following a curve.
     • E.g. a Laser beam
FX Particle Types
• Standard Geometric Particles:
  • FX Trail: A curved flat shape that follows the path created
    by the movement of the fx emitter.
     • E.g. A constantly growing ribbon like Homeworld engine trails
FX Particle Types
• Standard Geometric Particles:
  • FX Streamer: A long stripped rectangle that goes from a
    point of origin up in a given direction up to a given
    distance.
     • E.g. Laser sword or flame thrower.
FX Particle Types
• Standard Geometric Particles:
  • FX Mesh: Generates the indicated mesh and attaches to a
    particle that controls the look and position of the mesh.
     • Useful for debris, rockets, 3D UI elements,...
Particle Types
• Post-Processing and non directly visible
  particles:
  • FX Distortion : An axis aligned quad that applies a post-
    processing distortion effect mostly used to simulate heat
    and pressure waves.
  • FX Lens Flare : Generates a lens flare effect applied as a
    post-processing effect in the screen area covered by the
    effect.
  • FX Light: Generates a dynamic point light in the world for
    the duration of the effect.
  • FX Audio: Creates an audio source with the indicated
    sound at the particle position.
Particle Rendering: Blend Modes
• Having an explicit draw particle order within a
  particle system allows having per particle
  alpha blended or additive blending modes:
            Particle       Particle       Background       Particle        Screen
                           Alpha                           Inv-Alpha

Additive:                             +                                =

Alpha
Blend:                 *              +                *               =
FX Particle Types: Lighting
• Lighting style affects particle triangulation.
  – E.g for a FX Ring:
                 Geometry         Render


 Unlit / Flat




 Lit (Pyramid)
Particle Rendering: Orientation
• Orientation relative to world or parent.
• Billboarding:
  – Spherical
  – World Axis Constrained
• Follow Terrain
Particle Generation
• A single FX Type can be triggered either
  directly or from other FX Types
  – E.g. a single ring.

• Using the FX Spray type to generate sets of FX
  Types with a common given behavior.
  – E.g a column of smoke
  – FX Sprays can be spawned
    by any other FX Type
Particle Behavior
• FX Visuals are separate from specific FX
  behavior.
          FX Type                 FX Environment


        Animation Curves   Simple Dynamics     Full Physics Simulation

• Each FX Type can have a different FX Environment
  allowing particles in a single effect to react
  differently to their environment.
Particle Behavior
• Animation Curves:
  – Any particle parameter can be animated using key
    framed animation.
Particle Behavior
• Simple Dynamics:
   – We use Newtonian physics and Verlet integration on all
     simulation environments to compute new particle positions.
   – For ground collisions we calculate collisions directly against the
     terrain height map.
   – For collisions against objects first collisions are computed
     against the animated bounding boxes then against the actual
     object polygons if precise intersections are requested.

• Full Physics Simulation:
   – FX Meshes being standard world objects, are able to use the
     standard game physics (Havok) to compute precise collisions
     against the environment if set up to do so.
Pipeline: FXEditor
• FX Editor is where individual effects get
  created.
Pipeline: Object Editor
• FX get hooked up with game actions in this
  tool.
Pipeline: Object Editor
• FX get hooked up with game actions in this
  tool.
  – Allows triggering FX from game data and gameplay
    events using a Data-Command-Action pattern.
     • Is an event based state machine system that is
       completely data driven.
     • Allows attaching FX to markers in objects and to trigger
       other fx based on game states data.
Making it Fast
• Problem: There can be thousands of particles
  of different types, blending modes and
  textures that need to be created and updated
  every frame.
  • Straight forward approach to render each particle
    separately produces too many render calls and
    context switches.
  • Updating and generating so many particles can
    take a lot of time in the CPU
Making it Fast
• Solution to reduce CPU cost:
  – Keep particle dynamics as simple as possible:
     • That means fake complex physics behaviors as much as
       possible with simple particle animations as much as
       possible and only use physics simulation for particles
       that really need it.
  – Multithread the particle update
     • Every frame the FX Manager spawns as many jobs as
       there are root FX Objects (FX Objects with no other FX
       Type as parent).
Making it Fast: Batching
• Solution to Render Cost: Batch Particles
  • Add all particle triangles to a single dynamic fat vertex and
    index buffers regardless of particle type.




  • Dynamic vertex buffer works as a circular buffer.
  • We do only 1 or 2 render calls per frame for all effects
    combined! (max 21845 particle triangles per render call)
Making it Fast : Batching
• Solution to Render Cost: Batch Particle
  • Pack FX textures in a texture atlas at load time to
    use a single shader and avoid texture switches.
  • Texture atlas is a cube map in d3d9 level HW
Making it Fast : Batching
• Supporting different modes in the same
  shader pass and using a unique blend state:
  – FX Textures are all pre-multiplied alpha.
  – Blend state is set to a custom additive + blend
    state:
        – Screen Color = Particle Color + Screen Color * Particle Alpha
     • Use separate alpha blend state:
        – Screen Color = Particle Alpha * Inv Particle Alpha + Screen
          Alpha
Making it Fast: Batching
• Supporting different modes in the same
  shader pass and using a unique blend state:
  – In shader code we compute the particle color and
    alpha depending on blend mode requested:
Making it Fast : Deferred Rendering
• Render in a buffer the nearest and furthest
  depth values during the depth pre-pass or the
  GBuffer pass.
• Render the FX on a separate lower res buffer
  using alpha blending using the near and far
  values to determine if an effect should be
  drawn in the buffer or not.
• Blend the FX buffer as full screen post-
  processing pass.
Making it Fast : Weather FX
• Besides the hierarchical system there is a
  specific separate System just for weather FX:
  – Solve a very specific problem in a very efficient
    way:
     • Falling Rain and Snow
     • Rain Splashes
  – Can be implemented in the CPU or completely on
    the GPU on recent hardware
Making it Fast : Weather FX
Making it Fast : Weather FX
Observations:
• Rain drops are only visible when close to the camera:
   • Particles only need to be computed inside the view
     frustum close to the camera:
      • Easier to reuse particles thus simplifying memory
        management by using a circular buffer for the particles.
• There is really only one type of particle needed
      • Textured Quads
Making it Fast : Weather FX
Observations (cont):
• It is really hard to see what specific falling drop
  produce a specific splash on an object at normal
  speed:
      • Means falling rain and rain splashes can use different
        non interdependant techiques for particle generation.
Making it Fast : Weather FX
Falling Rain and Snow Overall algorithm:
   • First Emit particles on an area in top of the view frustum
     and close to the camera.
Making it Fast : Weather FX
Falling Rain and Snow Overall algorithm:
   • First Emit particles on an area in top of the view frustum
     and close to the camera.
   • Calculate new positions for all particles
Making it Fast : Weather FX
Falling Rain and Snow Overall algorithm:
   • First Emit particles on an area in top of the view frustum
     and close to the camera.
   • Calculate new positions for all particles
   • If particle is outside of the view volume mark as dead and
     reuse.
• Problem: moving the camera will show more
  particles on one side until new particles are
  generated on the side of the direction of the
  movement.
Making it Fast : Weather FX
Falling Rain and Snow Overall algorithm:
• Solution: treat particles as an animated volumetric
  texture
   • If a particle goes out of the volume in one of the sides, just
     change the position as if it wrapped around the other side
     of the volume.
Making it Fast : Weather FX
• Volume particle tiling CPU code:




• Volume particle tiling GPU (Vertex Shader) code
Making it Fast : Weather FX
Falling Rain and Snow Overall algorithm:
• Solution: treat particles as an animated volumetric
  texture
   • If a particle goes out of the volume in one of the sides, just
     change the position as if it wrapped around the other side
     of the volume.
   • If a particle goes out of the volume in the bottom then
     reuse as a new particle.
Optimizations: Weather FX
• Rain Splashes algorithm
  • Also treats splashes as an animated volumetric texture
    that tiles in world space.
Optimizations: Weather FX
• Rain Splashes algorithm
  • Generate random positions on the horizontal plane instead
    of the top of the camera:
Optimizations: Weather FX
• Rain Splashes algorithm
  • Generate random positions on the horizontal plane instead
    of the top of the camera.
  • Trace a ray at that particle point from a high altitude and
    find first intersection with the terrain or objects allowed to
    have splashes.
  • Emit Splash particle
  at that point.
Optimizations: Weather FX
• Problem: If camera moves then splashes would move
  over the terrain.
• Solution: Let splash particles generated play their
  animation while they are visible by the camera once
  dead or out of the view frustum reuse for new
  particle in another position.
Acknowledgements
• Thanks to all the great FX Artists that keep
  pushing the limit of what the FX system can do
  and keep us busy with more ideas of how to
  make it better.
• Thanks to all the countless programmers that
  have worked on the FX System its tools and
  pipeline over the years.
Thank you
• Questions?

• Contact Information:
   • daniel.barrero@gmail.com
   • http://danielbarrero.com

Weitere ähnliche Inhalte

Was ist angesagt?

Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)Johan Andersson
 
Lighting Shading by John Hable
Lighting Shading by John HableLighting Shading by John Hable
Lighting Shading by John HableNaughty Dog
 
Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1Ki Hyunwoo
 
Advanced Scenegraph Rendering Pipeline
Advanced Scenegraph Rendering PipelineAdvanced Scenegraph Rendering Pipeline
Advanced Scenegraph Rendering PipelineNarann29
 
Rendering Tech of Space Marine
Rendering Tech of Space MarineRendering Tech of Space Marine
Rendering Tech of Space MarinePope Kim
 
Checkerboard Rendering in Dark Souls: Remastered by QLOC
Checkerboard Rendering in Dark Souls: Remastered by QLOCCheckerboard Rendering in Dark Souls: Remastered by QLOC
Checkerboard Rendering in Dark Souls: Remastered by QLOCQLOC
 
Forward+ (EUROGRAPHICS 2012)
Forward+ (EUROGRAPHICS 2012)Forward+ (EUROGRAPHICS 2012)
Forward+ (EUROGRAPHICS 2012)Takahiro Harada
 
High Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in FrostbiteHigh Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in FrostbiteElectronic Arts / DICE
 
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The RunFive Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The RunElectronic Arts / DICE
 
FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteElectronic Arts / DICE
 
Advancements in-tiled-rendering
Advancements in-tiled-renderingAdvancements in-tiled-rendering
Advancements in-tiled-renderingmistercteam
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Johan Andersson
 
Oit And Indirect Illumination Using Dx11 Linked Lists
Oit And Indirect Illumination Using Dx11 Linked ListsOit And Indirect Illumination Using Dx11 Linked Lists
Oit And Indirect Illumination Using Dx11 Linked ListsHolger Gruen
 
Deferred shading
Deferred shadingDeferred shading
Deferred shadingFrank Chao
 
The Guerrilla Guide to Game Code
The Guerrilla Guide to Game CodeThe Guerrilla Guide to Game Code
The Guerrilla Guide to Game CodeGuerrilla
 
BitSquid Tech: Benefits of a data-driven renderer
BitSquid Tech: Benefits of a data-driven rendererBitSquid Tech: Benefits of a data-driven renderer
BitSquid Tech: Benefits of a data-driven renderertobias_persson
 

Was ist angesagt? (20)

Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
 
Lighting Shading by John Hable
Lighting Shading by John HableLighting Shading by John Hable
Lighting Shading by John Hable
 
Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1
 
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's EdgeThe Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
 
Advanced Scenegraph Rendering Pipeline
Advanced Scenegraph Rendering PipelineAdvanced Scenegraph Rendering Pipeline
Advanced Scenegraph Rendering Pipeline
 
Rendering Tech of Space Marine
Rendering Tech of Space MarineRendering Tech of Space Marine
Rendering Tech of Space Marine
 
Checkerboard Rendering in Dark Souls: Remastered by QLOC
Checkerboard Rendering in Dark Souls: Remastered by QLOCCheckerboard Rendering in Dark Souls: Remastered by QLOC
Checkerboard Rendering in Dark Souls: Remastered by QLOC
 
Stochastic Screen-Space Reflections
Stochastic Screen-Space ReflectionsStochastic Screen-Space Reflections
Stochastic Screen-Space Reflections
 
Forward+ (EUROGRAPHICS 2012)
Forward+ (EUROGRAPHICS 2012)Forward+ (EUROGRAPHICS 2012)
Forward+ (EUROGRAPHICS 2012)
 
High Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in FrostbiteHigh Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in Frostbite
 
DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3
 
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The RunFive Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
 
FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in Frostbite
 
Frostbite on Mobile
Frostbite on MobileFrostbite on Mobile
Frostbite on Mobile
 
Advancements in-tiled-rendering
Advancements in-tiled-renderingAdvancements in-tiled-rendering
Advancements in-tiled-rendering
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
 
Oit And Indirect Illumination Using Dx11 Linked Lists
Oit And Indirect Illumination Using Dx11 Linked ListsOit And Indirect Illumination Using Dx11 Linked Lists
Oit And Indirect Illumination Using Dx11 Linked Lists
 
Deferred shading
Deferred shadingDeferred shading
Deferred shading
 
The Guerrilla Guide to Game Code
The Guerrilla Guide to Game CodeThe Guerrilla Guide to Game Code
The Guerrilla Guide to Game Code
 
BitSquid Tech: Benefits of a data-driven renderer
BitSquid Tech: Benefits of a data-driven rendererBitSquid Tech: Benefits of a data-driven renderer
BitSquid Tech: Benefits of a data-driven renderer
 

Andere mochten auch

Screen Space Decals in Warhammer 40,000: Space Marine
Screen Space Decals in Warhammer 40,000: Space MarineScreen Space Decals in Warhammer 40,000: Space Marine
Screen Space Decals in Warhammer 40,000: Space MarinePope Kim
 
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)포프 김
 
[2012 대학특강] 아티스트 + 프로그래머
[2012 대학특강] 아티스트 + 프로그래머[2012 대학특강] 아티스트 + 프로그래머
[2012 대학특강] 아티스트 + 프로그래머포프 김
 
Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingElectronic Arts / DICE
 
My part-time fun.
My part-time fun.My part-time fun.
My part-time fun.wlia03
 
Algo presentation
Algo presentationAlgo presentation
Algo presentationKasim Ijelu
 
Stylized Rendering in Battlefield Heroes
Stylized Rendering in Battlefield HeroesStylized Rendering in Battlefield Heroes
Stylized Rendering in Battlefield HeroesElectronic Arts / DICE
 
Big Data in Stock Exchange( HFT, Forex, Flash Crashes)
Big Data in Stock Exchange( HFT, Forex, Flash Crashes) Big Data in Stock Exchange( HFT, Forex, Flash Crashes)
Big Data in Stock Exchange( HFT, Forex, Flash Crashes) Dmytro Melnychuk
 
Deferred decal
Deferred decalDeferred decal
Deferred decal민웅 이
 
Masked Software Occlusion Culling
Masked Software Occlusion CullingMasked Software Occlusion Culling
Masked Software Occlusion CullingIntel® Software
 
아티스트에게 사랑받는 3DS Max 우버쉐이더
아티스트에게 사랑받는 3DS Max 우버쉐이더아티스트에게 사랑받는 3DS Max 우버쉐이더
아티스트에게 사랑받는 3DS Max 우버쉐이더포프 김
 
Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...
Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...
Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...Daniel Barrero
 
김성훈 - 뛰어난 디버거가 되는 방법
김성훈 - 뛰어난 디버거가 되는 방법김성훈 - 뛰어난 디버거가 되는 방법
김성훈 - 뛰어난 디버거가 되는 방법성훈 김
 
언차티드4 테크아트 파트4 Special Case Materials - Moss & Wetness & Glass
언차티드4 테크아트 파트4 Special Case Materials - Moss & Wetness & Glass언차티드4 테크아트 파트4 Special Case Materials - Moss & Wetness & Glass
언차티드4 테크아트 파트4 Special Case Materials - Moss & Wetness & GlassDae Hyek KIM
 
Udk]static mesh & material
Udk]static mesh & materialUdk]static mesh & material
Udk]static mesh & materialYoung-jun Jeong
 
언차티드4 테크아트 파트5 Vertex Processing
언차티드4 테크아트 파트5 Vertex Processing언차티드4 테크아트 파트5 Vertex Processing
언차티드4 테크아트 파트5 Vertex ProcessingDae Hyek KIM
 
Margin trading and settlement of contracts an overview
Margin trading and settlement of contracts  an overviewMargin trading and settlement of contracts  an overview
Margin trading and settlement of contracts an overviewAshish Jain
 
[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기changehee lee
 

Andere mochten auch (20)

Screen Space Decals in Warhammer 40,000: Space Marine
Screen Space Decals in Warhammer 40,000: Space MarineScreen Space Decals in Warhammer 40,000: Space Marine
Screen Space Decals in Warhammer 40,000: Space Marine
 
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
 
OpenGL for 2015
OpenGL for 2015OpenGL for 2015
OpenGL for 2015
 
[2012 대학특강] 아티스트 + 프로그래머
[2012 대학특강] 아티스트 + 프로그래머[2012 대학특강] 아티스트 + 프로그래머
[2012 대학특강] 아티스트 + 프로그래머
 
Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based Rendering
 
My part-time fun.
My part-time fun.My part-time fun.
My part-time fun.
 
Algo presentation
Algo presentationAlgo presentation
Algo presentation
 
Stylized Rendering in Battlefield Heroes
Stylized Rendering in Battlefield HeroesStylized Rendering in Battlefield Heroes
Stylized Rendering in Battlefield Heroes
 
Big Data in Stock Exchange( HFT, Forex, Flash Crashes)
Big Data in Stock Exchange( HFT, Forex, Flash Crashes) Big Data in Stock Exchange( HFT, Forex, Flash Crashes)
Big Data in Stock Exchange( HFT, Forex, Flash Crashes)
 
Deferred decal
Deferred decalDeferred decal
Deferred decal
 
Masked Software Occlusion Culling
Masked Software Occlusion CullingMasked Software Occlusion Culling
Masked Software Occlusion Culling
 
아티스트에게 사랑받는 3DS Max 우버쉐이더
아티스트에게 사랑받는 3DS Max 우버쉐이더아티스트에게 사랑받는 3DS Max 우버쉐이더
아티스트에게 사랑받는 3DS Max 우버쉐이더
 
Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...
Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...
Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...
 
김성훈 - 뛰어난 디버거가 되는 방법
김성훈 - 뛰어난 디버거가 되는 방법김성훈 - 뛰어난 디버거가 되는 방법
김성훈 - 뛰어난 디버거가 되는 방법
 
언차티드4 테크아트 파트4 Special Case Materials - Moss & Wetness & Glass
언차티드4 테크아트 파트4 Special Case Materials - Moss & Wetness & Glass언차티드4 테크아트 파트4 Special Case Materials - Moss & Wetness & Glass
언차티드4 테크아트 파트4 Special Case Materials - Moss & Wetness & Glass
 
Hair in Tomb Raider
Hair in Tomb RaiderHair in Tomb Raider
Hair in Tomb Raider
 
Udk]static mesh & material
Udk]static mesh & materialUdk]static mesh & material
Udk]static mesh & material
 
언차티드4 테크아트 파트5 Vertex Processing
언차티드4 테크아트 파트5 Vertex Processing언차티드4 테크아트 파트5 Vertex Processing
언차티드4 테크아트 파트5 Vertex Processing
 
Margin trading and settlement of contracts an overview
Margin trading and settlement of contracts  an overviewMargin trading and settlement of contracts  an overview
Margin trading and settlement of contracts an overview
 
[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기
 

Ähnlich wie Relic's FX System

Unreal Engine Basics 06 - Animation, Audio, Visual Effects
Unreal Engine Basics 06 - Animation, Audio, Visual EffectsUnreal Engine Basics 06 - Animation, Audio, Visual Effects
Unreal Engine Basics 06 - Animation, Audio, Visual EffectsNick Pruehs
 
【Unite 2017 Tokyo】Unity最適化講座 ~スペシャリストが教えるメモリとCPU使用率の負担最小化テクニック~
【Unite 2017 Tokyo】Unity最適化講座 ~スペシャリストが教えるメモリとCPU使用率の負担最小化テクニック~【Unite 2017 Tokyo】Unity最適化講座 ~スペシャリストが教えるメモリとCPU使用率の負担最小化テクニック~
【Unite 2017 Tokyo】Unity最適化講座 ~スペシャリストが教えるメモリとCPU使用率の負担最小化テクニック~Unity Technologies Japan K.K.
 
GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay - M...
GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay - M...GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay - M...
GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay - M...Terrance Cohen
 
Shadow Warrior 2 and the evolution of the Roadhog Engine, GIC15
Shadow Warrior 2 and the evolution of the Roadhog Engine, GIC15Shadow Warrior 2 and the evolution of the Roadhog Engine, GIC15
Shadow Warrior 2 and the evolution of the Roadhog Engine, GIC15Jarosław Pleskot
 
Making a game with Molehill: Zombie Tycoon
Making a game with Molehill: Zombie TycoonMaking a game with Molehill: Zombie Tycoon
Making a game with Molehill: Zombie TycoonJean-Philippe Doiron
 
Killzone Shadow Fall: Threading the Entity Update on PS4
Killzone Shadow Fall: Threading the Entity Update on PS4Killzone Shadow Fall: Threading the Entity Update on PS4
Killzone Shadow Fall: Threading the Entity Update on PS4jrouwe
 
Cg shaders with Unity3D
Cg shaders with Unity3DCg shaders with Unity3D
Cg shaders with Unity3DMichael Ivanov
 
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...Unity Technologies
 
4,000 Adams at 90 Frames Per Second | Yi Fei Boon
4,000 Adams at 90 Frames Per Second | Yi Fei Boon4,000 Adams at 90 Frames Per Second | Yi Fei Boon
4,000 Adams at 90 Frames Per Second | Yi Fei BoonJessica Tams
 
Unity - Internals: memory and performance
Unity - Internals: memory and performanceUnity - Internals: memory and performance
Unity - Internals: memory and performanceCodemotion
 
GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay
GDC 2010 - A Dynamic Component Architecture for High Performance GameplayGDC 2010 - A Dynamic Component Architecture for High Performance Gameplay
GDC 2010 - A Dynamic Component Architecture for High Performance GameplayTerrance Cohen
 
[UniteKorea2013] The Unity Rendering Pipeline
[UniteKorea2013] The Unity Rendering Pipeline[UniteKorea2013] The Unity Rendering Pipeline
[UniteKorea2013] The Unity Rendering PipelineWilliam Hugo Yang
 
Bulk Export Tool for Alfresco
Bulk Export Tool for AlfrescoBulk Export Tool for Alfresco
Bulk Export Tool for AlfrescoRichard McKnight
 
Windows game development with Unity 5
Windows game development with Unity 5Windows game development with Unity 5
Windows game development with Unity 5Jiri Danihelka
 
SPU Physics
SPU PhysicsSPU Physics
SPU PhysicsSlide_N
 
affine transformation for computer graphics
affine transformation for computer graphicsaffine transformation for computer graphics
affine transformation for computer graphicsDrSUGANYADEVIK
 
Benoit fouletier guillaume martin unity day- modern 2 d techniques-gce2014
Benoit fouletier guillaume martin   unity day- modern 2 d techniques-gce2014Benoit fouletier guillaume martin   unity day- modern 2 d techniques-gce2014
Benoit fouletier guillaume martin unity day- modern 2 d techniques-gce2014Mary Chan
 
LLaMA_Final The Meta LLM Presentation.pptx
LLaMA_Final The Meta LLM Presentation.pptxLLaMA_Final The Meta LLM Presentation.pptx
LLaMA_Final The Meta LLM Presentation.pptxDr. Yasir Butt
 

Ähnlich wie Relic's FX System (20)

InfectNet Technical
InfectNet TechnicalInfectNet Technical
InfectNet Technical
 
Unreal Engine Basics 06 - Animation, Audio, Visual Effects
Unreal Engine Basics 06 - Animation, Audio, Visual EffectsUnreal Engine Basics 06 - Animation, Audio, Visual Effects
Unreal Engine Basics 06 - Animation, Audio, Visual Effects
 
【Unite 2017 Tokyo】Unity最適化講座 ~スペシャリストが教えるメモリとCPU使用率の負担最小化テクニック~
【Unite 2017 Tokyo】Unity最適化講座 ~スペシャリストが教えるメモリとCPU使用率の負担最小化テクニック~【Unite 2017 Tokyo】Unity最適化講座 ~スペシャリストが教えるメモリとCPU使用率の負担最小化テクニック~
【Unite 2017 Tokyo】Unity最適化講座 ~スペシャリストが教えるメモリとCPU使用率の負担最小化テクニック~
 
GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay - M...
GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay - M...GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay - M...
GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay - M...
 
Shadow Warrior 2 and the evolution of the Roadhog Engine, GIC15
Shadow Warrior 2 and the evolution of the Roadhog Engine, GIC15Shadow Warrior 2 and the evolution of the Roadhog Engine, GIC15
Shadow Warrior 2 and the evolution of the Roadhog Engine, GIC15
 
Making a game with Molehill: Zombie Tycoon
Making a game with Molehill: Zombie TycoonMaking a game with Molehill: Zombie Tycoon
Making a game with Molehill: Zombie Tycoon
 
Killzone Shadow Fall: Threading the Entity Update on PS4
Killzone Shadow Fall: Threading the Entity Update on PS4Killzone Shadow Fall: Threading the Entity Update on PS4
Killzone Shadow Fall: Threading the Entity Update on PS4
 
Cg shaders with Unity3D
Cg shaders with Unity3DCg shaders with Unity3D
Cg shaders with Unity3D
 
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...
 
4,000 Adams at 90 Frames Per Second | Yi Fei Boon
4,000 Adams at 90 Frames Per Second | Yi Fei Boon4,000 Adams at 90 Frames Per Second | Yi Fei Boon
4,000 Adams at 90 Frames Per Second | Yi Fei Boon
 
Unity - Internals: memory and performance
Unity - Internals: memory and performanceUnity - Internals: memory and performance
Unity - Internals: memory and performance
 
GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay
GDC 2010 - A Dynamic Component Architecture for High Performance GameplayGDC 2010 - A Dynamic Component Architecture for High Performance Gameplay
GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay
 
[UniteKorea2013] The Unity Rendering Pipeline
[UniteKorea2013] The Unity Rendering Pipeline[UniteKorea2013] The Unity Rendering Pipeline
[UniteKorea2013] The Unity Rendering Pipeline
 
Bulk Export Tool for Alfresco
Bulk Export Tool for AlfrescoBulk Export Tool for Alfresco
Bulk Export Tool for Alfresco
 
Windows game development with Unity 5
Windows game development with Unity 5Windows game development with Unity 5
Windows game development with Unity 5
 
SPU Physics
SPU PhysicsSPU Physics
SPU Physics
 
Far cry 3
Far cry 3Far cry 3
Far cry 3
 
affine transformation for computer graphics
affine transformation for computer graphicsaffine transformation for computer graphics
affine transformation for computer graphics
 
Benoit fouletier guillaume martin unity day- modern 2 d techniques-gce2014
Benoit fouletier guillaume martin   unity day- modern 2 d techniques-gce2014Benoit fouletier guillaume martin   unity day- modern 2 d techniques-gce2014
Benoit fouletier guillaume martin unity day- modern 2 d techniques-gce2014
 
LLaMA_Final The Meta LLM Presentation.pptx
LLaMA_Final The Meta LLM Presentation.pptxLLaMA_Final The Meta LLM Presentation.pptx
LLaMA_Final The Meta LLM Presentation.pptx
 

Kürzlich hochgeladen

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 

Kürzlich hochgeladen (20)

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

Relic's FX System

  • 1. Relic’s FX System: Making Big Battles Come Alive Daniel Barrero, PhD Senior Graphics Programmer Relic Entertainment - THQ Korea Game Conference – KGC 2012 – October 8 2012
  • 3. Relic’s FX System Lineage Direct Descendant Influenced By Custom Port
  • 4. FX System: More than a Few Good Particles • FX Systems are at the core particle systems, for our purposes we require it to: • Allow multiple particle types at the same time • Be Fast and scale performance based on available resources • Allow wildly different particle behaviors • Multiple ways to generate particles • Easy to use by content creators • Able to interact easily with gameplay • Be able to be used for wildly different types of game worlds
  • 5. Relic’s FX System Features • Broad variety of particle types • Hierarchical Particle System • Cascading FX (Trigger other FX and game actions) • FX Batching ( just 1 to 2 render calls to render everything ) • Multiple Particle Behavior environments • Lit particles • Soft/Volumetric Particles • Explicit draw particle order within a particle system • Forward and Deferred renderer support. • Automatic texture atlas generation on load • Animated texture support • Efficient memory management • In camera and Post-Processing FX
  • 6. System Architecture • Object oriented style system FX Type FX Combo FX Particle FX Emitters • FX Types hold the information for the effect, FX Objects are instanced based on that information when a FX gets triggered and hold the specific instance mutable state information.
  • 7. Hierarchical Particle System • The FX Combo type is one of the core building blocks of the hierarchical particle system. – It can have up to 8 children of any FX Type, including more combos.
  • 8. Hierarchical Particle System • The FX Combo type is one of the core building blocks of the hierarchical particle system. – It can have up to 8 children of any FX Type, including more combos. – It’s properties indicate how, when and where children are created.
  • 9. Hierarchical Particle System • The FX Combo type is one of the core building blocks of the hierarchical particle system. – It can have up to 8 children of any FX Type, including more combos. – It’s properties indicate how, when and where children are created. – Children properties with the same name as the combo are relative to it’s parent, similarly root combo properties are relative to the action or object that triggered the effect.
  • 10. Hierarchical Particle System • The second key building block of the hierarchical particle system is the ability for any FX Type other than a combo to trigger a single child effect of any other FX type.
  • 11. FX Particle Types • Standard Geometric Particles: • FX Ring: just a simple standard textured quad. • The most common type of particle. E.g. Smoke, Explosions, Clouds, Ground effects, UI…
  • 12. FX Particle Types • Standard Geometric Particles: • FX Beam: a long stripped rectangle that goes from a point of origin to a specific destination point following a curve. • E.g. a Laser beam
  • 13. FX Particle Types • Standard Geometric Particles: • FX Trail: A curved flat shape that follows the path created by the movement of the fx emitter. • E.g. A constantly growing ribbon like Homeworld engine trails
  • 14. FX Particle Types • Standard Geometric Particles: • FX Streamer: A long stripped rectangle that goes from a point of origin up in a given direction up to a given distance. • E.g. Laser sword or flame thrower.
  • 15. FX Particle Types • Standard Geometric Particles: • FX Mesh: Generates the indicated mesh and attaches to a particle that controls the look and position of the mesh. • Useful for debris, rockets, 3D UI elements,...
  • 16. Particle Types • Post-Processing and non directly visible particles: • FX Distortion : An axis aligned quad that applies a post- processing distortion effect mostly used to simulate heat and pressure waves. • FX Lens Flare : Generates a lens flare effect applied as a post-processing effect in the screen area covered by the effect. • FX Light: Generates a dynamic point light in the world for the duration of the effect. • FX Audio: Creates an audio source with the indicated sound at the particle position.
  • 17. Particle Rendering: Blend Modes • Having an explicit draw particle order within a particle system allows having per particle alpha blended or additive blending modes: Particle Particle Background Particle Screen Alpha Inv-Alpha Additive: + = Alpha Blend: * + * =
  • 18. FX Particle Types: Lighting • Lighting style affects particle triangulation. – E.g for a FX Ring: Geometry Render Unlit / Flat Lit (Pyramid)
  • 19. Particle Rendering: Orientation • Orientation relative to world or parent. • Billboarding: – Spherical – World Axis Constrained • Follow Terrain
  • 20. Particle Generation • A single FX Type can be triggered either directly or from other FX Types – E.g. a single ring. • Using the FX Spray type to generate sets of FX Types with a common given behavior. – E.g a column of smoke – FX Sprays can be spawned by any other FX Type
  • 21. Particle Behavior • FX Visuals are separate from specific FX behavior. FX Type FX Environment Animation Curves Simple Dynamics Full Physics Simulation • Each FX Type can have a different FX Environment allowing particles in a single effect to react differently to their environment.
  • 22. Particle Behavior • Animation Curves: – Any particle parameter can be animated using key framed animation.
  • 23. Particle Behavior • Simple Dynamics: – We use Newtonian physics and Verlet integration on all simulation environments to compute new particle positions. – For ground collisions we calculate collisions directly against the terrain height map. – For collisions against objects first collisions are computed against the animated bounding boxes then against the actual object polygons if precise intersections are requested. • Full Physics Simulation: – FX Meshes being standard world objects, are able to use the standard game physics (Havok) to compute precise collisions against the environment if set up to do so.
  • 24. Pipeline: FXEditor • FX Editor is where individual effects get created.
  • 25. Pipeline: Object Editor • FX get hooked up with game actions in this tool.
  • 26. Pipeline: Object Editor • FX get hooked up with game actions in this tool. – Allows triggering FX from game data and gameplay events using a Data-Command-Action pattern. • Is an event based state machine system that is completely data driven. • Allows attaching FX to markers in objects and to trigger other fx based on game states data.
  • 27. Making it Fast • Problem: There can be thousands of particles of different types, blending modes and textures that need to be created and updated every frame. • Straight forward approach to render each particle separately produces too many render calls and context switches. • Updating and generating so many particles can take a lot of time in the CPU
  • 28. Making it Fast • Solution to reduce CPU cost: – Keep particle dynamics as simple as possible: • That means fake complex physics behaviors as much as possible with simple particle animations as much as possible and only use physics simulation for particles that really need it. – Multithread the particle update • Every frame the FX Manager spawns as many jobs as there are root FX Objects (FX Objects with no other FX Type as parent).
  • 29. Making it Fast: Batching • Solution to Render Cost: Batch Particles • Add all particle triangles to a single dynamic fat vertex and index buffers regardless of particle type. • Dynamic vertex buffer works as a circular buffer. • We do only 1 or 2 render calls per frame for all effects combined! (max 21845 particle triangles per render call)
  • 30. Making it Fast : Batching • Solution to Render Cost: Batch Particle • Pack FX textures in a texture atlas at load time to use a single shader and avoid texture switches. • Texture atlas is a cube map in d3d9 level HW
  • 31. Making it Fast : Batching • Supporting different modes in the same shader pass and using a unique blend state: – FX Textures are all pre-multiplied alpha. – Blend state is set to a custom additive + blend state: – Screen Color = Particle Color + Screen Color * Particle Alpha • Use separate alpha blend state: – Screen Color = Particle Alpha * Inv Particle Alpha + Screen Alpha
  • 32. Making it Fast: Batching • Supporting different modes in the same shader pass and using a unique blend state: – In shader code we compute the particle color and alpha depending on blend mode requested:
  • 33. Making it Fast : Deferred Rendering • Render in a buffer the nearest and furthest depth values during the depth pre-pass or the GBuffer pass. • Render the FX on a separate lower res buffer using alpha blending using the near and far values to determine if an effect should be drawn in the buffer or not. • Blend the FX buffer as full screen post- processing pass.
  • 34. Making it Fast : Weather FX • Besides the hierarchical system there is a specific separate System just for weather FX: – Solve a very specific problem in a very efficient way: • Falling Rain and Snow • Rain Splashes – Can be implemented in the CPU or completely on the GPU on recent hardware
  • 35. Making it Fast : Weather FX
  • 36. Making it Fast : Weather FX Observations: • Rain drops are only visible when close to the camera: • Particles only need to be computed inside the view frustum close to the camera: • Easier to reuse particles thus simplifying memory management by using a circular buffer for the particles. • There is really only one type of particle needed • Textured Quads
  • 37. Making it Fast : Weather FX Observations (cont): • It is really hard to see what specific falling drop produce a specific splash on an object at normal speed: • Means falling rain and rain splashes can use different non interdependant techiques for particle generation.
  • 38. Making it Fast : Weather FX Falling Rain and Snow Overall algorithm: • First Emit particles on an area in top of the view frustum and close to the camera.
  • 39. Making it Fast : Weather FX Falling Rain and Snow Overall algorithm: • First Emit particles on an area in top of the view frustum and close to the camera. • Calculate new positions for all particles
  • 40. Making it Fast : Weather FX Falling Rain and Snow Overall algorithm: • First Emit particles on an area in top of the view frustum and close to the camera. • Calculate new positions for all particles • If particle is outside of the view volume mark as dead and reuse. • Problem: moving the camera will show more particles on one side until new particles are generated on the side of the direction of the movement.
  • 41. Making it Fast : Weather FX Falling Rain and Snow Overall algorithm: • Solution: treat particles as an animated volumetric texture • If a particle goes out of the volume in one of the sides, just change the position as if it wrapped around the other side of the volume.
  • 42. Making it Fast : Weather FX • Volume particle tiling CPU code: • Volume particle tiling GPU (Vertex Shader) code
  • 43. Making it Fast : Weather FX Falling Rain and Snow Overall algorithm: • Solution: treat particles as an animated volumetric texture • If a particle goes out of the volume in one of the sides, just change the position as if it wrapped around the other side of the volume. • If a particle goes out of the volume in the bottom then reuse as a new particle.
  • 44. Optimizations: Weather FX • Rain Splashes algorithm • Also treats splashes as an animated volumetric texture that tiles in world space.
  • 45. Optimizations: Weather FX • Rain Splashes algorithm • Generate random positions on the horizontal plane instead of the top of the camera:
  • 46. Optimizations: Weather FX • Rain Splashes algorithm • Generate random positions on the horizontal plane instead of the top of the camera. • Trace a ray at that particle point from a high altitude and find first intersection with the terrain or objects allowed to have splashes. • Emit Splash particle at that point.
  • 47. Optimizations: Weather FX • Problem: If camera moves then splashes would move over the terrain. • Solution: Let splash particles generated play their animation while they are visible by the camera once dead or out of the view frustum reuse for new particle in another position.
  • 48. Acknowledgements • Thanks to all the great FX Artists that keep pushing the limit of what the FX system can do and keep us busy with more ideas of how to make it better. • Thanks to all the countless programmers that have worked on the FX System its tools and pipeline over the years.
  • 49. Thank you • Questions? • Contact Information: • daniel.barrero@gmail.com • http://danielbarrero.com

Hinweis der Redaktion

  1. Add images of each type and some details of how each is implemented
  2. Add images of each type and some details of how each is implemented
  3. Add images of each type and some details of how each is implemented
  4. Add images of each type and some details of how each is implemented
  5. Add images of each type and some details of how each is implemented
  6. Add images of each type and some details of how each is implemented
  7. Video of rain splashes here