The document discusses techniques for generating decals in a single pass using the geometry shader and stream out. It describes problems with using physics collision meshes to generate decals and proposes extracting decal geometry directly from visual meshes using the geometry shader. Key steps include culling and transforming relevant triangles into a decal buffer using stream out. This allows transferring UV sets and clipping decals while minimizing CPU overhead. Performance and buffer usage are also covered.
Rendering Technologies from Crysis 3 (GDC 2013)Tiago Sousa
This talk covers changes in CryENGINE 3 technology during 2012, with DX11 related topics such as moving to deferred rendering while maintaining backward compatibility on a multiplatform engine, massive vegetation rendering, MSAA support and how to deal with its common visual artifacts, among other topics.
Optimizing the Graphics Pipeline with Compute, GDC 2016Graham Wihlidal
With further advancement in the current console cycle, new tricks are being learned to squeeze the maximum performance out of the hardware. This talk will present how the compute power of the console and PC GPUs can be used to improve the triangle throughput beyond the limits of the fixed function hardware. The discussed method shows a way to perform efficient "just-in-time" optimization of geometry, and opens the way for per-primitive filtering kernels and procedural geometry processing.
Takeaway:
Attendees will learn how to preprocess geometry on-the-fly per frame to improve rendering performance and efficiency.
Intended Audience:
This presentation is targeting seasoned graphics developers. Experience with DirectX 12 and GCN is recommended, but not required.
Rendering Technologies from Crysis 3 (GDC 2013)Tiago Sousa
This talk covers changes in CryENGINE 3 technology during 2012, with DX11 related topics such as moving to deferred rendering while maintaining backward compatibility on a multiplatform engine, massive vegetation rendering, MSAA support and how to deal with its common visual artifacts, among other topics.
Optimizing the Graphics Pipeline with Compute, GDC 2016Graham Wihlidal
With further advancement in the current console cycle, new tricks are being learned to squeeze the maximum performance out of the hardware. This talk will present how the compute power of the console and PC GPUs can be used to improve the triangle throughput beyond the limits of the fixed function hardware. The discussed method shows a way to perform efficient "just-in-time" optimization of geometry, and opens the way for per-primitive filtering kernels and procedural geometry processing.
Takeaway:
Attendees will learn how to preprocess geometry on-the-fly per frame to improve rendering performance and efficiency.
Intended Audience:
This presentation is targeting seasoned graphics developers. Experience with DirectX 12 and GCN is recommended, but not required.
Secrets of CryENGINE 3 Graphics TechnologyTiago Sousa
In this talk, the authors will describe an overview of a different method for deferred lighting approach used in CryENGINE 3, along with an in-depth description of the many techniques used. Original file and videos at http://crytek.com/cryengine/presentations
Bindless Deferred Decals in The Surge 2Philip Hammer
These are the slides for my talk at Digital Dragons 2019 in Krakow.
Update: The recordings are online on youtube now:
https://www.youtube.com/watch?v=e2wPMqWETj8
A description of the next-gen rendering technique called Triangle Visibility Buffer. It offers up to 10x - 20x geometry compared to Deferred rendering and much higher resolution. Generally it aligns better with memory access patterns in modern GPUs compared to Deferred Lighting like Clustered Deferred Lighting etc.
Talk by Graham Wihlidal (Frostbite Labs) at GDC 2017.
Checkerboard rendering is a relatively new technique, popularized recently by the introduction of the PlayStation 4 Pro. Many modern game engines are adding support for it right now, and in this talk, Graham will present an in-depth look at the new implementation in Frostbite, which is used in shipping titles like 'Battlefield 1' and 'Mass Effect Andromeda'. Despite being conceptually simple, checkerboard rendering requires a deep integration into the post-processing chain, in particular temporal anti-aliasing, dynamic resolution scaling, and poses various challenges to existing effects. This presentation will cover the basics of checkerboard rendering, explain the impact on a game engine that powers a wide range of titles, and provide a detailed look at how the current implementation in Frostbite works, including topics like object id, alpha unrolling, gradient adjust, and a highly efficient depth resolve.
Taking Killzone Shadow Fall Image Quality Into The Next GenerationGuerrilla
This talk focuses on the technical side of Killzone Shadow Fall, the platform exclusive launch title for PlayStation 4.
We present the details of several new techniques that were developed in the quest for next generation image quality, and the talk uses key locations from the game as examples. We discuss interesting aspects of the new content pipeline, next-gen lighting engine, usage of indirect lighting and various shadow rendering optimizations. We also describe the details of volumetric lighting, the real-time reflections system, and the new anti-aliasing solution, and include some details about the image-quality driven streaming system. A common, very important, theme of the talk is the temporal coherency and how it was utilized to reduce aliasing, and improve the rendering quality and image stability above the baseline 1080p resolution seen in other games.
Original slides at: http://crytek.com/cryengine/presentations
For Crysis 2, the R&D team at Crytek created the third iteration of CryENGINE. This lecture covers various topics related to Crytek’s latest engine iteration. Tiago Sousa provides an overview of the rendering pipeline, and the successful transition to a multiplatform friendly deferred lighting approach; how gamma-correct HDR rendering and its multiplatform details have been handled, with a focus on performance and quality. Other topics include deferred lighting techniques such as efficiently handling skin-rendering, and overcoming alpha-blending problems for hair/fur rendering for current-generation hardware; water-rendering and dynamic interaction; batched HDR post-processing; and how AA was handled. The lecture also includes multiplatform comparisons on final image quality, optimization strategies, and performance analysis insights. It also unveils the DX11 implementation of certain features.
The presentation describes Physically Based Lighting Pipeline of Killzone : Shadow Fall - Playstation 4 launch title. The talk covers studio transition to a new asset creation pipeline, based on physical properties. Moreover it describes light rendering systems used in new 3D engine built from grounds up for upcoming Playstation 4 hardware. A novel real time lighting model, simulating physically accurate Area Lights, will be introduced, as well as hybrid - ray-traced / image based reflection system.
We believe that physically based rendering is a viable way to optimize asset creation pipeline efficiency and quality. It also enables the rendering quality to reach a new level that is highly flexible depending on art direction requirements.
Talk by Fabien Christin from DICE at GDC 2016.
Designing a big city that players can explore by day and by night while improving on the unique visual from the first Mirror's Edge game isn't an easy task.
In this talk, the tools and technology used to render Mirror's Edge: Catalyst will be discussed. From the physical sky to the reflection tech, the speakers will show how they tamed the new Frostbite 3 PBR engine to deliver realistic images with stylized visuals.
They will talk about the artistic and technical challenges they faced and how they tried to overcome them, from the simple light settings and Enlighten workflow to character shading and color grading.
Takeaway
Attendees will get an insight of technical and artistic techniques used to create a dynamic time of day system with updating radiosity and reflections.
Intended Audience
This session is targeted to game artists, technical artists and graphics programmers who want to know more about Mirror's Edge: Catalyst rendering technology, lighting tools and shading tricks.
Talk by Yuriy O’Donnell at GDC 2017.
This talk describes how Frostbite handles rendering architecture challenges that come with having to support a wide variety of games on a single engine. Yuriy describes their new rendering abstraction design, which is based on a graph of all render passes and resources. This approach allows implementation of rendering features in a decoupled and modular way, while still maintaining efficiency.
A graph of all rendering operations for the entire frame is a useful abstraction. The industry can move away from “immediate mode” DX11 style APIs to a higher level system that allows simpler code and efficient GPU utilization. Attendees will learn how it worked out for Frostbite.
Siggraph2016 - The Devil is in the Details: idTech 666Tiago Sousa
A behind-the-scenes look into the latest renderer technology powering the critically acclaimed DOOM. The lecture will cover how technology was designed for balancing a good visual quality and performance ratio. Numerous topics will be covered, among them details about the lighting solution, techniques for decoupling costs frequency and GCN specific approaches.
Rendering Techniques in Rise of the Tomb RaiderEidos-Montréal
This cohesive overview of the advanced rendering techniques developed for Rise of the Tomb Raider presents a collection of diverse features, the challenges they presented, where current approaches succeed and fail, and solutions and implementation details.
Bill explains some of the ways that the Vertex Shader can be used to improve performance by taking a fast path through the Vertex Shader rather than generating vertices with other parts of the pipeline in this AMD technology presentation from the 2014 Game Developers Conference in San Francisco March 17-21. Check out more technical presentations at http://developer.amd.com/resources/documentation-articles/conference-presentations/
Game engines have long been in the forefront of taking advantage of the ever increasing parallel compute power of both CPUs and GPUs. This talk is about how the parallel compute is utilized in practice on multiple platforms today in the Frostbite game engine and how we think the parallel programming models, hardware and software in the industry should look like in the next 5 years to help us make the best games possible
With the highest-quality video options, Battlefield 3 renders its Screen-Space Ambient Occlusion (SSAO) using the Horizon-Based Ambient Occlusion (HBAO) algorithm. For performance reasons, the HBAO is rendered in half resolution using half-resolution input depths. The HBAO is then blurred in full resolution using a depth-aware blur. The main issue with such low-resolution SSAO rendering is that it produces objectionable flickering for thin objects (such as alpha-tested foliage) when the camera and/or the geometry are moving. After a brief recap of the original HBAO pipeline, this talk describes a novel temporal filtering algorithm that fixed the HBAO flickering problem in Battlefield 3 with a 1-2% performance hit in 1920x1200 on PC (DX10 or DX11). The talk includes algorithm and implementation details on the temporal filtering part, as well as generic optimizations for SSAO blur pixel shaders. This is a joint work between Louis Bavoil (NVIDIA) and Johan Andersson (DICE).
This keynote explores the development of the AI in Battlefield: Bad Company and Battlefield: Bad Company 2 and what caused the difference in quality between the games. It describes challenges in the development of the games and the design philosophies we used to overcome them.
See http://publications.dice.se for the .ppt file and extra movies.
Secrets of CryENGINE 3 Graphics TechnologyTiago Sousa
In this talk, the authors will describe an overview of a different method for deferred lighting approach used in CryENGINE 3, along with an in-depth description of the many techniques used. Original file and videos at http://crytek.com/cryengine/presentations
Bindless Deferred Decals in The Surge 2Philip Hammer
These are the slides for my talk at Digital Dragons 2019 in Krakow.
Update: The recordings are online on youtube now:
https://www.youtube.com/watch?v=e2wPMqWETj8
A description of the next-gen rendering technique called Triangle Visibility Buffer. It offers up to 10x - 20x geometry compared to Deferred rendering and much higher resolution. Generally it aligns better with memory access patterns in modern GPUs compared to Deferred Lighting like Clustered Deferred Lighting etc.
Talk by Graham Wihlidal (Frostbite Labs) at GDC 2017.
Checkerboard rendering is a relatively new technique, popularized recently by the introduction of the PlayStation 4 Pro. Many modern game engines are adding support for it right now, and in this talk, Graham will present an in-depth look at the new implementation in Frostbite, which is used in shipping titles like 'Battlefield 1' and 'Mass Effect Andromeda'. Despite being conceptually simple, checkerboard rendering requires a deep integration into the post-processing chain, in particular temporal anti-aliasing, dynamic resolution scaling, and poses various challenges to existing effects. This presentation will cover the basics of checkerboard rendering, explain the impact on a game engine that powers a wide range of titles, and provide a detailed look at how the current implementation in Frostbite works, including topics like object id, alpha unrolling, gradient adjust, and a highly efficient depth resolve.
Taking Killzone Shadow Fall Image Quality Into The Next GenerationGuerrilla
This talk focuses on the technical side of Killzone Shadow Fall, the platform exclusive launch title for PlayStation 4.
We present the details of several new techniques that were developed in the quest for next generation image quality, and the talk uses key locations from the game as examples. We discuss interesting aspects of the new content pipeline, next-gen lighting engine, usage of indirect lighting and various shadow rendering optimizations. We also describe the details of volumetric lighting, the real-time reflections system, and the new anti-aliasing solution, and include some details about the image-quality driven streaming system. A common, very important, theme of the talk is the temporal coherency and how it was utilized to reduce aliasing, and improve the rendering quality and image stability above the baseline 1080p resolution seen in other games.
Original slides at: http://crytek.com/cryengine/presentations
For Crysis 2, the R&D team at Crytek created the third iteration of CryENGINE. This lecture covers various topics related to Crytek’s latest engine iteration. Tiago Sousa provides an overview of the rendering pipeline, and the successful transition to a multiplatform friendly deferred lighting approach; how gamma-correct HDR rendering and its multiplatform details have been handled, with a focus on performance and quality. Other topics include deferred lighting techniques such as efficiently handling skin-rendering, and overcoming alpha-blending problems for hair/fur rendering for current-generation hardware; water-rendering and dynamic interaction; batched HDR post-processing; and how AA was handled. The lecture also includes multiplatform comparisons on final image quality, optimization strategies, and performance analysis insights. It also unveils the DX11 implementation of certain features.
The presentation describes Physically Based Lighting Pipeline of Killzone : Shadow Fall - Playstation 4 launch title. The talk covers studio transition to a new asset creation pipeline, based on physical properties. Moreover it describes light rendering systems used in new 3D engine built from grounds up for upcoming Playstation 4 hardware. A novel real time lighting model, simulating physically accurate Area Lights, will be introduced, as well as hybrid - ray-traced / image based reflection system.
We believe that physically based rendering is a viable way to optimize asset creation pipeline efficiency and quality. It also enables the rendering quality to reach a new level that is highly flexible depending on art direction requirements.
Talk by Fabien Christin from DICE at GDC 2016.
Designing a big city that players can explore by day and by night while improving on the unique visual from the first Mirror's Edge game isn't an easy task.
In this talk, the tools and technology used to render Mirror's Edge: Catalyst will be discussed. From the physical sky to the reflection tech, the speakers will show how they tamed the new Frostbite 3 PBR engine to deliver realistic images with stylized visuals.
They will talk about the artistic and technical challenges they faced and how they tried to overcome them, from the simple light settings and Enlighten workflow to character shading and color grading.
Takeaway
Attendees will get an insight of technical and artistic techniques used to create a dynamic time of day system with updating radiosity and reflections.
Intended Audience
This session is targeted to game artists, technical artists and graphics programmers who want to know more about Mirror's Edge: Catalyst rendering technology, lighting tools and shading tricks.
Talk by Yuriy O’Donnell at GDC 2017.
This talk describes how Frostbite handles rendering architecture challenges that come with having to support a wide variety of games on a single engine. Yuriy describes their new rendering abstraction design, which is based on a graph of all render passes and resources. This approach allows implementation of rendering features in a decoupled and modular way, while still maintaining efficiency.
A graph of all rendering operations for the entire frame is a useful abstraction. The industry can move away from “immediate mode” DX11 style APIs to a higher level system that allows simpler code and efficient GPU utilization. Attendees will learn how it worked out for Frostbite.
Siggraph2016 - The Devil is in the Details: idTech 666Tiago Sousa
A behind-the-scenes look into the latest renderer technology powering the critically acclaimed DOOM. The lecture will cover how technology was designed for balancing a good visual quality and performance ratio. Numerous topics will be covered, among them details about the lighting solution, techniques for decoupling costs frequency and GCN specific approaches.
Rendering Techniques in Rise of the Tomb RaiderEidos-Montréal
This cohesive overview of the advanced rendering techniques developed for Rise of the Tomb Raider presents a collection of diverse features, the challenges they presented, where current approaches succeed and fail, and solutions and implementation details.
Bill explains some of the ways that the Vertex Shader can be used to improve performance by taking a fast path through the Vertex Shader rather than generating vertices with other parts of the pipeline in this AMD technology presentation from the 2014 Game Developers Conference in San Francisco March 17-21. Check out more technical presentations at http://developer.amd.com/resources/documentation-articles/conference-presentations/
Game engines have long been in the forefront of taking advantage of the ever increasing parallel compute power of both CPUs and GPUs. This talk is about how the parallel compute is utilized in practice on multiple platforms today in the Frostbite game engine and how we think the parallel programming models, hardware and software in the industry should look like in the next 5 years to help us make the best games possible
With the highest-quality video options, Battlefield 3 renders its Screen-Space Ambient Occlusion (SSAO) using the Horizon-Based Ambient Occlusion (HBAO) algorithm. For performance reasons, the HBAO is rendered in half resolution using half-resolution input depths. The HBAO is then blurred in full resolution using a depth-aware blur. The main issue with such low-resolution SSAO rendering is that it produces objectionable flickering for thin objects (such as alpha-tested foliage) when the camera and/or the geometry are moving. After a brief recap of the original HBAO pipeline, this talk describes a novel temporal filtering algorithm that fixed the HBAO flickering problem in Battlefield 3 with a 1-2% performance hit in 1920x1200 on PC (DX10 or DX11). The talk includes algorithm and implementation details on the temporal filtering part, as well as generic optimizations for SSAO blur pixel shaders. This is a joint work between Louis Bavoil (NVIDIA) and Johan Andersson (DICE).
This keynote explores the development of the AI in Battlefield: Bad Company and Battlefield: Bad Company 2 and what caused the difference in quality between the games. It describes challenges in the development of the games and the design philosophies we used to overcome them.
See http://publications.dice.se for the .ppt file and extra movies.
This session presents a detailed programmer oriented overview of our SPU based shading system implemented in DICE's Frostbite 2 engine and how it enables more visually rich environments in BATTLEFIELD 3 and better performance over traditional GPU-only based renderers. We explain in detail how our SPU Tile-based deferred shading system is implemented, and how it supports rich material variety, High Dynamic Range Lighting, and large amounts of light sources of different types through an extensive set of culling, occlusion and optimization techniques.
Talk from SIGGRAPH 2010 and the <a />Beyond Programmable Shading course</a>
Also see <a />publications.dice.se</a> for more material and other DICE talks.
By Kristoffer Benjaminsson, CTO, Easy.
This talk presents the telemetry system used in Battlefield Heroes and how it helps the team make technical decisions in order to provide the best service possible. We will show real life examples of how telemetry helped improve matchmaking, reduce latency for players and help find false alarms from the cheat detection system. We will also discuss how telemetry can be used in development for catching bugs and support game designers in their work.
Presentation from DICE Coder's Day (2010 November) by Johan Torp:
This talk is about making object-oriented code more cache-friendly and how we can incrementally move towards parallelizable data-oriented designs. Filled with production code examples from Frostbite’s pathfinding implementation.
Presentation from DICE Coder's Day (2010 November) by Andreas Fredriksson in the Frostbite team.
Goes into detail about Scope Stacks, which are a systems programming tool for memory layout that provides
• Deterministic memory map behavior
• Single-cycle allocation speed
• Regular C++ object life cycle for objects that need it
This makes it very suitable for games.
Slides from Elisabetta Silli's talk in the GDC Europe 2010 panel about level design.
Movie content can be found on:
http://publications.dice.se
Part designer, part producer, programmer and artist, what is it that makes a level designer effective? The short answer: knowing how to balance all of these roles to maximum effect! This session will examine situations from three AAA games, and the specific challenges they brought about and the solutions required to surmount them. Are level design approaches for radically different games inherently similar, or do accepted methods need to be drastically altered to fit the unique nature of the project? An examination of Alan Wake, Mirror's Edge, and Brink will help answer this question, and many others.
The past few years have seen a sharp increase in the complexity of rendering algorithms used in modern game engines. Large portions of the rendering work are increasingly written in GPU computing languages, and decoupled from the conventional “one-to-one” pipeline stages for which shading languages were designed. Following Tim Foley’s talk from SIGGRAPH 2016’s Open Problems course on shading language directions, we explore example rendering algorithms that we want to express in a composable, reusable and performance-portable manner. We argue that a few key constraints in GPU computing languages inhibit these goals, some of which are rooted in hardware limitations. We conclude with a call to action detailing specific improvements we would like to see in GPU compute languages, as well as the underlying graphics hardware.
This talk was originally given at SIGGRAPH 2017 by Andrew Lauritzen (EA SEED) for the Open Problems in Real-Time Rendering course.
Presentation & discussion around low-level graphics APIs. This was a quickly made presentation that I put together for a discussion with Intel and fellow ISVs, thought it could be worth sharing
Game engines have long been in the forefront of taking advantage of the ever
increasing parallel compute power of both CPUs and GPUs. This talk is about how the
parallel compute is utilized in practice on multiple platforms today in the Frostbite game
engine and how we think the parallel programming models, hardware and software in
the industry should look like in the next 5 years to help us make the best games possible.
Your Game Needs Direct3D 11, So Get Started Now!Johan Andersson
Direct3D 11 will have tessellation for smoother curves and finer details. The new compute shader will make postprocessing faster and easier. You'll need Direct3D 11 to have the best graphics, and this talk will show you how you can get started using current generation hardware.
Explore the multifaceted world of Muntadher Saleh, an Iraqi polymath renowned for his expertise in visual art, writing, design, and pharmacy. This SlideShare delves into his innovative contributions across various disciplines, showcasing his unique ability to blend traditional themes with modern aesthetics. Learn about his impactful artworks, thought-provoking literary pieces, and his vision as a Neo-Pop artist dedicated to raising awareness about Iraq's cultural heritage. Discover why Muntadher Saleh is celebrated as "The Last Polymath" and how his multidisciplinary talents continue to inspire and influence.
thGAP - BAbyss in Moderno!! Transgenic Human Germline Alternatives ProjectMarc Dusseiller Dusjagr
thGAP - Transgenic Human Germline Alternatives Project, presents an evening of input lectures, discussions and a performative workshop on artistic interventions for future scenarios of human genetic and inheritable modifications.
To begin our lecturers, Marc Dusseiller aka "dusjagr" and Rodrigo Martin Iglesias, will give an overview of their transdisciplinary practices, including the history of hackteria, a global network for sharing knowledge to involve artists in hands-on and Do-It-With-Others (DIWO) working with the lifesciences, and reflections on future scenarios from the 8-bit computer games of the 80ies to current real-world endeavous of genetically modifiying the human species.
We will then follow up with discussions and hands-on experiments on working with embryos, ovums, gametes, genetic materials from code to slime, in a creative and playful workshop setup, where all paticipant can collaborate on artistic interventions into the germline of a post-human future.
2137ad Merindol Colony Interiors where refugee try to build a seemengly norm...luforfor
This are the interiors of the Merindol Colony in 2137ad after the Climate Change Collapse and the Apocalipse Wars. Merindol is a small Colony in the Italian Alps where there are around 4000 humans. The Colony values mainly around meritocracy and selection by effort.
The perfect Sundabet Slot mudah menang Promo new member Animated PDF for your conversation. Discover and Share the best GIFs on Tenor
Admin Ramah Cantik Aktif 24 Jam Nonstop siap melayani pemain member Sundabet login via apk sundabet rtp daftar slot gacor daftar
2137ad - Characters that live in Merindol and are at the center of main storiesluforfor
Kurgan is a russian expatriate that is secretly in love with Sonia Contado. Henry is a british soldier that took refuge in Merindol Colony in 2137ad. He is the lover of Sonia Contado.
The Legacy of Breton In A New Age by Master Terrance LindallBBaez1
Brave Destiny 2003 for the Future for Technocratic Surrealmageddon Destiny for Andre Breton Legacy in Agenda 21 Technocratic Great Reset for Prison Planet Earth Galactica! The Prophecy of the Surreal Blasphemous Desires from the Paradise Lost Governments!
7. Traditional Shadowmap
Rendering
» Render world n times to n
shadowmaps
Objects interesecting multiple slices are
rendered multiple times
4
w
do
a
Sh
m
u
frust
View
3
w
do
a
Sh
2
w
do
a
Sh
1
w
do
a
Sh
Slice
Slice 1 Slice 2 Slice 3 without 4
Slice
shadow
Split plane 1
Split plane 2
Split plane 3
Near plane
Far plane
View direction
8. Traditional Shadowmap
Rendering
» More/larger objects or more slices
= more overhead
» Both a CPU & GPU issue
CPU: draw call / state overhead
GPU: primarily extra vertices & primitives
» Want to reduce CPU overhead
More objects
More slices = higher resolution
Longer shadow view distance
9. DX10 Single-pass
Shadowmap Rendering
» Single draw call outputs to multiple
slices
Shadowmap is a texture array
Depth stencil array view with multiple slices
Geometry shader selects output slice with
SV_RenderTargetArrayIndex
» No CPU overhead
With many objects intersecting multiple
frustums
» Multiple implementations possible
10. Shadowmap texture
array view
» Creation:
D3D10_DEPTH_STENCIL_VIEW_DESC viewDesc;
viewDesc.Format = DXGI_FORMAT_D24_UNORM_S8_UINT;
viewDesc.ViewDimension = D3DALL_DSV_DIMENSION_TEXTURE2DARRAY;
viewDesc.Texture2DArray.FirstArraySlice = 0;
viewDesc.Texture2DArray.ArraySize = sliceCount;
viewDesc.Texture2DArray.MipSlice = 0;
device->CreateDepthStencilView(shadowmapTexture, &viewDesc, &view);
» SampleCmp only supported on 10.1
for texture arrays
10.0 fallback: Manual PCF-filtering
Or vendor-specific APIs, ask your IHV rep.
13. Geometry shader cloning
» Benefits
Single shadowmap draw call per object
even if object intersects multiple slices
» Drawbacks
GS data amplification can be expensive
Not compatible with instancing
Multiple GS permutations for # of slices
Fixed max number of slices in shader
14. Instancing GS method
» Render multiple instances for objects
that intersects multiple slices
Combine with ordinary instancing that you
were already doing
» Store slice index per object instance
In vertex buffer, cbuffer or tbuffer
Together with the rest of the per-instance
values (world transform, colors, etc)
» Geometry shader only used for
selecting output slice
16. Instancing geometry shader
» Benefits
Works together with ordinary instancing
Single draw call per shadow object type!
Arbitrary number of slices
Fixed CPU cost for shadowmap rendering
» Drawbacks
Increased shadowmap GPU time
Radeon 4870x2: ~1% (0.7–1.3%)
Geforce 280: ~5% (1.9–18%)
Have to write/generate GS permutation for
every VS output combination
17. Shadow Flickering
» Causes
Lack of high-quality filtering (>2x pcf)
Moving light source
Moving player view
Rotating player view
Changing field-of-view
» With a few limitations, we can fix
these for static geometry
20. Stabilization (1/2)
» Orthographic views
Scene-independent
Make rotationally invariant = Fixed size
ustum
fr
View
3
w
do
a
Sh
2
w
do
a
Sh
1
w
do
a
Sh
Slice
Slice 1 Slice 2 Slice 3 without
shadow
Split plane 1
Split plane 2
Split plane 3
Near plane
Far plane
View direction
21. Stabilization (1/2)
» Orthographic views
Scene-independent
Make rotationally invariant = Fixed size
3
ow
m
ad
frustu
sh
View
3 le
b
ta
Sw
2
do
ow
a
ad
Sh
sh
2
e
bl
1
aw
dto
ow
aS
ad
Sh
1
sh
w
o
le
bd
aa
Sth
Slice
Slice 1 Slice 2 Slice 3 without
shadow
Split plane 1
Split plane 2
Split plane 3
Near plane
Far plane
View direction
22. Stabilization (2/2)
» Round light-space translation to
even texel increments
float f = viewSize / (float)shadowmapSize;
translation.x = round(translation.x/f) * f;
translation.y = round(translation.y/f) * f;
» Still flickers on FOV changes &
light rotation
So don’t change them
23. Scene rendering
» Slice selection methods
Slice plane (viewport depth)
m
u
frust
View
Shadow 3
Shadow 2
Shadow 1
Slice
Slice 1 Slice 2 Slice 3 without
shadow
Split plane 1
Split plane 2
Split plane 3
Near plane
Far plane
View direction
24. Scene rendering
» Slice selection methods
Slice plane (viewport depth)
Bounding sphere (Killzone 2 [2])
m
u
frust
View
Shadow 3
Shadow 3
Shadow 2
Shadow 2
Shadow 1
Shadow 1
Slice
Slice 1 Slice 2 Slice 3 without
shadow
Split plane 1
Split plane 2
Split plane 3
Near plane
Far plane
View direction
25. Scene rendering
» Slice selection methods
Slice plane (viewport depth)
Bounding sphere (Killzone 2 [2])
Bounding box (BFBC / Frostbite)
m
u
frust
View
Shadow 3
Shadow 3
Shadow 3
Shadow 2
Shadow 2
Shadow 2
Shadow 1
Shadow 1
Shadow 1
Slice
Slice 1 Slice 2 Slice 3 without
shadow
Split plane 1
Split plane 2
Split plane 3
Near plane
Far plane
View direction
30. Conclusions
» Stabilization reduces flicker
With certain limitations
» Bounding box slice selection
maximizes shadowmap utilization
Higher effective resolution
Longer effective shadow view distance
Good fit with stabilization
» Fewer draw calls by rendering to
texture array with instancing
Constant CPU rendering cost regardless of
number of shadow casting objecs & slices
At a small GPU cost
33. Overview
Problem description
»
Solution
»
Implementation
»
Results
»
Future work
»
» Q & A for both parts
34. Problem description
» Decals were using physics collision
meshes
Caused major visual artifacts
We need to use the actual visual meshes
» Minimize delay between impact
and visual feedback
Important in fast paced FPS games
35. Problem description
» Already solved on consoles using
shared memory (Xbox360) and
SPU jobs (PS3)
» No good solution existed for PC as
of yet
Duplicating meshes in CPU memory
Copying to CPU via staging resource
36. Solution
» Use the Geometry shader to cull
and extract decal geometry
From mesh vertex buffers in GPU RAM
» Stream out the decal geometry to
a vertex ring buffer
» Use clip planes to clip the decals
when drawing
37. Solution
» Allows us to transfer UV-sets from
the source mesh to the decal
» Takes less vertex buffer memory
than older method
Due to use of clipplanes instead of manual
clipping
39. Implementation –
Geometry Shader
» GS pass ”filters” out intersecting
geometry from the input mesh
Also performs a number of data
transforms
» GS pass parameters
Decal transform, spawn time, position in
vertex buffer etc
» Let’s take a closer look at the GS
code!
56. Geometry Shader
Performance
» Complex GS shader - ~260
instructions
Room for optimization
» GS draw calls usually around 0.05-
0.5 ms
Depending on hardware of course
» Per frame capping/buffering used
to avoid framerate drops
57. Implementation – Buffer
usage
» One decal vertex buffer used as a
ring buffer
» One index buffer – dynamically
updated each frame
» Decal transforms stored on the
CPU (for proximity queries)
58. Implementation –
Queries
» Grouped together with each decal
generation draw call
» Result is used to ”commit” decals
into their decal sets or discard
them if no triangles were written
59.
60. Implementation –
Queries
» Issues
Buffer overflows
Syncronization
» No way of knowing where in the
buffer vertices were written
Only have NumPrimitivesWritten and
PrimitiveStorageNeeded
61. Implementation –
Queries
» Solution: When an overflow is
detected the buffer is wrapped
around.
If any decals are partially written they are
discarded and redispatched.
66. Future Work
» Rewrite to make use of
DrawAuto()
» Experiment more with material
masking possibilites
» Port to DX11 Compute Shader
» Implement GPU-based ray/mesh
intersection tests
» SLI/Crossfire