SlideShare a Scribd company logo
1 of 44
Download to read offline
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Radeon ProRender and Radeon Rays
in a Gaming Rendering Workflow
Takahiro Harada, AMD
2017/3
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Introduction
Radeon ProRender & Radeon Rays
Radeon Rays
Unity + Radeon Rays
Integration to real time applications
Radeon ProRender
Agenda
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Introduction
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Ray Tracing Solution from AMD
A GPU accelerated ray triangle intersection engine
For low level engine developers
OpenCL, Vulkan, C++ backends
Full open source
A GPU accelerated light transport simulator
Computes global illumination using Monte Carlo ray tracing
(path tracing)
Intersection, shading, lighting, sampling, all in
High level API
Set up a scene, call render()
Returns you a nice render
For high level engine developers
OpenCL, C++ backend
Open source planned
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Not locking users to AMD platform
Trying to make it run as many platforms as possible
Using OpenCL 1.2, industry standard API
We implement at least
GPU optimized OpenCL code
CPU optimized C++ code
better control, optimization compared to relying on OpenCL to run on the CPU
Our solutions are competitive if compared on a CPU based solution
As OpenCL is dynamically loaded, OCL isn’t necessary
If it cannot find OCL, it’ll fall back to the CPU implementation
Most likely they run on your machine as they are
AMD’s Approach
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Support multiple vendors, multiple OSes (Windows, Linux, MacOS)
No initial investment is necessary to use our solution
It does run on CPU too
If you have an AMD GPUs, it is better
Better performance
Better experience
We do full testing on AMD GPUs
Non AMD platforms, it depends on the vendor’s OpenCL implementation
We do crash test on some vendor’s GPUs
We disable some vendor’s GPUs unfortunately because of their OpenCL bug (compiler, runtime)
AMD’s Approach
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
How Radeon Rays, Radeon ProRender are used in game development process
This Talk
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Radeon Rays
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Can be used as a building block of a renderer
Global illumination renderer
Sound renderer (True Audio)
AI
Comes with a reference renderer
It could be used for lightmap baking and light probe calculation
Uses ray casting
There are a few game companies integrating Radeon Rays
We integrated Radeon Rays into Unity
Radeon Rays
h"ps://github.com/GPUOpen-LibrariesAndSDKs/RadeonRays_SDK/
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Simple C++ API
// Find closest intersection!
void QueryIntersection(Buffer const* rays, int numrays, Buffer* hitinfos, !
Event const* waitevent, Event** event) const;!
// Find any intersection.!
void QueryOcclusion(Buffer const* rays, int numrays, Buffer* hitresults, !
Event const* waitevent, Event** event) const;!
Passing an array of rays and number of rays
It fills hit results
Using Radeon Rays
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Embree is popular, but using Radeon Rays gives you more
With Radeon Rays
It uses Embree for the CPU backend => Same performance is guaranteed
You can turn on the GPU backend => Performance improvements when you have a GPU
Using Radeon Rays
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Unity + Radeon Rays
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Lightmap is a solution for global illumination
Global Illumination is
Essential to get realism
Computationally expensive
Real time global illumination is still a research topic
No obvious solution using rasterization yet
Global Illumination
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Monte Carlo ray tracing is a way to compute global illumination
Too computationally intensive for game runtime
GPU accelerated ray tracing is a hot topic these days
Still not ready for real time game
Potential in content creation (Radeon ProRender)
Lightmap is solution for real-time global illumination
Global Illumination
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Lightmap
Many games today uses lightmaps
Lightmap
Texture storing global illumination
Although there are some limitations, it’s widely used
Precompute global illumination
Ray traced global illumination
Saved in texture “lightmap”
At runtime, simply put it as a texture, fetch it
The precomputation takes forever for a complex game scene
Hours to days
Radeon Rays can help you from this pain
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
A fast lightmap baking solution
Runs on GPU
10 – 20x performance improvement
Before 1 day baking => 1 hour with Radeon Rays
Faster solution => Faster iteration => Better content creation
Lightmap Baker using Radeon Rays
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Collaboration of Unity & AMD
Implemented in a branch of Unity 5.X
Based on the existing CPU lightmap baker
Using infrastructure for lightmap baking in Unity
The logic needs to be changed to fill the GPU better
Before: for each lightmap, for each texel, execute
After: for each lightmap, execute all the texels in the lightmap in parallel
Implemented 2 modes
Ambient occlusion and Global illumination
Unity Lightmap Baker using Radeon Rays
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Using Unity’s lightmap G buffer rendering functionality
World position
Surface normal
These are enough to do AO computation
Primary rays are generated by cosine weighted sampling
Makes the integration simple (simply count without any PDF
computation)
AO is calculated as
1 – [# of occluded rays] / [# of casted rays]
1 – sum( weight( hit distance ) ) / [# of casted rays]
Ambient Occlusion Mode
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
AO ray doesn’t bounce, but it does in GI
Maximum bounces is a user defined parameter
Ray termination
Supported light types
Point light
Spot light
Directional light
Area light
Emissive shader
IBL
Global Illumination Mode
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Surface properties are filled at lightmap G buffer rendering stages
World position
Surface normal (with normal maps)
Diffuse albedo
Necessary for color bleeding
Emission
View dependent effect are ignored
glossy, specular reflections
Global Illumination Mode
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
for lightmap in lightmaps!
ray = generatePrimaryRay( lightmap )!
for bounce < maxBounce!
hit = RR::intersect( ray )!
// emissive!
texel += evaluateEmissive( hit )!
// ibl!
shadowRay = generateRayIBL( hit )!
shadowHit = RR:intersect( shadowRay )!
texel += evaluateIBL( hit, shadowHit )!
for light in lights // point, spot, directional!
shadowRay = generateRayLight( hit, light )!
shadowHit = RR:intersect( shadowRay )!
texel += directIllumination( shadowHit, light )!
ray = generateNextRay( ray, hit )
Global Illumination Mode
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
288k Tris
497k verts
Directional lights
Point lights
Radeon Rays
160-170MRays/s
(a few sec for IBL + emissive)
Existing CPU code
<10MRays/s
Lightmap Visualization
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
GI + Texture
Final Render
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
This project is still in progress
We are going to improve to make it
Robust
Better convergence
Progressive rendering, so that it can run async with other work
A big advantage over CPU
Finally
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Other Radeon Rays Adaptions
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Real-time rendering plugin for Autodesk Revit
Exploring the model with high quality rendering
Use of custom fork of Radeon Rays
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Real-time rendering plugin for Autodesk Revit
Exploring the model with high quality rendering
Use of custom fork of Radeon Rays
Radeon Rays is used to compute illumination caches
Hybrid global illumination solution
Hierarchy of illumination caches
Screen space ray tracing
World space ray tracing as a last resort
BVH streaming
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Radeon Rays integration
Some game studios
Radeon Rays integration is not for everybody
If you don’t need the fine control in baking, Radeon ProRender might be the solution for you
Radeon ProRender has not only ray intersection, but all the logic necessary for GI (shading, sampling etc) are
there
You only need to set up the scene and call rprContextRender()
Lightmap render
Light probe render
Interactive preview
Others and More
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Radeon ProRender
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
A workflow where we bake, apply, then you can see global illumination
Could be wasteful
Texture resolution is too high
Could be insufficient
Texture resolution is too low
Optimal sampling rate is difficult with lightmap solution
Interactive global illumination solution with Radeon ProRender is alternative
Single click “Render”
Simpler workflow
Progressive global illumination refinement
What I have talked about are
P O L A R I S T E C H D AY
MARCH	2016			|			FIRERENDER,	FIRERAYS	
Render Examples
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
VRay Material Converter
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
VRay Material Converter
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
https://www.youtube.com/watch?v=z9wArygtwlI
Radeon ProRender Demo
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
A fast GPU accelerated global illumination renderer
Not fast enough for game runtime
There is a potential in game content creation acceleration
Provided as
SDK for developers (C API)
Plugins for creators
Radeon ProRender is
P O L A R I S T E C H D AY
MARCH	2016			|			FIRERENDER,	FIRERAYS	
Features
} Camera	
360	PerspecRve	 VR	
} Geometry	
Instancing	Mesh	 Subdivision	
} Lights	
Area	IES	Spot	Point
P O L A R I S T E C H D AY
MARCH	2016			|			FIRERENDER,	FIRERAYS	
Features
MATERIALS	
} BSDFs	
} Basic	components	
Diffuse	reflecRon	
} Shader	graph	
} Arbitrary	connecRon	of	shader	nodes	for	flexible	shading	system	
Diffuse	refracRon	 Glossy	reflecRon	 Glossy	refracRon	 Spec.	reflecRon	 Spec.	refracRon	 SSS	
Input	Lookup	 ArithmeRc	 Procedural	 Example	 Example	 Example	Blend	BSDFs
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Radeon ProRender Plugins
From AMD From third party
3DS Max
Maya
Solidworks
Blender
Coming soon!!
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Portal
Displacement mapping
CPU + GPU
VRay Material Converter
3DS Max Plugin New Features
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Portal
Displacement mapping
CPU + GPU
VRay Material Converter
3DS Max Plugin New Features
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Portal
Displacement mapping
CPU + GPU
VRay Material Converter
3DS Max Plugin New Features
P O L A R I S T E C H D AYP O L A R I S T E C H D AY
Thanks to Nicholas Timmons, Dmitry Kozlov for Unity integration
Acknowledgement

More Related Content

What's hot

Holy smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth ThomasHoly smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth ThomasAMD Developer Central
 
PG-4037, Fast modal analysis with NX Nastran and GPUs, by Leonard Hoffnung
PG-4037, Fast modal analysis with NX Nastran and GPUs, by Leonard HoffnungPG-4037, Fast modal analysis with NX Nastran and GPUs, by Leonard Hoffnung
PG-4037, Fast modal analysis with NX Nastran and GPUs, by Leonard HoffnungAMD Developer Central
 
5 Major Challenges in Interactive Rendering
5 Major Challenges in Interactive Rendering5 Major Challenges in Interactive Rendering
5 Major Challenges in Interactive RenderingElectronic Arts / DICE
 
The Rendering Technology of Killzone 2
The Rendering Technology of Killzone 2The Rendering Technology of Killzone 2
The Rendering Technology of Killzone 2Guerrilla
 
Getting started with Ray Tracing in Unity 2019.3 - Unite Copenhagen 2019
Getting started with Ray Tracing in Unity 2019.3 - Unite Copenhagen 2019Getting started with Ray Tracing in Unity 2019.3 - Unite Copenhagen 2019
Getting started with Ray Tracing in Unity 2019.3 - Unite Copenhagen 2019Unity Technologies
 
Universal Render Pipeline and the features used to create the Boat Attack dem...
Universal Render Pipeline and the features used to create the Boat Attack dem...Universal Render Pipeline and the features used to create the Boat Attack dem...
Universal Render Pipeline and the features used to create the Boat Attack dem...Unity Technologies
 
FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteElectronic Arts / DICE
 
Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)Tiago Sousa
 
Future Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsFuture Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsElectronic Arts / DICE
 
High Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in FrostbiteHigh Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in FrostbiteElectronic Arts / DICE
 
Keynote (Mike Muller) - Is There Anything New in Heterogeneous Computing - by...
Keynote (Mike Muller) - Is There Anything New in Heterogeneous Computing - by...Keynote (Mike Muller) - Is There Anything New in Heterogeneous Computing - by...
Keynote (Mike Muller) - Is There Anything New in Heterogeneous Computing - by...AMD Developer Central
 
GS-4147, TressFX 2.0, by Bill-Bilodeau
GS-4147, TressFX 2.0, by Bill-BilodeauGS-4147, TressFX 2.0, by Bill-Bilodeau
GS-4147, TressFX 2.0, by Bill-BilodeauAMD Developer Central
 
PT-4054, "OpenCL™ Accelerated Compute Libraries" by John Melonakos
PT-4054, "OpenCL™ Accelerated Compute Libraries" by John MelonakosPT-4054, "OpenCL™ Accelerated Compute Libraries" by John Melonakos
PT-4054, "OpenCL™ Accelerated Compute Libraries" by John MelonakosAMD Developer Central
 
vkFX: Effect(ive) approach for Vulkan API
vkFX: Effect(ive) approach for Vulkan APIvkFX: Effect(ive) approach for Vulkan API
vkFX: Effect(ive) approach for Vulkan APITristan Lorach
 
Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)Johan Andersson
 
Dissecting the Rendering of The Surge
Dissecting the Rendering of The SurgeDissecting the Rendering of The Surge
Dissecting the Rendering of The SurgePhilip Hammer
 

What's hot (20)

Holy smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth ThomasHoly smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
 
PG-4037, Fast modal analysis with NX Nastran and GPUs, by Leonard Hoffnung
PG-4037, Fast modal analysis with NX Nastran and GPUs, by Leonard HoffnungPG-4037, Fast modal analysis with NX Nastran and GPUs, by Leonard Hoffnung
PG-4037, Fast modal analysis with NX Nastran and GPUs, by Leonard Hoffnung
 
Mantle for Developers
Mantle for DevelopersMantle for Developers
Mantle for Developers
 
5 Major Challenges in Interactive Rendering
5 Major Challenges in Interactive Rendering5 Major Challenges in Interactive Rendering
5 Major Challenges in Interactive Rendering
 
The Rendering Technology of Killzone 2
The Rendering Technology of Killzone 2The Rendering Technology of Killzone 2
The Rendering Technology of Killzone 2
 
Bending the Graphics Pipeline
Bending the Graphics PipelineBending the Graphics Pipeline
Bending the Graphics Pipeline
 
Getting started with Ray Tracing in Unity 2019.3 - Unite Copenhagen 2019
Getting started with Ray Tracing in Unity 2019.3 - Unite Copenhagen 2019Getting started with Ray Tracing in Unity 2019.3 - Unite Copenhagen 2019
Getting started with Ray Tracing in Unity 2019.3 - Unite Copenhagen 2019
 
Universal Render Pipeline and the features used to create the Boat Attack dem...
Universal Render Pipeline and the features used to create the Boat Attack dem...Universal Render Pipeline and the features used to create the Boat Attack dem...
Universal Render Pipeline and the features used to create the Boat Attack dem...
 
FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in Frostbite
 
Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)
 
Future Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsFuture Directions for Compute-for-Graphics
Future Directions for Compute-for-Graphics
 
High Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in FrostbiteHigh Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in Frostbite
 
Keynote (Mike Muller) - Is There Anything New in Heterogeneous Computing - by...
Keynote (Mike Muller) - Is There Anything New in Heterogeneous Computing - by...Keynote (Mike Muller) - Is There Anything New in Heterogeneous Computing - by...
Keynote (Mike Muller) - Is There Anything New in Heterogeneous Computing - by...
 
GS-4147, TressFX 2.0, by Bill-Bilodeau
GS-4147, TressFX 2.0, by Bill-BilodeauGS-4147, TressFX 2.0, by Bill-Bilodeau
GS-4147, TressFX 2.0, by Bill-Bilodeau
 
Scope Stack Allocation
Scope Stack AllocationScope Stack Allocation
Scope Stack Allocation
 
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's EdgeThe Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
 
PT-4054, "OpenCL™ Accelerated Compute Libraries" by John Melonakos
PT-4054, "OpenCL™ Accelerated Compute Libraries" by John MelonakosPT-4054, "OpenCL™ Accelerated Compute Libraries" by John Melonakos
PT-4054, "OpenCL™ Accelerated Compute Libraries" by John Melonakos
 
vkFX: Effect(ive) approach for Vulkan API
vkFX: Effect(ive) approach for Vulkan APIvkFX: Effect(ive) approach for Vulkan API
vkFX: Effect(ive) approach for Vulkan API
 
Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)
 
Dissecting the Rendering of The Surge
Dissecting the Rendering of The SurgeDissecting the Rendering of The Surge
Dissecting the Rendering of The Surge
 

Viewers also liked

確率的ライトカリング 理論と実装 (CEDEC2016)
確率的ライトカリング 理論と実装 (CEDEC2016)確率的ライトカリング 理論と実装 (CEDEC2016)
確率的ライトカリング 理論と実装 (CEDEC2016)Takahiro Harada
 
[2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays
[2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays[2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays
[2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRaysTakahiro Harada
 
Introducing Firerender for 3DS Max
Introducing Firerender for 3DS MaxIntroducing Firerender for 3DS Max
Introducing Firerender for 3DS MaxTakahiro Harada
 
Physics Tutorial, GPU Physics (GDC2010)
Physics Tutorial, GPU Physics (GDC2010)Physics Tutorial, GPU Physics (GDC2010)
Physics Tutorial, GPU Physics (GDC2010)Takahiro Harada
 
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)Introduction to Monte Carlo Ray Tracing (CEDEC 2013)
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)Takahiro Harada
 
Forward+ (EUROGRAPHICS 2012)
Forward+ (EUROGRAPHICS 2012)Forward+ (EUROGRAPHICS 2012)
Forward+ (EUROGRAPHICS 2012)Takahiro Harada
 
A 2.5D Culling for Forward+ (SIGGRAPH ASIA 2012)
A 2.5D Culling for Forward+ (SIGGRAPH ASIA 2012)A 2.5D Culling for Forward+ (SIGGRAPH ASIA 2012)
A 2.5D Culling for Forward+ (SIGGRAPH ASIA 2012)Takahiro Harada
 
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...Takahiro Harada
 
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 AndromedaElectronic Arts / DICE
 
AMD and the new “Zen” High Performance x86 Core at Hot Chips 28
AMD and the new “Zen” High Performance x86 Core at Hot Chips 28AMD and the new “Zen” High Performance x86 Core at Hot Chips 28
AMD and the new “Zen” High Performance x86 Core at Hot Chips 28AMD
 
Heterogeneous Particle based Simulation (SIGGRAPH ASIA 2011)
Heterogeneous Particle based Simulation (SIGGRAPH ASIA 2011)Heterogeneous Particle based Simulation (SIGGRAPH ASIA 2011)
Heterogeneous Particle based Simulation (SIGGRAPH ASIA 2011)Takahiro Harada
 
A Parallel Constraint Solver for a Rigid Body Simulation (SIGGRAPH ASIA 2011)
A Parallel Constraint Solver for a Rigid Body Simulation (SIGGRAPH ASIA 2011)A Parallel Constraint Solver for a Rigid Body Simulation (SIGGRAPH ASIA 2011)
A Parallel Constraint Solver for a Rigid Body Simulation (SIGGRAPH ASIA 2011)Takahiro Harada
 
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...Takahiro Harada
 
GDC 2017 Scott Brodie - Hero Generations Mobile Postmortem
GDC 2017 Scott Brodie - Hero Generations Mobile PostmortemGDC 2017 Scott Brodie - Hero Generations Mobile Postmortem
GDC 2017 Scott Brodie - Hero Generations Mobile PostmortemScott Brodie
 
AMD Naples CPU for Data Center
AMD Naples CPU for Data CenterAMD Naples CPU for Data Center
AMD Naples CPU for Data CenterLow Hong Chuan
 
AMD Ryzen CPU Zen Cores Architecture
AMD Ryzen CPU Zen Cores ArchitectureAMD Ryzen CPU Zen Cores Architecture
AMD Ryzen CPU Zen Cores ArchitectureLow Hong Chuan
 
Progressive photon mapping
Progressive photon mappingProgressive photon mapping
Progressive photon mappingdenniskempin
 
ASUS 200 Series Motherboard
ASUS 200 Series MotherboardASUS 200 Series Motherboard
ASUS 200 Series MotherboardLow Hong Chuan
 
AMD Vega Presentation - GPU Memory Architecture
AMD Vega Presentation - GPU Memory ArchitectureAMD Vega Presentation - GPU Memory Architecture
AMD Vega Presentation - GPU Memory ArchitectureLow Hong Chuan
 

Viewers also liked (20)

確率的ライトカリング 理論と実装 (CEDEC2016)
確率的ライトカリング 理論と実装 (CEDEC2016)確率的ライトカリング 理論と実装 (CEDEC2016)
確率的ライトカリング 理論と実装 (CEDEC2016)
 
[2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays
[2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays[2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays
[2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays
 
Introducing Firerender for 3DS Max
Introducing Firerender for 3DS MaxIntroducing Firerender for 3DS Max
Introducing Firerender for 3DS Max
 
Physics Tutorial, GPU Physics (GDC2010)
Physics Tutorial, GPU Physics (GDC2010)Physics Tutorial, GPU Physics (GDC2010)
Physics Tutorial, GPU Physics (GDC2010)
 
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)Introduction to Monte Carlo Ray Tracing (CEDEC 2013)
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)
 
Forward+ (EUROGRAPHICS 2012)
Forward+ (EUROGRAPHICS 2012)Forward+ (EUROGRAPHICS 2012)
Forward+ (EUROGRAPHICS 2012)
 
A 2.5D Culling for Forward+ (SIGGRAPH ASIA 2012)
A 2.5D Culling for Forward+ (SIGGRAPH ASIA 2012)A 2.5D Culling for Forward+ (SIGGRAPH ASIA 2012)
A 2.5D Culling for Forward+ (SIGGRAPH ASIA 2012)
 
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
 
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
 
AMD and the new “Zen” High Performance x86 Core at Hot Chips 28
AMD and the new “Zen” High Performance x86 Core at Hot Chips 28AMD and the new “Zen” High Performance x86 Core at Hot Chips 28
AMD and the new “Zen” High Performance x86 Core at Hot Chips 28
 
Heterogeneous Particle based Simulation (SIGGRAPH ASIA 2011)
Heterogeneous Particle based Simulation (SIGGRAPH ASIA 2011)Heterogeneous Particle based Simulation (SIGGRAPH ASIA 2011)
Heterogeneous Particle based Simulation (SIGGRAPH ASIA 2011)
 
A Parallel Constraint Solver for a Rigid Body Simulation (SIGGRAPH ASIA 2011)
A Parallel Constraint Solver for a Rigid Body Simulation (SIGGRAPH ASIA 2011)A Parallel Constraint Solver for a Rigid Body Simulation (SIGGRAPH ASIA 2011)
A Parallel Constraint Solver for a Rigid Body Simulation (SIGGRAPH ASIA 2011)
 
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
 
GDC 2017 Scott Brodie - Hero Generations Mobile Postmortem
GDC 2017 Scott Brodie - Hero Generations Mobile PostmortemGDC 2017 Scott Brodie - Hero Generations Mobile Postmortem
GDC 2017 Scott Brodie - Hero Generations Mobile Postmortem
 
AMD Naples CPU for Data Center
AMD Naples CPU for Data CenterAMD Naples CPU for Data Center
AMD Naples CPU for Data Center
 
AMD Ryzen CPU Zen Cores Architecture
AMD Ryzen CPU Zen Cores ArchitectureAMD Ryzen CPU Zen Cores Architecture
AMD Ryzen CPU Zen Cores Architecture
 
Progressive photon mapping
Progressive photon mappingProgressive photon mapping
Progressive photon mapping
 
ASUS 200 Series Motherboard
ASUS 200 Series MotherboardASUS 200 Series Motherboard
ASUS 200 Series Motherboard
 
AMD Vega Presentation - GPU Memory Architecture
AMD Vega Presentation - GPU Memory ArchitectureAMD Vega Presentation - GPU Memory Architecture
AMD Vega Presentation - GPU Memory Architecture
 
HDMI 2.1 中文簡報
HDMI 2.1 中文簡報HDMI 2.1 中文簡報
HDMI 2.1 中文簡報
 

Similar to [2017 GDC] Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow

SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time RaytracingSIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time RaytracingElectronic Arts / DICE
 
CS 354 Programmable Shading
CS 354 Programmable ShadingCS 354 Programmable Shading
CS 354 Programmable ShadingMark Kilgard
 
Killzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo PostmortemKillzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo PostmortemGuerrilla
 
Creating next-gen VR and MR experiences using Varjo VR-1 and XR-1 - Unite Cop...
Creating next-gen VR and MR experiences using Varjo VR-1 and XR-1 - Unite Cop...Creating next-gen VR and MR experiences using Varjo VR-1 and XR-1 - Unite Cop...
Creating next-gen VR and MR experiences using Varjo VR-1 and XR-1 - Unite Cop...Unity Technologies
 
Crysis 2-key-rendering-features
Crysis 2-key-rendering-featuresCrysis 2-key-rendering-features
Crysis 2-key-rendering-featuresRaimundo Renato
 
The Rendering Pipeline - Challenges & Next Steps
The Rendering Pipeline - Challenges & Next StepsThe Rendering Pipeline - Challenges & Next Steps
The Rendering Pipeline - Challenges & Next StepsJohan Andersson
 
Deferred rendering in_leadwerks_engine[1]
Deferred rendering in_leadwerks_engine[1]Deferred rendering in_leadwerks_engine[1]
Deferred rendering in_leadwerks_engine[1]ozlael ozlael
 
Solving channel coding simulation and optimization problems using GPU
Solving channel coding simulation and optimization problems using GPUSolving channel coding simulation and optimization problems using GPU
Solving channel coding simulation and optimization problems using GPUUsatyuk Vasiliy
 
CUDA by Example : Constant Memory and Events : Notes
CUDA by Example : Constant Memory and Events : NotesCUDA by Example : Constant Memory and Events : Notes
CUDA by Example : Constant Memory and Events : NotesSubhajit Sahu
 
Academy Software Foundation on MaterialX | SIGGRAPH 2021
Academy Software Foundation on MaterialX | SIGGRAPH 2021 Academy Software Foundation on MaterialX | SIGGRAPH 2021
Academy Software Foundation on MaterialX | SIGGRAPH 2021 Alejandro Franceschi
 
Making High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis CataldiMaking High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis CataldiUnreal Engine
 
Making High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis CataldiMaking High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis CataldiLuis Cataldi
 
Design and implementation of GPU-based SAR image processor
Design and implementation of GPU-based SAR image processorDesign and implementation of GPU-based SAR image processor
Design and implementation of GPU-based SAR image processorNajeeb Ahmad
 
Introduction to the Graphics Pipeline of the PS3
Introduction to the Graphics Pipeline of the PS3Introduction to the Graphics Pipeline of the PS3
Introduction to the Graphics Pipeline of the PS3Slide_N
 
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 ProblemsElectronic Arts / DICE
 
NVIDIA's OpenGL Functionality
NVIDIA's OpenGL FunctionalityNVIDIA's OpenGL Functionality
NVIDIA's OpenGL FunctionalityMark Kilgard
 
Photo echance. Problems. Solutions. Ideas
Photo echance. Problems. Solutions. Ideas Photo echance. Problems. Solutions. Ideas
Photo echance. Problems. Solutions. Ideas Andrew Nikishaev
 
Deep Learning on the SaturnV Cluster
Deep Learning on the SaturnV ClusterDeep Learning on the SaturnV Cluster
Deep Learning on the SaturnV Clusterinside-BigData.com
 

Similar to [2017 GDC] Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow (20)

SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time RaytracingSIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing
 
CS 354 Programmable Shading
CS 354 Programmable ShadingCS 354 Programmable Shading
CS 354 Programmable Shading
 
Killzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo PostmortemKillzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo Postmortem
 
Creating next-gen VR and MR experiences using Varjo VR-1 and XR-1 - Unite Cop...
Creating next-gen VR and MR experiences using Varjo VR-1 and XR-1 - Unite Cop...Creating next-gen VR and MR experiences using Varjo VR-1 and XR-1 - Unite Cop...
Creating next-gen VR and MR experiences using Varjo VR-1 and XR-1 - Unite Cop...
 
Vray
VrayVray
Vray
 
Crysis 2-key-rendering-features
Crysis 2-key-rendering-featuresCrysis 2-key-rendering-features
Crysis 2-key-rendering-features
 
The Rendering Pipeline - Challenges & Next Steps
The Rendering Pipeline - Challenges & Next StepsThe Rendering Pipeline - Challenges & Next Steps
The Rendering Pipeline - Challenges & Next Steps
 
Deferred rendering in_leadwerks_engine[1]
Deferred rendering in_leadwerks_engine[1]Deferred rendering in_leadwerks_engine[1]
Deferred rendering in_leadwerks_engine[1]
 
Solving channel coding simulation and optimization problems using GPU
Solving channel coding simulation and optimization problems using GPUSolving channel coding simulation and optimization problems using GPU
Solving channel coding simulation and optimization problems using GPU
 
CUDA by Example : Constant Memory and Events : Notes
CUDA by Example : Constant Memory and Events : NotesCUDA by Example : Constant Memory and Events : Notes
CUDA by Example : Constant Memory and Events : Notes
 
Academy Software Foundation on MaterialX | SIGGRAPH 2021
Academy Software Foundation on MaterialX | SIGGRAPH 2021 Academy Software Foundation on MaterialX | SIGGRAPH 2021
Academy Software Foundation on MaterialX | SIGGRAPH 2021
 
Haskell Accelerate
Haskell  AccelerateHaskell  Accelerate
Haskell Accelerate
 
Making High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis CataldiMaking High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis Cataldi
 
Making High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis CataldiMaking High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis Cataldi
 
Design and implementation of GPU-based SAR image processor
Design and implementation of GPU-based SAR image processorDesign and implementation of GPU-based SAR image processor
Design and implementation of GPU-based SAR image processor
 
Introduction to the Graphics Pipeline of the PS3
Introduction to the Graphics Pipeline of the PS3Introduction to the Graphics Pipeline of the PS3
Introduction to the Graphics Pipeline of the PS3
 
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
 
NVIDIA's OpenGL Functionality
NVIDIA's OpenGL FunctionalityNVIDIA's OpenGL Functionality
NVIDIA's OpenGL Functionality
 
Photo echance. Problems. Solutions. Ideas
Photo echance. Problems. Solutions. Ideas Photo echance. Problems. Solutions. Ideas
Photo echance. Problems. Solutions. Ideas
 
Deep Learning on the SaturnV Cluster
Deep Learning on the SaturnV ClusterDeep Learning on the SaturnV Cluster
Deep Learning on the SaturnV Cluster
 

Recently uploaded

"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 

Recently uploaded (20)

"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 

[2017 GDC] Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow

  • 1. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow Takahiro Harada, AMD 2017/3
  • 2. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Introduction Radeon ProRender & Radeon Rays Radeon Rays Unity + Radeon Rays Integration to real time applications Radeon ProRender Agenda
  • 3. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Introduction
  • 4. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Ray Tracing Solution from AMD A GPU accelerated ray triangle intersection engine For low level engine developers OpenCL, Vulkan, C++ backends Full open source A GPU accelerated light transport simulator Computes global illumination using Monte Carlo ray tracing (path tracing) Intersection, shading, lighting, sampling, all in High level API Set up a scene, call render() Returns you a nice render For high level engine developers OpenCL, C++ backend Open source planned
  • 5. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Not locking users to AMD platform Trying to make it run as many platforms as possible Using OpenCL 1.2, industry standard API We implement at least GPU optimized OpenCL code CPU optimized C++ code better control, optimization compared to relying on OpenCL to run on the CPU Our solutions are competitive if compared on a CPU based solution As OpenCL is dynamically loaded, OCL isn’t necessary If it cannot find OCL, it’ll fall back to the CPU implementation Most likely they run on your machine as they are AMD’s Approach
  • 6. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Support multiple vendors, multiple OSes (Windows, Linux, MacOS) No initial investment is necessary to use our solution It does run on CPU too If you have an AMD GPUs, it is better Better performance Better experience We do full testing on AMD GPUs Non AMD platforms, it depends on the vendor’s OpenCL implementation We do crash test on some vendor’s GPUs We disable some vendor’s GPUs unfortunately because of their OpenCL bug (compiler, runtime) AMD’s Approach
  • 7. P O L A R I S T E C H D AYP O L A R I S T E C H D AY How Radeon Rays, Radeon ProRender are used in game development process This Talk
  • 8. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Radeon Rays
  • 9. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Can be used as a building block of a renderer Global illumination renderer Sound renderer (True Audio) AI Comes with a reference renderer It could be used for lightmap baking and light probe calculation Uses ray casting There are a few game companies integrating Radeon Rays We integrated Radeon Rays into Unity Radeon Rays h"ps://github.com/GPUOpen-LibrariesAndSDKs/RadeonRays_SDK/
  • 10. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Simple C++ API // Find closest intersection! void QueryIntersection(Buffer const* rays, int numrays, Buffer* hitinfos, ! Event const* waitevent, Event** event) const;! // Find any intersection.! void QueryOcclusion(Buffer const* rays, int numrays, Buffer* hitresults, ! Event const* waitevent, Event** event) const;! Passing an array of rays and number of rays It fills hit results Using Radeon Rays
  • 11. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Embree is popular, but using Radeon Rays gives you more With Radeon Rays It uses Embree for the CPU backend => Same performance is guaranteed You can turn on the GPU backend => Performance improvements when you have a GPU Using Radeon Rays
  • 12. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Unity + Radeon Rays
  • 13. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Lightmap is a solution for global illumination Global Illumination is Essential to get realism Computationally expensive Real time global illumination is still a research topic No obvious solution using rasterization yet Global Illumination
  • 14. P O L A R I S T E C H D AYP O L A R I S T E C H D AY
  • 15. P O L A R I S T E C H D AYP O L A R I S T E C H D AY
  • 16. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Monte Carlo ray tracing is a way to compute global illumination Too computationally intensive for game runtime GPU accelerated ray tracing is a hot topic these days Still not ready for real time game Potential in content creation (Radeon ProRender) Lightmap is solution for real-time global illumination Global Illumination
  • 17. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Lightmap Many games today uses lightmaps Lightmap Texture storing global illumination Although there are some limitations, it’s widely used Precompute global illumination Ray traced global illumination Saved in texture “lightmap” At runtime, simply put it as a texture, fetch it The precomputation takes forever for a complex game scene Hours to days Radeon Rays can help you from this pain
  • 18. P O L A R I S T E C H D AYP O L A R I S T E C H D AY A fast lightmap baking solution Runs on GPU 10 – 20x performance improvement Before 1 day baking => 1 hour with Radeon Rays Faster solution => Faster iteration => Better content creation Lightmap Baker using Radeon Rays
  • 19. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Collaboration of Unity & AMD Implemented in a branch of Unity 5.X Based on the existing CPU lightmap baker Using infrastructure for lightmap baking in Unity The logic needs to be changed to fill the GPU better Before: for each lightmap, for each texel, execute After: for each lightmap, execute all the texels in the lightmap in parallel Implemented 2 modes Ambient occlusion and Global illumination Unity Lightmap Baker using Radeon Rays
  • 20. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Using Unity’s lightmap G buffer rendering functionality World position Surface normal These are enough to do AO computation Primary rays are generated by cosine weighted sampling Makes the integration simple (simply count without any PDF computation) AO is calculated as 1 – [# of occluded rays] / [# of casted rays] 1 – sum( weight( hit distance ) ) / [# of casted rays] Ambient Occlusion Mode
  • 21. P O L A R I S T E C H D AYP O L A R I S T E C H D AY AO ray doesn’t bounce, but it does in GI Maximum bounces is a user defined parameter Ray termination Supported light types Point light Spot light Directional light Area light Emissive shader IBL Global Illumination Mode
  • 22. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Surface properties are filled at lightmap G buffer rendering stages World position Surface normal (with normal maps) Diffuse albedo Necessary for color bleeding Emission View dependent effect are ignored glossy, specular reflections Global Illumination Mode
  • 23. P O L A R I S T E C H D AYP O L A R I S T E C H D AY for lightmap in lightmaps! ray = generatePrimaryRay( lightmap )! for bounce < maxBounce! hit = RR::intersect( ray )! // emissive! texel += evaluateEmissive( hit )! // ibl! shadowRay = generateRayIBL( hit )! shadowHit = RR:intersect( shadowRay )! texel += evaluateIBL( hit, shadowHit )! for light in lights // point, spot, directional! shadowRay = generateRayLight( hit, light )! shadowHit = RR:intersect( shadowRay )! texel += directIllumination( shadowHit, light )! ray = generateNextRay( ray, hit ) Global Illumination Mode
  • 24. P O L A R I S T E C H D AYP O L A R I S T E C H D AY 288k Tris 497k verts Directional lights Point lights Radeon Rays 160-170MRays/s (a few sec for IBL + emissive) Existing CPU code <10MRays/s Lightmap Visualization
  • 25. P O L A R I S T E C H D AYP O L A R I S T E C H D AY GI + Texture Final Render
  • 26. P O L A R I S T E C H D AYP O L A R I S T E C H D AY This project is still in progress We are going to improve to make it Robust Better convergence Progressive rendering, so that it can run async with other work A big advantage over CPU Finally
  • 27. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Other Radeon Rays Adaptions
  • 28. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Real-time rendering plugin for Autodesk Revit Exploring the model with high quality rendering Use of custom fork of Radeon Rays
  • 29. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Real-time rendering plugin for Autodesk Revit Exploring the model with high quality rendering Use of custom fork of Radeon Rays Radeon Rays is used to compute illumination caches Hybrid global illumination solution Hierarchy of illumination caches Screen space ray tracing World space ray tracing as a last resort BVH streaming
  • 30. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Radeon Rays integration Some game studios Radeon Rays integration is not for everybody If you don’t need the fine control in baking, Radeon ProRender might be the solution for you Radeon ProRender has not only ray intersection, but all the logic necessary for GI (shading, sampling etc) are there You only need to set up the scene and call rprContextRender() Lightmap render Light probe render Interactive preview Others and More
  • 31. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Radeon ProRender
  • 32. P O L A R I S T E C H D AYP O L A R I S T E C H D AY A workflow where we bake, apply, then you can see global illumination Could be wasteful Texture resolution is too high Could be insufficient Texture resolution is too low Optimal sampling rate is difficult with lightmap solution Interactive global illumination solution with Radeon ProRender is alternative Single click “Render” Simpler workflow Progressive global illumination refinement What I have talked about are
  • 33. P O L A R I S T E C H D AY MARCH 2016 | FIRERENDER, FIRERAYS Render Examples
  • 34. P O L A R I S T E C H D AYP O L A R I S T E C H D AY VRay Material Converter
  • 35. P O L A R I S T E C H D AYP O L A R I S T E C H D AY VRay Material Converter
  • 36. P O L A R I S T E C H D AYP O L A R I S T E C H D AY https://www.youtube.com/watch?v=z9wArygtwlI Radeon ProRender Demo
  • 37. P O L A R I S T E C H D AYP O L A R I S T E C H D AY A fast GPU accelerated global illumination renderer Not fast enough for game runtime There is a potential in game content creation acceleration Provided as SDK for developers (C API) Plugins for creators Radeon ProRender is
  • 38. P O L A R I S T E C H D AY MARCH 2016 | FIRERENDER, FIRERAYS Features } Camera 360 PerspecRve VR } Geometry Instancing Mesh Subdivision } Lights Area IES Spot Point
  • 39. P O L A R I S T E C H D AY MARCH 2016 | FIRERENDER, FIRERAYS Features MATERIALS } BSDFs } Basic components Diffuse reflecRon } Shader graph } Arbitrary connecRon of shader nodes for flexible shading system Diffuse refracRon Glossy reflecRon Glossy refracRon Spec. reflecRon Spec. refracRon SSS Input Lookup ArithmeRc Procedural Example Example Example Blend BSDFs
  • 40. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Radeon ProRender Plugins From AMD From third party 3DS Max Maya Solidworks Blender Coming soon!!
  • 41. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Portal Displacement mapping CPU + GPU VRay Material Converter 3DS Max Plugin New Features
  • 42. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Portal Displacement mapping CPU + GPU VRay Material Converter 3DS Max Plugin New Features
  • 43. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Portal Displacement mapping CPU + GPU VRay Material Converter 3DS Max Plugin New Features
  • 44. P O L A R I S T E C H D AYP O L A R I S T E C H D AY Thanks to Nicholas Timmons, Dmitry Kozlov for Unity integration Acknowledgement