SlideShare une entreprise Scribd logo
1  sur  31
Felwyrld




   Alex Nankervis
anankervis@gmail.com
Overview
• Graphical MUD tech-demo
  – Targets 256 players per server machine
• Large world (50km x 50km)
  – Static and dynamically placed content
  – Lots of work for the renderer
• OpenGL, OpenAL + Ogg/Vorbis,
  OpenSSL, zlib, WinSock/enet, DirectInput
Server
• AI, player records, world state, chat system
• Low bandwidth
   – Client side prediction (extrapolation)
   – Server side prediction of client’s predicted state
       • Updates clients only when potentially out of sync
   – Client views
   – Compression
   – Quantization
       • Coordinate system relative to client view
• CPU usage
   – Dynamic spawning around clients
       • Unpopulated areas inactive
• Encrypted login
Render Overview
• Z pre-pass
   – Draw only to depth buffer, no color output
   – Reduces overdraw, used for occlusion queries
• Issue occlusion queries
• CPU rendering work
   – Kill time while waiting on occlusion queries
   – Visibility, detail meshes, clouds, animation
• Retrieve occlusion queries
   – Finish visibility testing
• Draw models, trees, terrain, sky dome, particles
• Post processing
   – Lighting
• UI and overlays
Visibility Testing
• Quad tree
   – Rejects large groups of trees and terrain quickly
   – Cached to disk
       • Load time and memory allocation optimization
• Occlusion queries
   – Reject hidden objects
       • Quad tree blocks
       • Terrain blocks
       • Tree bounding boxes
           – Full detail trees, only
   – A win under heavy loads
       • Requires careful scheduling to maintain pipelining of GPU
           – Mix CPU/GPU work, retrieve query results after some time
           – Or, delay reading the query result until a later frame
Trees
• Several tree templates
   – Instanced as 1,000,000 total trees
   – Placed during terrain generation
• 7km draw distance
• Up to 60,000 drawn per frame
Tree Generation
• Tweak parameters for
  different tree types
   –   Overall shape
   –   Branch twisting
   –   Leaf distribution
   –   Random variation
• Start at trunk(s), work
  recursively to leaves
Tree Rendering
• Branches
  – One vertex buffer
      • Stored in order of importance
      • LOD by truncating index list
  – Wind animation
      • Branches bend and sway in the wind
• Leaves
  – One vertex buffer, no index buffer
      • Stored in shuffled random order
      • LOD by truncating removes random leaves
  – Camera-aligned quads
  – Wind animation
      • Quads rotated in vertex program
  – Static shadowing and color variation
      • Darker near center and bottom of tree
Tree LOD
• Branches and leaves removed over
  distance
• Billboards
  – Texture contains tree from 16 angles
  – Lighting
  – Transition draws mix of tree geometry
    and billboard
  – Immediate vs. system array vs. VBO
     • Similar performance
     • Immediate is easiest and fastest
     • VBO is future proof
Terrain
• 50km x 50km at ~12 meter resolution
  – 4097x4097 heightfield
  – Unlimited draw distance
• Hierarchy of 33x33 patches
  – Matches quad tree layout
  – Vertices, texture list, two blend textures
  – Topology same for every block
     • One set of indices
Terrain Creation
• Rivers, mountain ranges, deserts
• Driven by simple climate map
• Perlin Noise
  – Modified by image filters
• Created as a pre-process
  – ~20 minutes
• Outputs
  –   Heightfield
  –   Normal map
  –   Texture blend maps
  –   Tree placement
Terrain Paging
• Single vs. multiple files
• Eviction policy
   – Unused blocks deallocated over time
   – Video memory
   – System memory
Terrain Coordinates
• Relative coordinate system
   – Most geometry drawn relative to camera
      • Double precision camera
   – Counters precision errors
      • Jittery vertices or texture sampling
Terrain Lighting
• Lighting
  – Sun + sky lookup
  – Normals in half-resolution texture map
     • Bilinear filtering from half resolution gives better
       results than vertex normals
     • Much lower memory usage
        – Compresses well
     • Detail normal maps
Terrain Texturing
• Texture splatting
  – Two blend textures
     • Up to 8 detail textures per block
  – Blend factors modified by noise
     • Increases apparent detail
  – Detail textures are sampled at two rates
     • Near and far detail
  – Result modulated by half-resolution color map
     • Pre-rendered
     • Breaks up uniformity
     • Can control terrain appearance at arbitrary locations
Terrain LOD
• LOD by distance
  – Draw higher levels of the quad tree
    • Still 33x33 blocks, but each block contains the
      area of 4, 16, 64, etc. lowest LOD blocks
Terrain LOD Seams
• Seams hidden by vertical 'skirt‘
  –   Drop edge vertices
  –   Rendering is simple and fast
  –   Not visible to user
  –   No complicated processing or logic
Bushes, Grass, Rocks
• Uniform grid of blocks around the camera
  – Each block contains ~1000 detail meshes
  – Meshes batched together into a single VBO
  – Blocks generated from a seed number
    • Created as needed
    • Revisited blocks will be the same
    • Evicted similar to terrain blocks
• Wind sway through vertex program
• Frustum culling at block level
Sky Dome
• Sky color lookup
  – Time of day and angle
• Sun color lookup
• Sunset flare
• Matches fog and sky lighting for geometry
  – Fogs seamlessly into the horizon
Clouds
• 32 unique clouds
   – Instanced 8 times each
   – Based on work by Mark Harris
   – Lit particle system
• Lighting calculation
   – Fast pre-process
      • Once per unique cloud when light changes
      • Spread over multiple frames
   – Handles any number of lights plus ambient
      • Felwyrld uses just one, the sun
   – GPU vs. CPU
      • Fast, special purpose CPU rasterizer best
          – Improvement over original approach
          – Allows real-time lighting updates
Cloud Rendering
• Full detail
   – For close clouds
   – Requires roughly sorted particles
       • Update sorting only when significantly off
   – Camera can be inside cloud
• Billboards
   – For distant clouds
   – Billboard updated as needed
       • Angle to viewer has changed beyond a threshold
   – Can’t tell the difference
Water
• Basic bump / specular
  – Multiple detail normal maps based on
    distance
• Water fogging
  – Fades out around shoreline and objects
  – Uses scene depth texture
    • Distance to nearest object along view vector
Characters
• Skinned animation
   – Extends to attached objects
• Death effect
   – 3D texture animates a burn sequence
   – Works with all game models
      • No extra artist work
Particles
• Simple particle system
  – Designed for speed
  – Only moderate flexibility
• Particle rotation uses vertex program
  – Less CPU work
UI
• Basic UI
  – Controls inherit from template interfaces
    • Basic element, value control
  – Container, Text Box, List Box, Slider, Spin,
    Button, Check Box, Icon, Tool-tip
  – Maintains hierarchy of elements
    • Draw order
    • Input and updates
Deferred Rendering
• Lighting and fogging done as a post process
  – Objects output color, normal, and depth (implicit)
  – Full screen pass processes each stored pixel
  – Fog color matches sky color
• Works well with unified lighting model
  – One place to adjust lighting, easier to maintain
  – All objects fit together
  – Unique lighting models per-object harder
• ~15% speed up due to less overdraw
Deferred Issues 1
• GL_RGBA8 for best performance
  – No noticeable quality hit for Felwyrld
     • But not always good enough
         – Normals, quality of faked AA
  – Need 3 textures
     • Color
     • Eye space normal
         – Can be two components with derived Z
     • Depth (24-bit depth + 8-bit stencil)
         – Not explicitly output, acts as hardware depth
           buffer
Deferred Issues 2
• MRT best with smaller, same-width
  formats
  – Bandwidth
  – Repeat fragment program execution
  – Smaller formats also faster to sample
• MSAA issues
  – Many potential solutions
     • Involve tradeoffs in speed, simplicity, and
       quality
Performance Measurement
• GPU / CPU counters and labels
  – GL_EXT_timer_query

Contenu connexe

Tendances

CEDEC 2018 - Towards Effortless Photorealism Through Real-Time Raytracing
CEDEC 2018 - Towards Effortless Photorealism Through Real-Time RaytracingCEDEC 2018 - Towards Effortless Photorealism Through Real-Time Raytracing
CEDEC 2018 - Towards Effortless Photorealism Through Real-Time RaytracingElectronic Arts / DICE
 
【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意
【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意
【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意UnityTechnologiesJapan002
 
【Unite 2018 Tokyo】プログレッシブライトマッパーの真価を発揮する秘訣
【Unite 2018 Tokyo】プログレッシブライトマッパーの真価を発揮する秘訣【Unite 2018 Tokyo】プログレッシブライトマッパーの真価を発揮する秘訣
【Unite 2018 Tokyo】プログレッシブライトマッパーの真価を発揮する秘訣Unity Technologies Japan K.K.
 
Lightmapping for beginners- Unite Copenhagen 2019
Lightmapping for beginners- Unite Copenhagen 2019Lightmapping for beginners- Unite Copenhagen 2019
Lightmapping for beginners- Unite Copenhagen 2019Unity Technologies
 
Sound and light by Muhammad Fahad Ansari 12IEEM14
Sound and light by Muhammad Fahad Ansari 12IEEM14Sound and light by Muhammad Fahad Ansari 12IEEM14
Sound and light by Muhammad Fahad Ansari 12IEEM14fahadansari131
 
Real-time Edge-aware Image Processing with the Bilateral Grid
Real-time Edge-aware Image Processing with the Bilateral GridReal-time Edge-aware Image Processing with the Bilateral Grid
Real-time Edge-aware Image Processing with the Bilateral GridMLReview
 
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time RenderingDD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time RenderingElectronic Arts / DICE
 
One day short course on Green Building Assessment Methods - Daylight Simulation
One day short course on Green Building Assessment Methods - Daylight SimulationOne day short course on Green Building Assessment Methods - Daylight Simulation
One day short course on Green Building Assessment Methods - Daylight Simulationekwtsang
 
iDigBio Presentation - Botany 2012
iDigBio Presentation - Botany 2012iDigBio Presentation - Botany 2012
iDigBio Presentation - Botany 2012Mike Giddens
 
Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2ozlael ozlael
 
Eurocon2009 Apalkov
Eurocon2009 ApalkovEurocon2009 Apalkov
Eurocon2009 ApalkovKhryashchev
 
Classification of Fonts and Calligraphy Styles based on Complex Wavelet Trans...
Classification of Fonts and Calligraphy Styles based on Complex Wavelet Trans...Classification of Fonts and Calligraphy Styles based on Complex Wavelet Trans...
Classification of Fonts and Calligraphy Styles based on Complex Wavelet Trans...Alican Bozkurt
 
An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...
An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...
An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...Codemotion
 
Audio noise reduction techniques
Audio  noise  reduction  techniquesAudio  noise  reduction  techniques
Audio noise reduction techniquesMeenakshi Singhvi
 
task of lighnting
task of lighntingtask of lighnting
task of lighntingsahnaz35
 

Tendances (17)

CEDEC 2018 - Towards Effortless Photorealism Through Real-Time Raytracing
CEDEC 2018 - Towards Effortless Photorealism Through Real-Time RaytracingCEDEC 2018 - Towards Effortless Photorealism Through Real-Time Raytracing
CEDEC 2018 - Towards Effortless Photorealism Through Real-Time Raytracing
 
【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意
【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意
【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意
 
【Unite 2018 Tokyo】プログレッシブライトマッパーの真価を発揮する秘訣
【Unite 2018 Tokyo】プログレッシブライトマッパーの真価を発揮する秘訣【Unite 2018 Tokyo】プログレッシブライトマッパーの真価を発揮する秘訣
【Unite 2018 Tokyo】プログレッシブライトマッパーの真価を発揮する秘訣
 
Lightmapping for beginners- Unite Copenhagen 2019
Lightmapping for beginners- Unite Copenhagen 2019Lightmapping for beginners- Unite Copenhagen 2019
Lightmapping for beginners- Unite Copenhagen 2019
 
Sound and light by Muhammad Fahad Ansari 12IEEM14
Sound and light by Muhammad Fahad Ansari 12IEEM14Sound and light by Muhammad Fahad Ansari 12IEEM14
Sound and light by Muhammad Fahad Ansari 12IEEM14
 
Real-time Edge-aware Image Processing with the Bilateral Grid
Real-time Edge-aware Image Processing with the Bilateral GridReal-time Edge-aware Image Processing with the Bilateral Grid
Real-time Edge-aware Image Processing with the Bilateral Grid
 
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time RenderingDD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
 
One day short course on Green Building Assessment Methods - Daylight Simulation
One day short course on Green Building Assessment Methods - Daylight SimulationOne day short course on Green Building Assessment Methods - Daylight Simulation
One day short course on Green Building Assessment Methods - Daylight Simulation
 
iDigBio Presentation - Botany 2012
iDigBio Presentation - Botany 2012iDigBio Presentation - Botany 2012
iDigBio Presentation - Botany 2012
 
Introduction to TLS Workflow Presentation
Introduction to TLS Workflow PresentationIntroduction to TLS Workflow Presentation
Introduction to TLS Workflow Presentation
 
Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2
 
Presentation2
Presentation2Presentation2
Presentation2
 
Eurocon2009 Apalkov
Eurocon2009 ApalkovEurocon2009 Apalkov
Eurocon2009 Apalkov
 
Classification of Fonts and Calligraphy Styles based on Complex Wavelet Trans...
Classification of Fonts and Calligraphy Styles based on Complex Wavelet Trans...Classification of Fonts and Calligraphy Styles based on Complex Wavelet Trans...
Classification of Fonts and Calligraphy Styles based on Complex Wavelet Trans...
 
An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...
An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...
An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...
 
Audio noise reduction techniques
Audio  noise  reduction  techniquesAudio  noise  reduction  techniques
Audio noise reduction techniques
 
task of lighnting
task of lighntingtask of lighnting
task of lighnting
 

En vedette

SPU Assisted Rendering
SPU Assisted RenderingSPU Assisted Rendering
SPU Assisted RenderingSteven Tovey
 
Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3stevemcauley
 
Oculus Rift Developer Kit 2 and Latency Mitigation techniques
Oculus Rift Developer Kit 2 and Latency Mitigation techniquesOculus Rift Developer Kit 2 and Latency Mitigation techniques
Oculus Rift Developer Kit 2 and Latency Mitigation techniquesCass Everitt
 
Shadow Mapping with Today's OpenGL Hardware
Shadow Mapping with Today's OpenGL HardwareShadow Mapping with Today's OpenGL Hardware
Shadow Mapping with Today's OpenGL HardwareMark Kilgard
 
Gpuフォトンマッピング手法 h26-09-kgussan-第2回レイトレ合宿
Gpuフォトンマッピング手法 h26-09-kgussan-第2回レイトレ合宿Gpuフォトンマッピング手法 h26-09-kgussan-第2回レイトレ合宿
Gpuフォトンマッピング手法 h26-09-kgussan-第2回レイトレ合宿Takahiro KOGUCHI
 
5 Major Challenges in Real-time Rendering (2012)
5 Major Challenges in Real-time Rendering (2012)5 Major Challenges in Real-time Rendering (2012)
5 Major Challenges in Real-time Rendering (2012)Electronic Arts / DICE
 
Out-of-Core Construction of Sparse Voxel Octrees
Out-of-Core Construction of Sparse Voxel OctreesOut-of-Core Construction of Sparse Voxel Octrees
Out-of-Core Construction of Sparse Voxel OctreesJeroen Baert
 
ボリュームレンダリング入門
ボリュームレンダリング入門ボリュームレンダリング入門
ボリュームレンダリング入門Hisanari Otsu
 
双方向パストレーシングレンダラedubpt解説
双方向パストレーシングレンダラedubpt解説双方向パストレーシングレンダラedubpt解説
双方向パストレーシングレンダラedubpt解説h013
 
レイトレ合宿2!! 3分間アピールプレゼン―Pocol
レイトレ合宿2!! 3分間アピールプレゼン―Pocolレイトレ合宿2!! 3分間アピールプレゼン―Pocol
レイトレ合宿2!! 3分間アピールプレゼン―PocolProjectAsura
 
物理ベースレンダラedupt解説
物理ベースレンダラedupt解説物理ベースレンダラedupt解説
物理ベースレンダラedupt解説h013
 
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
 
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
 
フォトンマッピング入門
フォトンマッピング入門フォトンマッピング入門
フォトンマッピング入門Shuichi Hayashi
 
Player Traversal Mechanics in the Vast World of Horizon Zero Dawn
Player Traversal Mechanics in the Vast World of Horizon Zero DawnPlayer Traversal Mechanics in the Vast World of Horizon Zero Dawn
Player Traversal Mechanics in the Vast World of Horizon Zero DawnGuerrilla
 

En vedette (19)

iOS OpenGL
iOS OpenGLiOS OpenGL
iOS OpenGL
 
SPU Assisted Rendering
SPU Assisted RenderingSPU Assisted Rendering
SPU Assisted Rendering
 
Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3
 
Oculus Rift Developer Kit 2 and Latency Mitigation techniques
Oculus Rift Developer Kit 2 and Latency Mitigation techniquesOculus Rift Developer Kit 2 and Latency Mitigation techniques
Oculus Rift Developer Kit 2 and Latency Mitigation techniques
 
Shadow Mapping with Today's OpenGL Hardware
Shadow Mapping with Today's OpenGL HardwareShadow Mapping with Today's OpenGL Hardware
Shadow Mapping with Today's OpenGL Hardware
 
Gpuフォトンマッピング手法 h26-09-kgussan-第2回レイトレ合宿
Gpuフォトンマッピング手法 h26-09-kgussan-第2回レイトレ合宿Gpuフォトンマッピング手法 h26-09-kgussan-第2回レイトレ合宿
Gpuフォトンマッピング手法 h26-09-kgussan-第2回レイトレ合宿
 
5 Major Challenges in Real-time Rendering (2012)
5 Major Challenges in Real-time Rendering (2012)5 Major Challenges in Real-time Rendering (2012)
5 Major Challenges in Real-time Rendering (2012)
 
Out-of-Core Construction of Sparse Voxel Octrees
Out-of-Core Construction of Sparse Voxel OctreesOut-of-Core Construction of Sparse Voxel Octrees
Out-of-Core Construction of Sparse Voxel Octrees
 
実践QBVH
実践QBVH実践QBVH
実践QBVH
 
Stochastic Screen-Space Reflections
Stochastic Screen-Space ReflectionsStochastic Screen-Space Reflections
Stochastic Screen-Space Reflections
 
ボリュームレンダリング入門
ボリュームレンダリング入門ボリュームレンダリング入門
ボリュームレンダリング入門
 
双方向パストレーシングレンダラedubpt解説
双方向パストレーシングレンダラedubpt解説双方向パストレーシングレンダラedubpt解説
双方向パストレーシングレンダラedubpt解説
 
レイトレ合宿2!! 3分間アピールプレゼン―Pocol
レイトレ合宿2!! 3分間アピールプレゼン―Pocolレイトレ合宿2!! 3分間アピールプレゼン―Pocol
レイトレ合宿2!! 3分間アピールプレゼン―Pocol
 
Lighting the City of Glass
Lighting the City of GlassLighting the City of Glass
Lighting the City of Glass
 
物理ベースレンダラedupt解説
物理ベースレンダラedupt解説物理ベースレンダラedupt解説
物理ベースレンダラedupt解説
 
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
 
FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in Frostbite
 
フォトンマッピング入門
フォトンマッピング入門フォトンマッピング入門
フォトンマッピング入門
 
Player Traversal Mechanics in the Vast World of Horizon Zero Dawn
Player Traversal Mechanics in the Vast World of Horizon Zero DawnPlayer Traversal Mechanics in the Vast World of Horizon Zero Dawn
Player Traversal Mechanics in the Vast World of Horizon Zero Dawn
 

Similaire à Felwyrld Tech

Terrain in Battlefield 3: A Modern, Complete and Scalable System
Terrain in Battlefield 3: A Modern, Complete and Scalable SystemTerrain in Battlefield 3: A Modern, Complete and Scalable System
Terrain in Battlefield 3: A Modern, Complete and Scalable SystemElectronic Arts / DICE
 
DSD-INT 2018 Realtime classification of lidar pointclouds - Pronk
DSD-INT 2018 Realtime classification of lidar pointclouds - PronkDSD-INT 2018 Realtime classification of lidar pointclouds - Pronk
DSD-INT 2018 Realtime classification of lidar pointclouds - PronkDeltares
 
Photogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontPhotogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontElectronic Arts / DICE
 
Decima Engine: Visibility in Horizon Zero Dawn
Decima Engine: Visibility in Horizon Zero DawnDecima Engine: Visibility in Horizon Zero Dawn
Decima Engine: Visibility in Horizon Zero DawnGuerrilla
 
Terrain Rendering using GPU-Based Geometry Clipmaps
Terrain Rendering usingGPU-Based Geometry ClipmapsTerrain Rendering usingGPU-Based Geometry Clipmaps
Terrain Rendering using GPU-Based Geometry Clipmapsnone299359
 
Modern Graphics Pipeline Overview
Modern Graphics Pipeline OverviewModern Graphics Pipeline Overview
Modern Graphics Pipeline Overviewslantsixgames
 
AMBER presentation
AMBER presentationAMBER presentation
AMBER presentationGiorgio Orsi
 
Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Tiago Sousa
 
Using Imagery in ArcGIS
Using Imagery in ArcGISUsing Imagery in ArcGIS
Using Imagery in ArcGISEsri
 
Deferred Lighting and Post Processing on PLAYSTATION®3
Deferred Lighting and Post Processing on PLAYSTATION®3Deferred Lighting and Post Processing on PLAYSTATION®3
Deferred Lighting and Post Processing on PLAYSTATION®3Slide_N
 
HiPEAC 2019 Workshop - Use Cases
HiPEAC 2019 Workshop - Use CasesHiPEAC 2019 Workshop - Use Cases
HiPEAC 2019 Workshop - Use CasesTulipp. Eu
 
The Technology Behind the DirectX 11 Unreal Engine"Samaritan" Demo
The Technology Behind the DirectX 11 Unreal Engine"Samaritan" DemoThe Technology Behind the DirectX 11 Unreal Engine"Samaritan" Demo
The Technology Behind the DirectX 11 Unreal Engine"Samaritan" Demodrandom
 
Epic_GDC2011_Samaritan
Epic_GDC2011_SamaritanEpic_GDC2011_Samaritan
Epic_GDC2011_SamaritanMinGeun Park
 
The Next Generation of PhyreEngine
The Next Generation of PhyreEngineThe Next Generation of PhyreEngine
The Next Generation of PhyreEngineSlide_N
 
Building Worlds - Codebits
Building Worlds - CodebitsBuilding Worlds - Codebits
Building Worlds - CodebitsFilipe Varela
 
Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...
Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...
Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...Aritra Sarkar
 
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
 
[Unite Seoul 2020] Mobile Graphics Best Practices for Artists
[Unite Seoul 2020] Mobile Graphics Best Practices for Artists[Unite Seoul 2020] Mobile Graphics Best Practices for Artists
[Unite Seoul 2020] Mobile Graphics Best Practices for ArtistsOwen Wu
 

Similaire à Felwyrld Tech (20)

Terrain in Battlefield 3: A Modern, Complete and Scalable System
Terrain in Battlefield 3: A Modern, Complete and Scalable SystemTerrain in Battlefield 3: A Modern, Complete and Scalable System
Terrain in Battlefield 3: A Modern, Complete and Scalable System
 
Deferred shading
Deferred shadingDeferred shading
Deferred shading
 
DSD-INT 2018 Realtime classification of lidar pointclouds - Pronk
DSD-INT 2018 Realtime classification of lidar pointclouds - PronkDSD-INT 2018 Realtime classification of lidar pointclouds - Pronk
DSD-INT 2018 Realtime classification of lidar pointclouds - Pronk
 
Photogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontPhotogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars Battlefront
 
Decima Engine: Visibility in Horizon Zero Dawn
Decima Engine: Visibility in Horizon Zero DawnDecima Engine: Visibility in Horizon Zero Dawn
Decima Engine: Visibility in Horizon Zero Dawn
 
Real-time lightmap baking
Real-time lightmap bakingReal-time lightmap baking
Real-time lightmap baking
 
Terrain Rendering using GPU-Based Geometry Clipmaps
Terrain Rendering usingGPU-Based Geometry ClipmapsTerrain Rendering usingGPU-Based Geometry Clipmaps
Terrain Rendering using GPU-Based Geometry Clipmaps
 
Modern Graphics Pipeline Overview
Modern Graphics Pipeline OverviewModern Graphics Pipeline Overview
Modern Graphics Pipeline Overview
 
AMBER presentation
AMBER presentationAMBER presentation
AMBER presentation
 
Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)
 
Using Imagery in ArcGIS
Using Imagery in ArcGISUsing Imagery in ArcGIS
Using Imagery in ArcGIS
 
Deferred Lighting and Post Processing on PLAYSTATION®3
Deferred Lighting and Post Processing on PLAYSTATION®3Deferred Lighting and Post Processing on PLAYSTATION®3
Deferred Lighting and Post Processing on PLAYSTATION®3
 
HiPEAC 2019 Workshop - Use Cases
HiPEAC 2019 Workshop - Use CasesHiPEAC 2019 Workshop - Use Cases
HiPEAC 2019 Workshop - Use Cases
 
The Technology Behind the DirectX 11 Unreal Engine"Samaritan" Demo
The Technology Behind the DirectX 11 Unreal Engine"Samaritan" DemoThe Technology Behind the DirectX 11 Unreal Engine"Samaritan" Demo
The Technology Behind the DirectX 11 Unreal Engine"Samaritan" Demo
 
Epic_GDC2011_Samaritan
Epic_GDC2011_SamaritanEpic_GDC2011_Samaritan
Epic_GDC2011_Samaritan
 
The Next Generation of PhyreEngine
The Next Generation of PhyreEngineThe Next Generation of PhyreEngine
The Next Generation of PhyreEngine
 
Building Worlds - Codebits
Building Worlds - CodebitsBuilding Worlds - Codebits
Building Worlds - Codebits
 
Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...
Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...
Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...
 
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
 
[Unite Seoul 2020] Mobile Graphics Best Practices for Artists
[Unite Seoul 2020] Mobile Graphics Best Practices for Artists[Unite Seoul 2020] Mobile Graphics Best Practices for Artists
[Unite Seoul 2020] Mobile Graphics Best Practices for Artists
 

Dernier

Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
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
 
[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
 
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
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
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
 

Dernier (20)

Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
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
 
[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
 
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
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
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
 

Felwyrld Tech

  • 1. Felwyrld Alex Nankervis anankervis@gmail.com
  • 2. Overview • Graphical MUD tech-demo – Targets 256 players per server machine • Large world (50km x 50km) – Static and dynamically placed content – Lots of work for the renderer • OpenGL, OpenAL + Ogg/Vorbis, OpenSSL, zlib, WinSock/enet, DirectInput
  • 3.
  • 4.
  • 5. Server • AI, player records, world state, chat system • Low bandwidth – Client side prediction (extrapolation) – Server side prediction of client’s predicted state • Updates clients only when potentially out of sync – Client views – Compression – Quantization • Coordinate system relative to client view • CPU usage – Dynamic spawning around clients • Unpopulated areas inactive • Encrypted login
  • 6. Render Overview • Z pre-pass – Draw only to depth buffer, no color output – Reduces overdraw, used for occlusion queries • Issue occlusion queries • CPU rendering work – Kill time while waiting on occlusion queries – Visibility, detail meshes, clouds, animation • Retrieve occlusion queries – Finish visibility testing • Draw models, trees, terrain, sky dome, particles • Post processing – Lighting • UI and overlays
  • 7. Visibility Testing • Quad tree – Rejects large groups of trees and terrain quickly – Cached to disk • Load time and memory allocation optimization • Occlusion queries – Reject hidden objects • Quad tree blocks • Terrain blocks • Tree bounding boxes – Full detail trees, only – A win under heavy loads • Requires careful scheduling to maintain pipelining of GPU – Mix CPU/GPU work, retrieve query results after some time – Or, delay reading the query result until a later frame
  • 8. Trees • Several tree templates – Instanced as 1,000,000 total trees – Placed during terrain generation • 7km draw distance • Up to 60,000 drawn per frame
  • 9. Tree Generation • Tweak parameters for different tree types – Overall shape – Branch twisting – Leaf distribution – Random variation • Start at trunk(s), work recursively to leaves
  • 10. Tree Rendering • Branches – One vertex buffer • Stored in order of importance • LOD by truncating index list – Wind animation • Branches bend and sway in the wind • Leaves – One vertex buffer, no index buffer • Stored in shuffled random order • LOD by truncating removes random leaves – Camera-aligned quads – Wind animation • Quads rotated in vertex program – Static shadowing and color variation • Darker near center and bottom of tree
  • 11. Tree LOD • Branches and leaves removed over distance • Billboards – Texture contains tree from 16 angles – Lighting – Transition draws mix of tree geometry and billboard – Immediate vs. system array vs. VBO • Similar performance • Immediate is easiest and fastest • VBO is future proof
  • 12. Terrain • 50km x 50km at ~12 meter resolution – 4097x4097 heightfield – Unlimited draw distance • Hierarchy of 33x33 patches – Matches quad tree layout – Vertices, texture list, two blend textures – Topology same for every block • One set of indices
  • 13. Terrain Creation • Rivers, mountain ranges, deserts • Driven by simple climate map • Perlin Noise – Modified by image filters • Created as a pre-process – ~20 minutes • Outputs – Heightfield – Normal map – Texture blend maps – Tree placement
  • 14. Terrain Paging • Single vs. multiple files • Eviction policy – Unused blocks deallocated over time – Video memory – System memory
  • 15. Terrain Coordinates • Relative coordinate system – Most geometry drawn relative to camera • Double precision camera – Counters precision errors • Jittery vertices or texture sampling
  • 16. Terrain Lighting • Lighting – Sun + sky lookup – Normals in half-resolution texture map • Bilinear filtering from half resolution gives better results than vertex normals • Much lower memory usage – Compresses well • Detail normal maps
  • 17. Terrain Texturing • Texture splatting – Two blend textures • Up to 8 detail textures per block – Blend factors modified by noise • Increases apparent detail – Detail textures are sampled at two rates • Near and far detail – Result modulated by half-resolution color map • Pre-rendered • Breaks up uniformity • Can control terrain appearance at arbitrary locations
  • 18. Terrain LOD • LOD by distance – Draw higher levels of the quad tree • Still 33x33 blocks, but each block contains the area of 4, 16, 64, etc. lowest LOD blocks
  • 19. Terrain LOD Seams • Seams hidden by vertical 'skirt‘ – Drop edge vertices – Rendering is simple and fast – Not visible to user – No complicated processing or logic
  • 20. Bushes, Grass, Rocks • Uniform grid of blocks around the camera – Each block contains ~1000 detail meshes – Meshes batched together into a single VBO – Blocks generated from a seed number • Created as needed • Revisited blocks will be the same • Evicted similar to terrain blocks • Wind sway through vertex program • Frustum culling at block level
  • 21. Sky Dome • Sky color lookup – Time of day and angle • Sun color lookup • Sunset flare • Matches fog and sky lighting for geometry – Fogs seamlessly into the horizon
  • 22. Clouds • 32 unique clouds – Instanced 8 times each – Based on work by Mark Harris – Lit particle system • Lighting calculation – Fast pre-process • Once per unique cloud when light changes • Spread over multiple frames – Handles any number of lights plus ambient • Felwyrld uses just one, the sun – GPU vs. CPU • Fast, special purpose CPU rasterizer best – Improvement over original approach – Allows real-time lighting updates
  • 23. Cloud Rendering • Full detail – For close clouds – Requires roughly sorted particles • Update sorting only when significantly off – Camera can be inside cloud • Billboards – For distant clouds – Billboard updated as needed • Angle to viewer has changed beyond a threshold – Can’t tell the difference
  • 24. Water • Basic bump / specular – Multiple detail normal maps based on distance • Water fogging – Fades out around shoreline and objects – Uses scene depth texture • Distance to nearest object along view vector
  • 25. Characters • Skinned animation – Extends to attached objects • Death effect – 3D texture animates a burn sequence – Works with all game models • No extra artist work
  • 26. Particles • Simple particle system – Designed for speed – Only moderate flexibility • Particle rotation uses vertex program – Less CPU work
  • 27. UI • Basic UI – Controls inherit from template interfaces • Basic element, value control – Container, Text Box, List Box, Slider, Spin, Button, Check Box, Icon, Tool-tip – Maintains hierarchy of elements • Draw order • Input and updates
  • 28. Deferred Rendering • Lighting and fogging done as a post process – Objects output color, normal, and depth (implicit) – Full screen pass processes each stored pixel – Fog color matches sky color • Works well with unified lighting model – One place to adjust lighting, easier to maintain – All objects fit together – Unique lighting models per-object harder • ~15% speed up due to less overdraw
  • 29. Deferred Issues 1 • GL_RGBA8 for best performance – No noticeable quality hit for Felwyrld • But not always good enough – Normals, quality of faked AA – Need 3 textures • Color • Eye space normal – Can be two components with derived Z • Depth (24-bit depth + 8-bit stencil) – Not explicitly output, acts as hardware depth buffer
  • 30. Deferred Issues 2 • MRT best with smaller, same-width formats – Bandwidth – Repeat fragment program execution – Smaller formats also faster to sample • MSAA issues – Many potential solutions • Involve tradeoffs in speed, simplicity, and quality
  • 31. Performance Measurement • GPU / CPU counters and labels – GL_EXT_timer_query