Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow. Takahiro Harada, AMD 2017/3

Similar documents
Real-Time Ray-Tracing Techniques for Integration into Existing Renderers TAKAHIRO HARADA, AMD 3/2018

Interactive Light Mapping with PowerVR Ray Tracing

Practical Techniques for Ray Tracing in Games. Gareth Morgan (Imagination Technologies) Aras Pranckevičius (Unity Technologies) March, 2014

V-Ray RT: A New Paradigm in Photorealistic Raytraced Rendering on NVIDIA GPUs. Vladimir Koylazov Chaos Software.

Point based global illumination is now a standard tool for film quality renderers. Since it started out as a real time technique it is only natural

Enabling immersive gaming experiences Intro to Ray Tracing

Enhancing Traditional Rasterization Graphics with Ray Tracing. October 2015

Computer Graphics. Lecture 14 Bump-mapping, Global Illumination (1)

COMP 4801 Final Year Project. Ray Tracing for Computer Graphics. Final Project Report FYP Runjing Liu. Advised by. Dr. L.Y.

Enhancing Traditional Rasterization Graphics with Ray Tracing. March 2015

Ray Tracing. Computer Graphics CMU /15-662, Fall 2016

Rendering Algorithms: Real-time indirect illumination. Spring 2010 Matthias Zwicker

Advancements in V-Ray RT GPU GTC 2015 Vladimir Koylazov Blagovest Taskov

Global Illumination. COMP 575/770 Spring 2013

GLOBAL ILLUMINATION IN UNITY 5

Dynamic Ambient Occlusion and Indirect Lighting. Michael Bunnell NVIDIA Corporation

INFOGR Computer Graphics. J. Bikker - April-July Lecture 10: Ground Truth. Welcome!

Shadows. COMP 575/770 Spring 2013

Photon Mapping. Due: 3/24/05, 11:59 PM

GUERRILLA DEVELOP CONFERENCE JULY 07 BRIGHTON

Global Illumination CS334. Daniel G. Aliaga Department of Computer Science Purdue University

Per-Pixel Lighting and Bump Mapping with the NVIDIA Shading Rasterizer

DELL.CO.UK/WORKSTATION-SOLUTIONS FIREPROGRAPHICS.COM TECHNICAL REPORT SOLIDWORKS VISUALISATION

Interactive Methods in Scientific Visualization

Lighting. To do. Course Outline. This Lecture. Continue to work on ray programming assignment Start thinking about final project

CS354R: Computer Game Technology

Me Again! Peter Chapman. if it s important / time-sensitive

After the release of Maxwell in September last year, a number of press articles appeared that describe VXGI simply as a technology to improve

The Rendering Equation & Monte Carlo Ray Tracing

CMSC427 Advanced shading getting global illumination by local methods. Credit: slides Prof. Zwicker

Intro to Ray-Tracing & Ray-Surface Acceleration

Voxel Cone Tracing and Sparse Voxel Octree for Real-time Global Illumination. Cyril Crassin NVIDIA Research

Final Project: Real-Time Global Illumination with Radiance Regression Functions

NVIDIA Advanced Rendering

Rendering 17 Mixed Lighting

NVIDIA Case Studies:

Photorealism: Ray Tracing

Outline of Lecture. Real-Time High Quality Rendering. Geometry or Vertex Pipeline. Basic Hardware Pipeline. Pixel or Fragment Pipeline

Crack-Free Tessellation Displacement

SIGGRAPH 2013 Shaping the Future of Visual Computing

Real - Time Rendering. Pipeline optimization. Michal Červeňanský Juraj Starinský

About Phoenix FD PLUGIN FOR 3DS MAX AND MAYA. SIMULATING AND RENDERING BOTH LIQUIDS AND FIRE/SMOKE. USED IN MOVIES, GAMES AND COMMERCIALS.

Physically Based Shading in Unity. Aras Pranckevičius Rendering Dude

global light baking software

Metal for Ray Tracing Acceleration

Chapter 4- Blender Render Engines

Computer Graphics. Lecture 13. Global Illumination 1: Ray Tracing and Radiosity. Taku Komura

design solutions Visualize Product Matrix

NVIDIA Material Definition Language

Today. Rendering algorithms. Rendering algorithms. Images. Images. Rendering Algorithms. Course overview Organization Introduction to ray tracing

DEFERRED RENDERING STEFAN MÜLLER ARISONA, ETH ZURICH SMA/

Sung-Eui Yoon ( 윤성의 )

Deferred Rendering Due: Wednesday November 15 at 10pm

Conemarching in VR. Johannes Saam Mariano Merchante FRAMESTORE. Developing a Fractal experience at 90 FPS. / Framestore

GPU Ray Tracing at the Desktop and in the Cloud. Phillip Miller, NVIDIA Ludwig von Reiche, mental images

Sharing Physically Based Materials Between Renderers with MDL

There are many kinds of surface shaders, from those that affect basic surface color, to ones that apply bitmap textures and displacement.

Chapter 11. Caustics and Global Illumination

Ambien Occlusion. Lighting: Ambient Light Sources. Lighting: Ambient Light Sources. Summary

Homework #2. Shading, Ray Tracing, and Texture Mapping

V-RAY 3.6 FOR RHINO KEY FEATURES. January 2018

Dominic Filion, Senior Engineer Blizzard Entertainment. Rob McNaughton, Lead Technical Artist Blizzard Entertainment

Computer Graphics 1. Chapter 7 (June 17th, 2010, 2-4pm): Shading and rendering. LMU München Medieninformatik Andreas Butz Computergraphik 1 SS2010

03 RENDERING PART TWO

Copyright Khronos Group Page 1

Adding Spherical Harmonic Lighting to the Sushi Engine. Chris Oat 3D Application Research Group. ATI Research, Inc.

Hardware Accelerated Volume Visualization. Leonid I. Dimitrov & Milos Sramek GMI Austrian Academy of Sciences

Corona Sky Corona Sun Corona Light Create Camera About

REPORT SPONSORED BY AMD PRODUCED BY

Version 2.0. Complete lighting, shading, and rendering toolkit for artists

Rendering Part I (Basics & Ray tracing) Lecture 25 December 1, 2015

Optimizing and Profiling Unity Games for Mobile Platforms. Angelo Theodorou Senior Software Engineer, MPG Gamelab 2014, 25 th -27 th June

CS GAME PROGRAMMING Question bank

Advanced Graphics. Path Tracing and Photon Mapping Part 2. Path Tracing and Photon Mapping

Advancements in V-Ray RT GPU. Vlado Koylazov, CTO & Co-founder Blagovest Taskov, RT GPU Team Lead Alexander Soklev, RT GPU R&D

Lighting and Shading

For Intuition about Scene Lighting. Today. Limitations of Planar Shadows. Cast Shadows on Planar Surfaces. Shadow/View Duality.

V-RAY NEXT FOR 3DS MAX

CS451Real-time Rendering Pipeline

Raycast Rendering Maya 2013

The Making of Seemore WebGL. Will Eastcott, CEO, PlayCanvas

Computer Graphics. Lecture 10. Global Illumination 1: Ray Tracing and Radiosity. Taku Komura 12/03/15

Object Space Lighting. Dan Baker Founder, Oxide Games

TUTORIAL 7: Global Illumination & Ambient Occlusion

Rendering. Converting a 3D scene to a 2D image. Camera. Light. Rendering. View Plane

The Future of #GPU Rendering #GTC17 #Octane

Last Time. Why are Shadows Important? Today. Graphics Pipeline. Clipping. Rasterization. Why are Shadows Important?

Accelerating Realism with the (NVIDIA Scene Graph)

Siggraph Asia December 2011

LEVEL 1 ANIMATION ACADEMY2010

Topic 12: Texture Mapping. Motivation Sources of texture Texture coordinates Bump mapping, mip-mapping & env mapping

Global Illumination. Why Global Illumination. Pros/Cons and Applications. What s Global Illumination

Today. Rendering algorithms. Rendering algorithms. Images. Images. Rendering Algorithms. Course overview Organization Introduction to ray tracing

Course Recap + 3D Graphics on Mobile GPUs

AR-media TUTORIALS IMPROVING REALISM AMBIENT OCCLUSION. (June, 2011)

Render-To-Texture Caching. D. Sim Dietrich Jr.

LIGHTING - 1. Note. Lights. Ambient occlusion

Lecture 18: Primer on Ray Tracing Techniques

Topic 11: Texture Mapping 11/13/2017. Texture sources: Solid textures. Texture sources: Synthesized

Game Technology. Lecture Physically Based Rendering. Dipl-Inform. Robert Konrad Polona Caserman, M.Sc.

Transcription:

Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow Takahiro Harada, AMD 2017/3

Agenda Introduction Radeon ProRender & Radeon Rays Radeon Rays Unity + Radeon Rays Integration to real time applications Radeon ProRender

Introduction

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

AMD s Approach 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 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)

This Talk How Radeon Rays, Radeon ProRender are used in game development process

Radeon Rays

Radeon Rays 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 https://github.com/gpuopen-librariesandsdks/radeonrays_sdk/

Using Radeon Rays 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 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

Unity + Radeon Rays

Global Illumination 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 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

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

Lightmap Baker using Radeon Rays 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

Unity Lightmap Baker using Radeon Rays 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

Ambient Occlusion Mode 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]

Global Illumination Mode 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 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 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 )

Lightmap Visualization 288k Tris 497k verts Directional lights Point lights Radeon Rays 160-170MRays/s (a few sec for IBL + emissive) Existing CPU code <10MRays/s

Final Render GI + Texture

Finally 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

Other Radeon Rays Adaptions

Real-time rendering plugin for Autodesk Revit Exploring the model with high quality rendering Use of custom fork of Radeon Rays

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

Others and More 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

Radeon ProRender

What I have talked about are 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

Render Examples MARCH 2016 FIRERENDER, FIRERAYS

VRay Material Converter

VRay Material Converter

Radeon ProRender Demo https://www.youtube.com/watch?v=z9warygtwli

Radeon ProRender is 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

Features Camera Perspective 360 VR Geometry Mesh Instancing Subdivision Lights Point MARCH 2016 FIRERENDER, FIRERAYS Spot IES Area

Features MATERIALS BSDFs Basic components Diffuse reflection Diffuse refraction Glossy reflection Glossy refraction Spec. reflection Spec. refraction SSS Shader graph Arbitrary connection of shader nodes for flexible shading system Input Lookup Arithmetic Procedural Blend BSDFs Example Example Example MARCH 2016 FIRERENDER, FIRERAYS

Radeon ProRender Plugins From AMD 3DS Max Maya Solidworks Blender From third party Coming soon!!

3DS Max Plugin New Features Portal Displacement mapping CPU + GPU VRay Material Converter

3DS Max Plugin New Features Portal Displacement mapping CPU + GPU VRay Material Converter

3DS Max Plugin New Features Portal Displacement mapping CPU + GPU VRay Material Converter

Acknowledgement Thanks to Nicholas Timmons, Dmitry Kozlov for Unity integration