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 technical deep dive into the DX11 rendering in Battlefield 3, the first title to use the new Frostbite 2 Engine. Topics covered include DX11 optimization techniques, efficient deferred shading, high-quality rendering and resource streaming for creating large and highly-detailed dynamic environments on modern PCs.
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.
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.
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.
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/
A technical deep dive into the DX11 rendering in Battlefield 3, the first title to use the new Frostbite 2 Engine. Topics covered include DX11 optimization techniques, efficient deferred shading, high-quality rendering and resource streaming for creating large and highly-detailed dynamic environments on modern PCs.
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.
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.
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.
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/
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
Screen Space Decals in Warhammer 40,000: Space MarinePope Kim
My Siggraph 2012 presentation slides on Screen Space Decals in Warhammer 40,000: Space Marine.
SSD is similar to Deferred Decals, so I focused more on the problems we had and how we solved(or avoided) them
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
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.
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.
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.
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.
The goal of this session is to demonstrate techniques that improve GPU scalability when rendering complex scenes. This is achieved through a modular design that separates the scene graph representation from the rendering backend. We will explain how the modules in this pipeline are designed and give insights to implementation details, which leverage GPU''s compute capabilities for scene graph processing. Our modules cover topics such as shader generation for improved parameter management, synchronizing updates between scenegraph and rendering backend, as well as efficient data structures inside the renderer.
Video here: http://on-demand.gputechconf.com/gtc/2013/video/S3032-Advanced-Scenegraph-Rendering-Pipeline.mp4
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.
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.
Graphics Gems from CryENGINE 3 (Siggraph 2013)Tiago Sousa
This lecture covers rendering topics related to Crytek’s latest engine iteration, the technology which powers titles such as Ryse, Warface, and Crysis 3. Among covered topics, Sousa presented SMAA 1TX: an update featuring a robust and simple temporal antialising component; performant and physically-plausible camera related post-processing techniques such as motion blur and depth of field were also covered.
Animations and Native Deployment for games in Winter by Alvaro PiornoFAST
Winter (2D game development framework) was presented last year in in an early stage of development, this year it bring us some new features.
It comes with some new architecture changes, but also 2 new important features: Animations and Native Deployment.
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
Screen Space Decals in Warhammer 40,000: Space MarinePope Kim
My Siggraph 2012 presentation slides on Screen Space Decals in Warhammer 40,000: Space Marine.
SSD is similar to Deferred Decals, so I focused more on the problems we had and how we solved(or avoided) them
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
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.
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.
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.
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.
The goal of this session is to demonstrate techniques that improve GPU scalability when rendering complex scenes. This is achieved through a modular design that separates the scene graph representation from the rendering backend. We will explain how the modules in this pipeline are designed and give insights to implementation details, which leverage GPU''s compute capabilities for scene graph processing. Our modules cover topics such as shader generation for improved parameter management, synchronizing updates between scenegraph and rendering backend, as well as efficient data structures inside the renderer.
Video here: http://on-demand.gputechconf.com/gtc/2013/video/S3032-Advanced-Scenegraph-Rendering-Pipeline.mp4
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.
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.
Graphics Gems from CryENGINE 3 (Siggraph 2013)Tiago Sousa
This lecture covers rendering topics related to Crytek’s latest engine iteration, the technology which powers titles such as Ryse, Warface, and Crysis 3. Among covered topics, Sousa presented SMAA 1TX: an update featuring a robust and simple temporal antialising component; performant and physically-plausible camera related post-processing techniques such as motion blur and depth of field were also covered.
Animations and Native Deployment for games in Winter by Alvaro PiornoFAST
Winter (2D game development framework) was presented last year in in an early stage of development, this year it bring us some new features.
It comes with some new architecture changes, but also 2 new important features: Animations and Native Deployment.
The rendering technology of 'lords of the fallen' philip hammerMary Chan
This session is about some important aspects of the rendering pipeline of the upcoming Action-RPG "Lords of the Fallen", developed by Deck13 Interactive and CI Games for PS4, Xbox One, and PC. The topic covers several closely related areas like the deferred rendering system, image-based lighting using deferred cubemaps, deferred decals, and an approach for transparent object lighting and shadowing. More specifically, the lecture will cover several strategies to keep the G-Buffer as small and efficient as possible. This includes the description of a G-Buffer attribute-packing scheme and how per-material attributes can be exposed using special parameter lookup tables. Furthermore, a traditional problem of most deferred rendering systems is the seamless integration of transparent objects into the lighting. The lecture will present several ways to approach this problem, for example multi-pass deferred rendering, coloured transparent shadows, and a novel method for deferred particle lighting.
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...Electronic Arts / DICE
Global illumination (GI) has been an ongoing quest in games. The perpetual tug-of-war between visual quality and performance often forces developers to take the latest and greatest from academia and tailor it to push the boundaries of what has been realized in a game product. Many elements need to align for success, including image quality, performance, scalability, interactivity, ease of use, as well as game-specific and production challenges.
First we will paint a picture of the current state of global illumination in games, addressing how the state of the union compares to the latest and greatest research. We will then explore various GI challenges that game teams face from the art, engineering, pipelines and production perspective. The games industry lacks an ideal solution, so the goal here is to raise awareness by being transparent about the real problems in the field. Finally, we will talk about the future. This will be a call to arms, with the objective of uniting game developers and researchers on the same quest to evolve global illumination in games from being mostly static, or sometimes perceptually real-time, to fully real-time.
This presentation was given at SIGGRAPH 2017 by Colin Barré-Brisebois (EA SEED) as part of the Open Problems in Real-Time Rendering course.
Past, Present and Future Challenges of Global Illumination in GamesColin Barré-Brisebois
Global illumination (GI) has been an ongoing quest in games. The perpetual tug-of-war between visual quality and performance often forces developers to take the latest and greatest from academia and tailor it to push the boundaries of what has been realized in a game product. Many elements need to align for success, including image quality, performance, scalability, interactivity, ease of use, as well as game-specific and production challenges.
First we will paint a picture of the current state of global illumination in games, addressing how the state of the union compares to the latest and greatest research. We will then explore various GI challenges that game teams face from the art, engineering, pipelines and production perspective. The games industry lacks an ideal solution, so the goal here is to raise awareness by being transparent about the real problems in the field. Finally, we will talk about the future. This will be a call to arms, with the objective of uniting game developers and researchers on the same quest to evolve global illumination in games from being mostly static, or sometimes perceptually real-time, to fully real-time.
This talk provides additional details around the hybrid real-time rendering pipeline we developed at SEED for Project PICA PICA.
At Digital Dragons 2018, we presented how leveraging Microsoft's DirectX Raytracing enables intuitive implementations of advanced lighting effects, including soft shadows, reflections, refractions, and global illumination. We also dove into the unique challenges posed by each of those domains, discussed the tradeoffs, and evaluated where raytracing fits in the spectrum of solutions.
WT-4072, Rendering Web Content at 60fps, by Vangelis Kokkevis, Antoine Labour...AMD Developer Central
Presentation WT-4072, Rendering Web Content at 60fps, by Vangelis Kokkevis, Antoine Labour and Brian Salomon at the AMD Developer Summit (APU13) Nov. 11-13, 2013.
1). Annotating real data for image segmentation is laborious and time-consuming task.
2). We aim to adapt the representation learned on synthetic data to real-world data.
MacGyver loved duct tape. From diffusing bombs to building ultralights, he never left home without it. If MacGyver were a coder today, odds are Spark would be his digital duct tape. From replacing MR batch processing, to Spark SQL, to machine learning, to streaming, Spark covers the gamut. While there are a lot of exotic uses, this presentation focuses on one of Spark's fundamental use cases: ETL.
Whether the final resting place for your data is MongoDB or SQL Server, ETL is a must. This presentation will show just how impactful Spark can be with your existing ETL processes and that you don't have to do a full rewrite of your Stack to start taking advantage of it.
We are on the third turn of the 'terminal' interface in computers. This has implications in the design of future browsers and i/o libraries in languages. This concludes with a proposal for a C++ library, but more recently I've become interested in changing the way the browser presents itself to the user. I'll consider another presentation on that topic if a suitable party is interested.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
2. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
This talk is ..
● .. about
○ our own implementation of bindless deferred decals in D3D12 and Vulkan
○ overcoming problems of past approaches
○ practical bread & butter techniques
○ how to efficiently render many decals on the GPU
○ tackling common issues and glitches
● .. but unfortunately not
○ super-fancy new research
○ a comprehensive view on our new renderer
● .. and has
○ probably more too much source code
2
2
3. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Introduction
● Brief overview of the latest iteration of our inhouse FLEDGE engine
● 4th generation: re-designed renderer module from ground up:
○ Vulkan + D3D12 support only
○ Dropped legacy code (D3D11)
○ No more OOP code - all in for DOD / SoA
○ New possibilities for high-level renderer design (e.g. bindless texturing)
● Improved some existing features e.g.
○ Clustered Deferred + Clustered Forward Rendering
○ Physical-based Rendering
● Some fancy new rendering features, e.g.
○ Unified Volumetric Lighting, Irradiance Probe Grid, Simulated interactive grass, Temporal Antialiasing, etc.
○ Unfortunately not part of this talk :-)
3
3
4.
5.
6.
7.
8. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Motivation
● Decals = one key benefit of deferred rendering
● Used in environment art + VFX
○ Static decals to detail the world
○ Dynamic decals spawned by the effect system
○ Gameplay-driven decals like footsteps
● High demands on decal count, usability and performance
8
8
9. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Decal usage & examples
99
9
16. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Rasterization-based deferred decals
● Had deferred decals for quite a while [LotF14]
○ Be aware of decal count, overdraw, etc.
○ Limitations led to sparse usage
● “Classic” deferred decal rendering
○ analogous to deferred light volume rendering
● Improved that a lot over the years, but basic principle stayed the same
16
16
17. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Rasterization-based deferred decals
● Advantages
○ Easy to implement and possible with most
(even older) graphics APIs
○ Near pixel-perfect culling and shader segmentation
● Disadvantages
○ CPU-Performance
■ one drawcall per decal
■ Lots of state setup per decal
○ GPU-Performance
■ Double work: fetching gbuffers,
rasterizing fragments, etc.
■ Need to update the G-Buffer as
intermediate blend buffer
17
17
Transformed box geometry rasterizing a decal
18. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Bindless Deferred Decals
● How about rendering all decals at once?
18
18
19. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Bindless Deferred Decals
● How about rendering all decals at once?
● Problem: Too many resource bindings
○ Each decal references a potentially unique set of textures
○ Not possible to bind arbitrary amount of texture resources
19
19
20. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Bindless Deferred Decals
● How about rendering all decals at once?
● Problem: Too many resource bindings
○ Each decal references a potentially unique set of textures
○ Not possible to bind arbitrary amount of texture resources
● Solution(s):
○ Texture atlases or arrays
-> limited and inflexible
○ is around since 2013 [Everitt14]
-> vendor specific and what about consoles?
20
20
21. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Bindless Texturing
● D3D12 + Vulkan to the rescue!
○ Built-in support for bindless texturing
○ API specific descriptor arrays
○ Create a descriptor table for all textures in the game
○ Descriptors are globally available and bound to any draw/dispatch in need
21
21
22. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Bindless Texturing
● D3D12 + Vulkan to the rescue!
○ Built-in support for bindless texturing
○ Create an (API specific) descriptor array for all textures in the game
○ Descriptors are globally available and bound to any draw/dispatch in need
● Idea of bindless texturing is around for a while!
○ e.g. [Reed14], [Pettineo16], [Sousa16], [Drobot17]
22
22
23. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Bindless Texturing
D3D12 / HLSL Vulkan / GLSL
23
23
24. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Non-uniform resource indices
● Texture index must be uniform
○ In GCN terms: loaded into an SGPR
○ It’s not by default if fetched from a GPU buffer
○ Non-uniform indices lead to unexpected results
and graphical corruptions
● Need to explicitly make the index uniform!
24
24
25. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Non-uniform resource indices
● D3D12 / HLSL:
● Vulkan / GLSL:
○ Check [GpuInfo] for availability
● Alternative: use wave intrinsics
○ D3D12: Shader Model 6 wave intrinsics
○ Vulkan: ballot extensions
● Heavily driver- and vendor-dependent
○ Availability of extensions and performance
25
25
26. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Clustered Deferred Decals
● We already have a clustered deferred renderer for lighting
○ Similar approach to [Persson], [Sousa16], etc.
○ Cull lights, specular cubemaps, etc. into subdivided view frustum bins
○ Render everything in one go (single compute dispatch / fullscreen quad)
○ Easy to query clustered data also for forward-rendered objects
○ Already a good coverage on the topic, so we won’t go much deeper here
26
26
27. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Clustered Deferred Decals
● We already have a clustered deferred renderer for lighting
○ Similar approach to [Persson], [Sousa16], etc.
○ Cull lights, specular cubemaps, etc. into subdivided view frustum bins
○ Render everything in one go (single compute dispatch / fullscreen quad)
○ Easy to query clustered data also for forward-rendered objects
○ Already a good coverage on the topic, so we won’t go much deeper here
● Good fit also for decals!
27
27
Output
scene color
Fetch
G-Buffer
Compute
decals
Compute
direct
lighting
Lighting shader
Compute
indirect
specular
Compute
indirect
diffuse
28. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Clustered Deferred Decals
● Decal blending only in registers, no double fetching or updating of G-Buffer
● Very efficient, but be aware of register pressure / low CU occupancy
28
28
29. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Bindless Decals Optimization
● High-level art optimizations
○ Cull by distance with soft fade-out
○ Switch to simpler feature set over distance
29
29
Decal overlay icons for all decals
30. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Bindless Decals Optimization
● High-level art optimizations
○ Cull by distance with soft fade-out
○ Switch to simpler feature set over distance
30
30
Decal overlay icons for all decals surviving distance culling
31. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Bindless Decals Optimization
● Low-level optimizations
● Biggest bottleneck in shader: VGPRs / CU Occupation
● GCN Loop Scalarization works great with decals
○ Load decal and material data in SGPRs and loop over necessary lanes
○ Note: not necessary anymore!
● Splitting decal and material features into isolated blocks
○ Free up registers by grouping features
○ Register lifetime is not always obvious - measure and profile
○ Reorganization of large shaders with a lot of resource access is always worth a try!
31
31
32. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
GCN loop scalarization
● Great in-depth coverage available [Drobot17]
● Make cluster index uniform / scalar
○ Load all related data (DecalData, MaterialData, etc.) into SGPRs
○ Index is actually not uniform, but most pixel in a wave likely hit
the same index
○ Double work can happen but higher occupancy will cancel it out
○ Only doable with wave intrinsics
32
32
33. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Bindless Decals Limitations
● Downsides of blending decals in registers
● Decals not visible for other (deferred) renderpasses
○ normals + albedo won’t see decal modifications (e.g. SSAO, SSR, separate ambient pass)
○ Material-ID not updated (TAA Ghosting! [Xu16])
● Could render decals before lighting and update G-Buffer
○ Additional costs for e.g. copying G-Buffer Normals
33
33
34. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Common decal issues
34
35. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Common decal issues #1: Normal blending
● Linear blending is trivial and useful for e.g.
snow accumulation
○ Perfect for thick covers like layers of sand or snow
○ Tends to “flatten” normals in gradual blending:
normal directions cancel out each other
35
35
Decal with linear normal blending
36. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Common decal issues #1: Normal blending
● Re-orientated normal mapping [Hill12]
○ Our default mode for blending, works best for most decals
○ Decal normal will always follow surface normal
○ Fits mostly better into the scene
36
36
Decal with re-oriented normal blending
37. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Common decal issues #2: screenspace UV gradients
● UV- and Z-gradients cannot be derived correctly in screenspace
○ No hardware gradient data (ddx/ddy) available in shader loops
○ No mip-mapping and wrong UV-gradients around object boundaries
● Solution:
○ Sample a fixed Mip Level :-(
○ Compute gradients in shader
■ Slightly higher runtime cost
■ Need to compute 2 addition decal-space positions with 1-pixel-offset in X and Y direction
■ Be aware of decal & uv scaling!
37
37
38. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Common decal issues #2: screenspace UV gradients
● Computation of UV gradients in the shader
● Be aware that hardware gradients of position is not correct
38
38
39. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Common decal issues #3: screenspace Z gradients
● UV gradients = almost good
● But can get huge at depth discontinuities
if gradient is computed in the shader
● Two possibilities
○ Store z-gradients in G-Buffer and compute
with these
○ Or check for depth discontinuities
in shader + fix-up [Hammer18]
39
39
40. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Common decal issues #3: screenspace Z gradients
● Checkerboard is a prime example because of
maximum contrast
○ lower mips converge to middle gray due to downscale
● Large UV gradients will fetch a very low mip
ending up in a color discontinuity
40
40
41. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Common decal issues #3: screenspace Z gradients
● Find the edges causing the trouble
● Sample Lod0 if fragment is on edge
● Can be done directly in the decal fullscreen
shader based on two depth quads
41
41
42. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Common decal issues #3: screenspace Z gradients
● Find the edges causing the trouble
● Sample Lod0 if fragment is on edge
● Can be done directly in the decal fullscreen
shader based on two depth quads
42
42
43. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Common decal issues #3: screenspace Z gradients
● Color discontinuities are now gone
● Fixed edges can now suffer from Mip-Flickering
● In practice a rather minor issue
○ Barely noticeable during gameplay
○ Antialiasing - especially Temporal AA - migitates as well
43
43
44. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Common decal issues #4: Leaking and object separation
● Decals may leak into areas where they don’t belong
44
44
45. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Common decal issues #4: Leaking and object separation
● Decals may leak into areas where they don’t belong
● Solution:
○ Decals and materials both store a “DecalGroup” bitmask
○ Bitwise AND the masks and check if at least one bit matches
○ Up to artists how to assign bits (e.g. character, vegetation,
environment, transparent, etc.)
45
45
46. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Dirty decal tricks
4646
46
47. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Dirty decal tricks #1 - Smoothing Edges
● Modify decal normal to “smooth” corners and edges
● Interpolate surface normal towards (uniform) decal direction
● Simple but effective and artists love the hack
● Useful for covering uneven geometry e.g. with mud
47
47
Smoothed Edges off (smoothFactor = 0.0)
48. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Dirty decal tricks #1 - Smoothing Edges
● Modify decal normal to “smooth” corners and edges
● Interpolate surface normal towards (uniform) decal direction
● Simple but effective and artists love the hack
● Useful for covering uneven geometry e.g. with mud
● Geometry normal is otherwise hard to override
● Be careful, it’s a hack
48
48
Smoothed Edges on (smoothFactor = 1.0)
49. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Dirty decal tricks #2 - Water puddles
● Decalling shallow water puddles
○ Faking surface porosity by blending
black decal albedo (only 10-20% opacity)
○ low roughness (100%)
○ water ripple normal (100%)
● No special code path, just special
parametrization
49
49
50. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Dirty decal tricks #3 - Texturing the world
● Base model (no decals)
50
50
51. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Dirty decal tricks #3 - Texturing the world
● Base model + decal with UV-free texturing
aka Triplanar mapping
○ Sample texture(s) 3x from different directions
and blend based on decal normal
○ Triplanar contrast defines the “steepness”
of the blending according to the normal
51
51
52. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Dirty decal tricks #3 - Texturing the world
● Base model + decal with triplanar +
slope dependent blending
○ Generate a blend mask based on the slope of the
underlying surface and the decal direction
52
52
53. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Future improvements
53
54. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Future improvements
54
54
● Better tooling for bulk decalling
○ Brush decals with randomized parameters
We already have that for small geometry instances like plants, debris, etc.!
○ Procedural placement based on world parameters
(e.g. biomes, material types, indoor/outdoor)
○ Physically simulated placement
(e.g. rigid body / particle simulation)
● Extend system to go full bindless
○ Bindless texturing also for scene rendering
○ Prototype exists but not yet ready for production
55. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
Thank you for listening!
@philiphammer0
phammer@deck13.com
55
Also a big thanks to the amazing DECK13 team which helped
with contributions, reviews and suggestions!
56. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
We’re hiring! :)
@deck13_de
https://www.deck13.com/jobs/
56
58. Philip Hammer (Deck13 Interactive)
Digital Dragons 2019, Krakow
References
[Persson] “Practical Clustered Shading”, Emil Persson,
http://www.humus.name/Articles/PracticalClusteredShading.pdf
[Drobot17] “Improved Culling for Tiled and Clustered Rendering”, Michal Drobot, Siggraph 2017
http://advances.realtimerendering.com/s2017/
[Hammer18] “Dissecting the Rendering of The Surge”, Philip Hammer, Quo Vadis Berlin 2018
https://de.slideshare.net/philiphammer/dissecting-the-rendering-of-the-surge
[Xu16] "Temporal Antialiasing in Uncharted 4", Ke Xu, Siggraph 2016
http://advances.realtimerendering.com/s2016/
[Lagarde14] “Moving Frostbite to physical based rendering”, Sébastien Lagarde, Siggraph 2014
https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf
[Wronski15] “Fixing screen-space deferred decals”, Bart Wronski, 2015
https://bartwronski.com/2015/03/12/fixing-screen-space-deferred-decals/
[Sawicki15] "Watch out for non-uniform resource index!", Adam Sawicki,
http://www.asawicki.info/news_1608_direct3d_12_-_watch_out_for_non-uniform_resource_index.html
[Sousa16] "The Devil is in the Details: idTech 666", Tiago Sousa, Siggraph 2016
https://de.slideshare.net/TiagoAlexSousa/siggraph2016-the-devil-is-in-the-details-idtech-666
[Pettineo16] “Bindless Texturing for Deferred Rendering and Decals”, Matt Pettineo
https://mynameismjp.wordpress.com/2016/03/25/bindless-texturing-for-deferred-rendering-and-decals/
[Reed14] “Deferred Texturing”
http://www.reedbeta.com/blog/deferred-texturing/
[LotF14] “Building your own engine, part 3 – Visual effects for the next generation”, Benjamin Glatzel, David Reinig
https://www.makinggames.biz/news/building-your-own-engine-part-3-visual-effects-for-the-next-generation,6330.html
[Hill12] “Blending in Detail”, Stephen Hill, 2012
https://blog.selfshadow.com/publications/blending-in-detail/
[Everitt14] “Approaching zero driver overhead”, Cass Everitt et. al.,, Siggraph 2014
https://de.slideshare.net/CassEveritt/approaching-zero-driver-overhead
[GpuInfo] “Vulkan Hardware Database”, Sascha Willems
https://vulkan.gpuinfo.org/listextensions.php
58
58