SlideShare a Scribd company logo
Presentation
Sponsored By:
CMAAOutline Sketch
• Diablo3
• Heroes of the Storm
• + Many others
Render
Geo
Blur
Use Original
Image as Mask
• Visible through Walls/Bushes
-> Need occlusion
• Sword Tip / Armpit
-> Distance rather than Blur
• Floating Objects
-> Depth Based Opacity
-> Disable for small objects
• Looks Brighter in distance
-> Distance based fade
• Need Movement/Less “Gamey”
-> Magic Scroll Texture
Main Render:
• Fill Pass: After Transparency
Post Processing:
• Horizontal / Vertical passes
• Final Apply Pass
• Gameplay assigns one of
31 tags
• Flag: Disable Depth Fade
• Uses Shadow Geometry
• Alpha Tested & Depth
Tested
• Read 9 Samples
• Scan for first non-zero
sample
• Pack tag, flag &
xDist into 16-bit unorm
• Read 9 Vertical Samples
• Unpack sample
• Choose sample with
smallest distance2
• Pack nearest Sample
into16-unorm
• For Given Pixel Fetch:
• Original Tag
• Vertical Results (Flags, Tag, xDist (Dx), yDist (Dy))
• Current Depth (Cz)
• Magic Scroll (texture matrix * screen coord) (S)
• If No Tag or Tags match (i.e. inside) -> Reject.
• Unpack Data
• Use xDist/yDist to get original depth (Oz)
• Lookup Color and Opacity (Ta) for tag
• Calculate Final Opacity
• Apply to frame buffer with alpha blend.
sat 2𝑇𝑎 𝑆 sat 𝐶𝑧 − 𝑂𝑧 1 −
𝐷 𝑥
5
2
+
𝐷 𝑦
5
2
𝑃 𝑛+ 𝑃 𝑓−𝑃 𝑛 sat
1
𝐹 𝑓−𝐹 𝑛
𝑂 𝑧−
𝐹 𝑛
𝐹 𝑓−𝐹 𝑛
Tuneables:
Pn: Fade power when near
Pf: Fade power at distance
Fn: Close distance
Ff: Far distance
Gameplay
Fade Magic
Scroll
Texture
Depth
Based
Opacity
Distance Falloff
Camera Distance
Adjustment
0
0.2
0.4
0.6
0 0.2 0.4 0.6 0.8 1
Falloff Near
Falloff Far
• Interaction between objects:
– Need to take depth into account when choosing closest.
• Small Objects
• Special Geo to handle transparency
• Performance Optimization on Low-Sku’s/Older Hardware
• SSAA Interaction (Reduces pixel width)
• Colorblind Support (6.1)
• Wanted to extend AA Options
• Wanted to bring AA to more players
• Imaged based
• Low Memory Overhead
• Performant
• Minimal Code Impact
• Developed by Filip Strugar at Intel.
• Details, Paper and Example:
https://software.intel.com/en-us/articles/conservative-morphological-anti-aliasing-cmaa-update
• 3 Passes at ½ Render Size + Final full-size pass
• Input: Color Buffer.
• Output: Partially updated Color Buffer.
• Edge Buffers: 2 Render Size R8_UNORM UAV’s
(Ping/Pong)
• Working Color: 1 Render Size UAV in target format
(RGBA8)
• Mini Edge: ½ Render Size RGBA8_UINT render target
• ½ Render Size D16 depth buffer
• with read-write and read-only views
• Extended with additional texture formats:
• R8_UNORM
• RGBA8888_UINT.
• Added ImageBuffer(UAV) Support:
• Added ImageBuffer Object like FrameBuffer Object
-> Want to combine
• Added uint texture clear support (For edge buffers).
• CMAA requires read-only depth buffer view
• Added Read-Only flag to Texture Object and FrameBuffer Object
• Both views created and stored on Texture Object
• CMAA depth optimization requires different
depth values per pass:
• Set in vertex shader constant.
• CMAA Shaders were taken from example code
• Minor modification to Varying Structure.
• CMAA is not AFR Friendly!
• Currently brute-force solved with extra clears
Boardwalk
Venture Bay
Grizzly Hills
(Missing Edges &
Swimming)
Stairs
Lower City
Shattrath
(Swimming)
Stairs
The Unbound Thicket
Crystalsong Forest
(Missing Edges)
Improve Edge Detection
• Use of depth & normal
information
• Look at diagonal pixels
instead of neighbors
• Use angle information
as well as magnitude
Improve Stability Under Movement
• Decay edge strength
over n frames
• Edge detect normal buffers
• Use camera speed
to adjust edge thresholds
• Use velocity
to widen kernel/blur strength.
Patch 6.1 Adds 2x Super Sampling + CMAA Mode
Diablo 3 Open Cinematic
• 3 passes
• Input: Color + Linear Depth
• Resources:
• Luminance Buffer: R16_UNORM (Full Res)
• Edge Buffer: RG16F (Full Res)
• Tone Map: RGBA8_UNORM (1/4 height/width)
• Read 9 bilinear
color & depth samples
• Convert color to luminance
• Box filter applied to first 4 luminance
samples and store in luminance (L)
• Calculate 𝐺 𝑥, 𝐺 𝑦 for each group of 4 samples
• Calculate G, cos 𝜃 using averages.
• Apply Boost to Gradient: 𝐺′ = 𝑘𝐺 𝑝
• 𝐷𝑒𝑝𝑡ℎ𝐸𝑑𝑔𝑒 = sat 0.25 cos 𝜃 + 𝐺 𝑘
• Store (G(Luminance), DepthEdge(De)) in Edge buffer
𝐺 𝑥 =
+1 0
0 −1
𝐺 𝑦 =
0 +1
−1 0
𝐺 = 𝐺 𝑥
2
+ 𝐺 𝑦
2
tan 𝜃 =
𝐺 𝑦
𝐺 𝑥
Luminance Edges Depth Edges
• Blur Luminance Buffer (2x2 Box Filter)
• Apply Gamma Curve (Art Derived Value)
• Convert adjusted luminance to RGB
• 3rd degree polynomial per channel
• Artist defined 3 points of desired color
• Used Excel to fit polynomial curve.
• Store (color (T), adjusted luminance(L’))
Color Tone Map Adjusted Luminance
• Sample tonemap, edge results, overlay texture (O) &
original color buffer (C) (transitions)
• Look created from successive lerps:
• Stain Effect: Fill Color
• Outline ink: Heavier edges between objects
• Detail ink: Smaller edges made from lighter pen strokes picking up
internals of object
• Overlay Mask: To create border
• Transition: Time based linear fade in/out
𝑆𝑡𝑎𝑖𝑛 𝐸𝑓𝑓𝑒𝑐𝑡 =
2𝑂𝑇 𝐿′ < 0.5
1 − 2 1 − 𝑂 1 − 𝑇 𝐿′ ≥ 0.5
𝐷𝑒𝑡𝑎𝑖𝑙 = lerp 𝑆𝑡𝑎𝑖𝑛 𝐸𝑓𝑓𝑒𝑐𝑡, 𝐷𝑒𝑡𝑎𝑖𝑙 𝐼𝑛𝑘 𝐶𝑜𝑙𝑜𝑟, 𝐺(𝐿𝑢𝑚𝑖𝑛𝑎𝑛𝑐𝑒)
𝑂𝑢𝑡𝑙𝑖𝑛𝑒 = lerp 𝐷𝑒𝑡𝑎𝑖𝑙, 𝑂𝑢𝑡𝑙𝑖𝑛𝑒 𝐼𝑛𝑘 𝐶𝑜𝑙𝑜𝑟, 𝐷𝑒 𝑘 𝑟𝑔𝑏
𝑂𝑣𝑒𝑟𝑙𝑎𝑦 = lerp 𝑂𝑢𝑡𝑙𝑖𝑛𝑒, 𝑂 𝑟𝑔𝑏, 𝑂𝑎
𝐹𝑖𝑛𝑎𝑙 = lerp 𝐶, 𝑂𝑣𝑒𝑟𝑙𝑎𝑦, 𝑡
http://carrers.blizzard.com/
http://www.intel.com/jobs

More Related Content

What's hot

Authoring of procedural rocks in The Blacksmith realtime short
Authoring of procedural rocks in The Blacksmith realtime shortAuthoring of procedural rocks in The Blacksmith realtime short
Authoring of procedural rocks in The Blacksmith realtime short
Vesselin Efremov
 
Killzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Killzone Shadow Fall: Creating Art Tools For A New Generation Of GamesKillzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Killzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Guerrilla
 
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
Electronic Arts / DICE
 
HPG 2018 - Game Ray Tracing: State-of-the-Art and Open Problems
HPG 2018 - Game Ray Tracing: State-of-the-Art and Open ProblemsHPG 2018 - Game Ray Tracing: State-of-the-Art and Open Problems
HPG 2018 - Game Ray Tracing: State-of-the-Art and Open Problems
Electronic Arts / DICE
 
Screen Space Reflections in The Surge
Screen Space Reflections in The SurgeScreen Space Reflections in The Surge
Screen Space Reflections in The Surge
Michele Giacalone
 
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
Electronic Arts / DICE
 
Past, Present and Future Challenges of Global Illumination in Games
Past, Present and Future Challenges of Global Illumination in GamesPast, Present and Future Challenges of Global Illumination in Games
Past, Present and Future Challenges of Global Illumination in Games
Colin Barré-Brisebois
 
Physically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in FrostbitePhysically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in Frostbite
Electronic Arts / DICE
 
Semantic-Aware Sky Replacement (SIGGRAPH 2016)
Semantic-Aware Sky Replacement (SIGGRAPH 2016)Semantic-Aware Sky Replacement (SIGGRAPH 2016)
Semantic-Aware Sky Replacement (SIGGRAPH 2016)
Yi-Hsuan Tsai
 
DrawingML Introduction
DrawingML IntroductionDrawingML Introduction
DrawingML Introduction
Shawn Villaron
 
Programmable Piplelines
Programmable PiplelinesProgrammable Piplelines
Programmable Piplelines
Syed Zaid Irshad
 
Google Chrome DevTools: Rendering & Memory profiling on Open Academy 2013
Google Chrome DevTools: Rendering & Memory profiling on Open Academy 2013Google Chrome DevTools: Rendering & Memory profiling on Open Academy 2013
Google Chrome DevTools: Rendering & Memory profiling on Open Academy 2013
Máté Nádasdi
 
Z Buffer Optimizations
Z Buffer OptimizationsZ Buffer Optimizations
Z Buffer Optimizationspjcozzi
 
Deferred shading
Deferred shadingDeferred shading
Deferred shading
ozlael ozlael
 

What's hot (14)

Authoring of procedural rocks in The Blacksmith realtime short
Authoring of procedural rocks in The Blacksmith realtime shortAuthoring of procedural rocks in The Blacksmith realtime short
Authoring of procedural rocks in The Blacksmith realtime short
 
Killzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Killzone Shadow Fall: Creating Art Tools For A New Generation Of GamesKillzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Killzone Shadow Fall: Creating Art Tools For A New Generation Of Games
 
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
 
HPG 2018 - Game Ray Tracing: State-of-the-Art and Open Problems
HPG 2018 - Game Ray Tracing: State-of-the-Art and Open ProblemsHPG 2018 - Game Ray Tracing: State-of-the-Art and Open Problems
HPG 2018 - Game Ray Tracing: State-of-the-Art and Open Problems
 
Screen Space Reflections in The Surge
Screen Space Reflections in The SurgeScreen Space Reflections in The Surge
Screen Space Reflections in The Surge
 
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
 
Past, Present and Future Challenges of Global Illumination in Games
Past, Present and Future Challenges of Global Illumination in GamesPast, Present and Future Challenges of Global Illumination in Games
Past, Present and Future Challenges of Global Illumination in Games
 
Physically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in FrostbitePhysically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in Frostbite
 
Semantic-Aware Sky Replacement (SIGGRAPH 2016)
Semantic-Aware Sky Replacement (SIGGRAPH 2016)Semantic-Aware Sky Replacement (SIGGRAPH 2016)
Semantic-Aware Sky Replacement (SIGGRAPH 2016)
 
DrawingML Introduction
DrawingML IntroductionDrawingML Introduction
DrawingML Introduction
 
Programmable Piplelines
Programmable PiplelinesProgrammable Piplelines
Programmable Piplelines
 
Google Chrome DevTools: Rendering & Memory profiling on Open Academy 2013
Google Chrome DevTools: Rendering & Memory profiling on Open Academy 2013Google Chrome DevTools: Rendering & Memory profiling on Open Academy 2013
Google Chrome DevTools: Rendering & Memory profiling on Open Academy 2013
 
Z Buffer Optimizations
Z Buffer OptimizationsZ Buffer Optimizations
Z Buffer Optimizations
 
Deferred shading
Deferred shadingDeferred shading
Deferred shading
 

Similar to Edge detection-based post-processing in Warlords of Draenor

Paris Master Class 2011 - 05 Post-Processing Pipeline
Paris Master Class 2011 - 05 Post-Processing PipelineParis Master Class 2011 - 05 Post-Processing Pipeline
Paris Master Class 2011 - 05 Post-Processing Pipeline
Wolfgang Engel
 
Unit 11. Graphics
Unit 11. GraphicsUnit 11. Graphics
Unit 11. Graphics
Ashim Lamichhane
 
A modern Post-Processing Pipeline
A modern Post-Processing PipelineA modern Post-Processing Pipeline
A modern Post-Processing Pipeline
Wolfgang Engel
 
A new Post-Processing Pipeline
A new Post-Processing PipelineA new Post-Processing Pipeline
A new Post-Processing Pipeline
Wolfgang Engel
 
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unity Technologies
 
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
Electronic Arts / DICE
 
Buffers
BuffersBuffers
Paris Master Class 2011 - 01 Deferred Lighting, MSAA
Paris Master Class 2011 - 01 Deferred Lighting, MSAAParis Master Class 2011 - 01 Deferred Lighting, MSAA
Paris Master Class 2011 - 01 Deferred Lighting, MSAA
Wolfgang Engel
 
Digitization Basics for Archives and Special Collections – Part 1: Select and...
Digitization Basics for Archives and Special Collections – Part 1: Select and...Digitization Basics for Archives and Special Collections – Part 1: Select and...
Digitization Basics for Archives and Special Collections – Part 1: Select and...
WiLS
 
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
MLReview
 
OpenGL Shading Language
OpenGL Shading LanguageOpenGL Shading Language
OpenGL Shading Language
Jungsoo Nam
 
Graphics Primitives and CG Display Devices
Graphics Primitives and CG Display DevicesGraphics Primitives and CG Display Devices
Graphics Primitives and CG Display Devices
DIPIKA83
 
[UniteKorea2013] The Unity Rendering Pipeline
[UniteKorea2013] The Unity Rendering Pipeline[UniteKorea2013] The Unity Rendering Pipeline
[UniteKorea2013] The Unity Rendering Pipeline
William Hugo Yang
 
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
Daosheng Mu
 
DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3
Electronic Arts / DICE
 
Smedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphicsSmedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphicschangehee lee
 
fundamentals of Computer graphics(Computer graphics tutorials)
 fundamentals of Computer graphics(Computer graphics tutorials) fundamentals of Computer graphics(Computer graphics tutorials)
fundamentals of Computer graphics(Computer graphics tutorials)
Daroko blog(www.professionalbloggertricks.com)
 
Destruction Masking in Frostbite 2 using Volume Distance Fields
Destruction Masking in Frostbite 2 using Volume Distance FieldsDestruction Masking in Frostbite 2 using Volume Distance Fields
Destruction Masking in Frostbite 2 using Volume Distance Fields
Electronic Arts / DICE
 
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
Jarosław Pleskot
 

Similar to Edge detection-based post-processing in Warlords of Draenor (20)

Paris Master Class 2011 - 05 Post-Processing Pipeline
Paris Master Class 2011 - 05 Post-Processing PipelineParis Master Class 2011 - 05 Post-Processing Pipeline
Paris Master Class 2011 - 05 Post-Processing Pipeline
 
Light prepass
Light prepassLight prepass
Light prepass
 
Unit 11. Graphics
Unit 11. GraphicsUnit 11. Graphics
Unit 11. Graphics
 
A modern Post-Processing Pipeline
A modern Post-Processing PipelineA modern Post-Processing Pipeline
A modern Post-Processing Pipeline
 
A new Post-Processing Pipeline
A new Post-Processing PipelineA new Post-Processing Pipeline
A new Post-Processing Pipeline
 
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
 
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
 
Buffers
BuffersBuffers
Buffers
 
Paris Master Class 2011 - 01 Deferred Lighting, MSAA
Paris Master Class 2011 - 01 Deferred Lighting, MSAAParis Master Class 2011 - 01 Deferred Lighting, MSAA
Paris Master Class 2011 - 01 Deferred Lighting, MSAA
 
Digitization Basics for Archives and Special Collections – Part 1: Select and...
Digitization Basics for Archives and Special Collections – Part 1: Select and...Digitization Basics for Archives and Special Collections – Part 1: Select and...
Digitization Basics for Archives and Special Collections – Part 1: Select and...
 
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
 
OpenGL Shading Language
OpenGL Shading LanguageOpenGL Shading Language
OpenGL Shading Language
 
Graphics Primitives and CG Display Devices
Graphics Primitives and CG Display DevicesGraphics Primitives and CG Display Devices
Graphics Primitives and CG Display Devices
 
[UniteKorea2013] The Unity Rendering Pipeline
[UniteKorea2013] The Unity Rendering Pipeline[UniteKorea2013] The Unity Rendering Pipeline
[UniteKorea2013] The Unity Rendering Pipeline
 
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
 
DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3
 
Smedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphicsSmedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphics
 
fundamentals of Computer graphics(Computer graphics tutorials)
 fundamentals of Computer graphics(Computer graphics tutorials) fundamentals of Computer graphics(Computer graphics tutorials)
fundamentals of Computer graphics(Computer graphics tutorials)
 
Destruction Masking in Frostbite 2 using Volume Distance Fields
Destruction Masking in Frostbite 2 using Volume Distance FieldsDestruction Masking in Frostbite 2 using Volume Distance Fields
Destruction Masking in Frostbite 2 using Volume Distance Fields
 
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
 

Recently uploaded

Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 

Recently uploaded (20)

Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 

Edge detection-based post-processing in Warlords of Draenor

  • 3.
  • 4. • Diablo3 • Heroes of the Storm • + Many others
  • 6. • Visible through Walls/Bushes -> Need occlusion • Sword Tip / Armpit -> Distance rather than Blur • Floating Objects -> Depth Based Opacity -> Disable for small objects • Looks Brighter in distance -> Distance based fade • Need Movement/Less “Gamey” -> Magic Scroll Texture
  • 7. Main Render: • Fill Pass: After Transparency Post Processing: • Horizontal / Vertical passes • Final Apply Pass
  • 8. • Gameplay assigns one of 31 tags • Flag: Disable Depth Fade • Uses Shadow Geometry • Alpha Tested & Depth Tested
  • 9. • Read 9 Samples • Scan for first non-zero sample • Pack tag, flag & xDist into 16-bit unorm
  • 10. • Read 9 Vertical Samples • Unpack sample • Choose sample with smallest distance2 • Pack nearest Sample into16-unorm
  • 11. • For Given Pixel Fetch: • Original Tag • Vertical Results (Flags, Tag, xDist (Dx), yDist (Dy)) • Current Depth (Cz) • Magic Scroll (texture matrix * screen coord) (S) • If No Tag or Tags match (i.e. inside) -> Reject. • Unpack Data • Use xDist/yDist to get original depth (Oz) • Lookup Color and Opacity (Ta) for tag • Calculate Final Opacity • Apply to frame buffer with alpha blend.
  • 12. sat 2𝑇𝑎 𝑆 sat 𝐶𝑧 − 𝑂𝑧 1 − 𝐷 𝑥 5 2 + 𝐷 𝑦 5 2 𝑃 𝑛+ 𝑃 𝑓−𝑃 𝑛 sat 1 𝐹 𝑓−𝐹 𝑛 𝑂 𝑧− 𝐹 𝑛 𝐹 𝑓−𝐹 𝑛 Tuneables: Pn: Fade power when near Pf: Fade power at distance Fn: Close distance Ff: Far distance Gameplay Fade Magic Scroll Texture Depth Based Opacity Distance Falloff Camera Distance Adjustment 0 0.2 0.4 0.6 0 0.2 0.4 0.6 0.8 1 Falloff Near Falloff Far
  • 13.
  • 14. • Interaction between objects: – Need to take depth into account when choosing closest. • Small Objects • Special Geo to handle transparency • Performance Optimization on Low-Sku’s/Older Hardware • SSAA Interaction (Reduces pixel width) • Colorblind Support (6.1)
  • 15.
  • 16. • Wanted to extend AA Options • Wanted to bring AA to more players • Imaged based • Low Memory Overhead • Performant • Minimal Code Impact
  • 17. • Developed by Filip Strugar at Intel. • Details, Paper and Example: https://software.intel.com/en-us/articles/conservative-morphological-anti-aliasing-cmaa-update • 3 Passes at ½ Render Size + Final full-size pass • Input: Color Buffer. • Output: Partially updated Color Buffer.
  • 18. • Edge Buffers: 2 Render Size R8_UNORM UAV’s (Ping/Pong) • Working Color: 1 Render Size UAV in target format (RGBA8) • Mini Edge: ½ Render Size RGBA8_UINT render target • ½ Render Size D16 depth buffer • with read-write and read-only views
  • 19.
  • 20. • Extended with additional texture formats: • R8_UNORM • RGBA8888_UINT. • Added ImageBuffer(UAV) Support: • Added ImageBuffer Object like FrameBuffer Object -> Want to combine • Added uint texture clear support (For edge buffers). • CMAA requires read-only depth buffer view • Added Read-Only flag to Texture Object and FrameBuffer Object • Both views created and stored on Texture Object
  • 21. • CMAA depth optimization requires different depth values per pass: • Set in vertex shader constant. • CMAA Shaders were taken from example code • Minor modification to Varying Structure. • CMAA is not AFR Friendly! • Currently brute-force solved with extra clears
  • 22.
  • 23. Boardwalk Venture Bay Grizzly Hills (Missing Edges & Swimming) Stairs Lower City Shattrath (Swimming) Stairs The Unbound Thicket Crystalsong Forest (Missing Edges)
  • 24.
  • 25. Improve Edge Detection • Use of depth & normal information • Look at diagonal pixels instead of neighbors • Use angle information as well as magnitude Improve Stability Under Movement • Decay edge strength over n frames • Edge detect normal buffers • Use camera speed to adjust edge thresholds • Use velocity to widen kernel/blur strength. Patch 6.1 Adds 2x Super Sampling + CMAA Mode
  • 26.
  • 27. Diablo 3 Open Cinematic
  • 28.
  • 29. • 3 passes • Input: Color + Linear Depth • Resources: • Luminance Buffer: R16_UNORM (Full Res) • Edge Buffer: RG16F (Full Res) • Tone Map: RGBA8_UNORM (1/4 height/width)
  • 30. • Read 9 bilinear color & depth samples • Convert color to luminance • Box filter applied to first 4 luminance samples and store in luminance (L)
  • 31. • Calculate 𝐺 𝑥, 𝐺 𝑦 for each group of 4 samples • Calculate G, cos 𝜃 using averages. • Apply Boost to Gradient: 𝐺′ = 𝑘𝐺 𝑝 • 𝐷𝑒𝑝𝑡ℎ𝐸𝑑𝑔𝑒 = sat 0.25 cos 𝜃 + 𝐺 𝑘 • Store (G(Luminance), DepthEdge(De)) in Edge buffer 𝐺 𝑥 = +1 0 0 −1 𝐺 𝑦 = 0 +1 −1 0 𝐺 = 𝐺 𝑥 2 + 𝐺 𝑦 2 tan 𝜃 = 𝐺 𝑦 𝐺 𝑥
  • 33. • Blur Luminance Buffer (2x2 Box Filter) • Apply Gamma Curve (Art Derived Value) • Convert adjusted luminance to RGB • 3rd degree polynomial per channel • Artist defined 3 points of desired color • Used Excel to fit polynomial curve. • Store (color (T), adjusted luminance(L’))
  • 34. Color Tone Map Adjusted Luminance
  • 35. • Sample tonemap, edge results, overlay texture (O) & original color buffer (C) (transitions) • Look created from successive lerps: • Stain Effect: Fill Color • Outline ink: Heavier edges between objects • Detail ink: Smaller edges made from lighter pen strokes picking up internals of object • Overlay Mask: To create border • Transition: Time based linear fade in/out
  • 36. 𝑆𝑡𝑎𝑖𝑛 𝐸𝑓𝑓𝑒𝑐𝑡 = 2𝑂𝑇 𝐿′ < 0.5 1 − 2 1 − 𝑂 1 − 𝑇 𝐿′ ≥ 0.5 𝐷𝑒𝑡𝑎𝑖𝑙 = lerp 𝑆𝑡𝑎𝑖𝑛 𝐸𝑓𝑓𝑒𝑐𝑡, 𝐷𝑒𝑡𝑎𝑖𝑙 𝐼𝑛𝑘 𝐶𝑜𝑙𝑜𝑟, 𝐺(𝐿𝑢𝑚𝑖𝑛𝑎𝑛𝑐𝑒) 𝑂𝑢𝑡𝑙𝑖𝑛𝑒 = lerp 𝐷𝑒𝑡𝑎𝑖𝑙, 𝑂𝑢𝑡𝑙𝑖𝑛𝑒 𝐼𝑛𝑘 𝐶𝑜𝑙𝑜𝑟, 𝐷𝑒 𝑘 𝑟𝑔𝑏 𝑂𝑣𝑒𝑟𝑙𝑎𝑦 = lerp 𝑂𝑢𝑡𝑙𝑖𝑛𝑒, 𝑂 𝑟𝑔𝑏, 𝑂𝑎 𝐹𝑖𝑛𝑎𝑙 = lerp 𝐶, 𝑂𝑣𝑒𝑟𝑙𝑎𝑦, 𝑡
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.