♪ [MUSIC] ♪
[NARRATOR] Welcome to Unite Now
where we bring Unity to you wherever you are.
[RUDY] Greetings. My name is Rudy Cazabon.
I am the Senior Technical Evangelist
for the Intel oneAPI Rendering Toolkit,
which is simply referred to as the Render Kit.
I have degrees in Space Sciences, Astrophysics,
Aerospace Engineering from Georgia Tech and Stanford.
I began my journey in graphics and rendering
synthetic illumination environments by simulating stutter processes,
and now I apply those same skills
to the process of creating beautifully rendered pixels.
In today's presentation, together we will explore
the powerful technologies of the components of the Render Kit
and how they have added value to the film and game pipelines.
Further, we will have a closer look
at integration into the Unity workflow
to empower the creative expression.
In today's agenda, we will take a quick look at
where Intel is going with the Xe architecture.
Next, we'll do introductions to the Intel oneAPI initiative,
and an introduction to the Intel oneAPI Rendering Toolkit.
We'll do a review of the components
and the value they deliver to Unity users,
do a deep dive of progressive lightmapping and denoising
in the context of the Unity Editor,
and do a quick wrap-up.
Well, what is Xe?
Xe is a culmination of multiple generations
of Intel graphics leading to Xe.
This culmination will enable ExaScale computing,
and deep learning and training to take place in the petaflops range.
However, we currently do know and understand
that workstation and gaming are areas that our compute power
is certainly sought after.
Some of you may have heard about the Intel oneAPI initiative.
Well, don't worry, we will not cover
all of what that initiative is about.
However, suffice it to say that it presents a unified,
standards-based programming model and tools that enable developers
to produce high-performance applications for current and future
CPUs and GPUs based on the Xe architecture.
It is a complementary set of toolkits with a base toolkit
and specialty add-on toolkits
to enable developers to quickly write performance applications.
The Render Toolkit just happens to be one of the specialty toolkits.
The Render Kit is designed from the ground up
to accelerate heavy computational workloads,
for rendering and ray tracing from libraries that create
high-performance and high-fidelity visual experiences.
The oneAPI Rendering Toolkit has five components,
beginning with Embree, followed by Open Image Denoise,
OpenSWR, the Open Volume Kernel Library, and OSPRay.
The five of them together constitute the current Render Kit.
The Render Kit was conceived and implemented from the ground up
as an open-source parallel processing optimized library.
The goal is simple: deliver high-performance,
and high-fidelity for photorealistic applications.
There are many uses of the libraries,
ranging from professional rendering, film animation,
and game production. Its primary benefit
is that it delivers high-performance,
high-fidelity images with global illumination
across all compute infrastructure in a way that is cost efficient.
It delivers interactive performance for any size data
and scales the solutions across laptops,
workstations, and the cloud.
Let's take a quick look at the components.
First, there's Embree, which is a collection of
high-performance ray tracing kernels,
and improves the performance
of photorealistic ray tracing rendering applications.
Next up, today's focus of discussion is Open Image Denoise.
It is a library composed of a set of high-performance,
high-quality machine learning denoising filters for images
rendered with ray tracing, with or without Embree.
Next, Volume Kernel Libraries and OSPRay,
where OSPRay represents an open-source, scalable
and portable ray tracing engine for high-fidelity visualization,
and OpenVKL is designed for computation
of 3D volumetric data for visualization.
Finally, there's OpenSWR, a performant and scalable
OpenGL-compatible software rasterizer
that allows the use of unmodified visualization software,
works with large datasets
when GPU hardware is not available or limiting.
As mentioned before, Embree is a highly-optimized
ray tracing kernel library.
And it is actively used in film production,
as per The Grinch produced by Illumination Studios.
And also, Embree is incorporated into the Corona Renderer.
It is broadly adopted in professional rendering
and scientific visualization.
It is a low-level API with acceleration structures
for ray and geometry intersections.
It improves the performance of photo realistic rendering applications
through performance-optimized ray tracing kernels,
provides ray tracing algorithms optimized for all Intel platforms,
and supports runtime code selection to choose the algorithms
that best match the CPUs instruction set.
Intel Open Image Denoise is a high-performance denoising library
for ray tracing using machine learning methods.
It supports denoising fully ray traced images and lightmaps,
and it reduces rendering or baking time without losing detail.
Its top features and benefits are that it reduces the time
to convergence generating images,
enabling you to render out fewer samples per pixel
but achieve almost identical results.
Efficient deep learning-based denoising filters
are trained to handle a wide range of samples per pixel,
suitable for interactive and offline rendering.
It supports ray traced final-frame and lightmap denoising,
and it has a C/C++ API that helps ensure easy integration
into most rendering solutions and applications.
Intel OSPRay. Well, what is it?
It is a cluster-capable,
scalable, and extendable ray tracing rendering library
that includes path tracing and volume rendering.
It provides an SDK to develop visualization applications,
high-end, high-level rendering API
to enable those applications to be created quickly.
Efficiently use threading and vectorization
to create interactive, high-fidelity applications
on Intel CPUs, and is extensible via plug-in modules.
At a high level, you can see
the user application at the very top,
backed on top of the Intel OSPRay, which sits on top of Embree,
OpenVKL, and Open Image Denoise.
And all of them onto the Intel Xeon or Core architectures,
and in the future, Xe.
It runs on all scales, and we expect that rapid integration
of the technology into your rendering application,
will be rather straightforward.
The Open Volume Kernel Library
enables rendering and simulation processing of 3D spatial data.
Volumetric data processing algorithms
are optimized for Intel platforms,
and some of the capabilities encompassed by it
are ray-based interval iteration,
volume observers, sampling, gradient computation,
and implicit iso-surfacing.
OpenSWR is a low-level rasterization library
up-streamed to the Mesa OpenGL open source project
to achieve high rendering performance
when GPUs are unavailable or are too limiting.
Completely CPU-based and built on top of LLVM,
this library provides performance advantages
over Mesa LLVMpipe renderers.
This runs on Intel-based laptops, workstations, and compute nodes
even in the highest of high-performance computing systems.
As Open Image Denoise is now in the Unity Editor workflow
let's take a few moments to acquaint ourselves
to where within the workflow and Editor it can be engaged.
For this demonstration, we will be using
the Unity DOTS Sample that's available at Unity's GitHub repo.
Using Unity Hub, we will select the DOTS Sample
and launch the project from there.
Once inside the project, we're going to select
from the available Scenes, and this one in particular,
we're going to select Whitebox_Gym_A.
As you can see, it's a very rich Scene
with lots of different geometries and the light,
and already preset for an HDRI Sky function.
How do you select that to Scene? Go up to the Windows menu item,
and underneath that, several items will roll out,
and select Rendering.
Under Rendering, select Light Settings.
This presents a dialog for the Lighting options.
Under the Lighting options, ensure that your Mixed Lighting is on
as it enables you to now navigate to the various Lightmap settings.
Let's first ensure that the Lightmapper is Progressive CPU,
and that the Filtering is set to Advanced.
Once that is set, you have access to the Direct Denoiser,
OpenImageDenoise,
and further down the Indirect Denoiser
can also be selected as OpenImageDenoise.
There you have done it. You have selected OpenImageDenoise.
The following video is a recording
of a demo shared by friends and colleagues at Unity.
It features a Scene where the computed lightmapping solution,
is applied to the real-time Scene
and is denoised with Open Image Denoise.
Various filter options are available within the demo
to apply to the lightmapping solution
ranging from no filtering to Gaussian Filtering,
and finally, application of Open Image Denoise.
In addition, there are three
quality levels that can be selected:
Production, Preview, and Fast Iteration,
that are available to enable comparisons
with the final image quality.
Let's go through these to get a sense
of the image quality that each one presents.
First, let's look at Preview Quality,
beginning with Open Image Denoise.
(silence)
Next, with Gaussian Filtering.
(silence)
Next, with no filtering applied.
(silence)
And with Open Image Denoise.
(silence)
Now, let's move onto the Fast Iteration Quality,
beginning, as before, with Open Image Denoise.
(silence)
We're now viewing the results with Gaussian Filtering.
(silence)
No filtering applied.
(silence)
And back to Open Image Denoise.
(silence)
Finally, let us review with Production Quality,
again, beginning with Open Image Denoise.
(silence)
Now, viewing the results with Gaussian Filtering.
(silence)
Now, viewing the results with no filtering applied.
(silence)
And at last, back to Open Image Denoise.
(silence)
Since we're always interested in eye candy,
and highlighting that Open Image Denoise,
as a library, can be used anywhere,
the following video shows its use within Blender.
The Intel Open Image Denoise library is available
as a node in the Compositing tab,
allowing developers and artists to adjust post-rendering results
using information from the Rendering Layers,
such as Albedo.
Simply turn on the Denoising Data in the Layers Property channel,
and add the Denoise node to the compositor,
then connect the Image, Normal, and Albedo nodes.
Some of the upcoming Intel oneAPI Rendering Toolkit features include
for Intel Embree, ultra compact tris and quads,
user geometry point queries, performance, upgrades,
and photon mapping.
For Intel Open Image Denoise,
spherical harmonics for lightmaps, more feature buffers,
and improvements on the training code.
For Intel Open Volume Kernel Library,
upcoming features include motion blur,
multi-attribute volumes, and particle volumes.
For OSPRay, high quality pixel reconstruction filters,
SciVis lighting improvements,
and OpenVDB volume support are coming.
And finally, with OpenSWR,
there will be continued maintenance of the technology.
In summary, we introduced
the Intel Xe architecture, where Intel is going forward
in its drive to get more performant graphics
and XPU components into the hands of developers in general.
We introduced the Intel oneAPI initiative,
also introduced the Intel oneAPI Rendering Toolkit,
presented each of the components of the Render Kit,
reviewed portions of the Unity Editor workflow
where users can select Open Image Denoise
for the lightmapper filtering,
shared future features and directions for the Render Kit,
and shared a video of Open Image Denoise
active in real-time within a demo.
Finally, eye candy, shared a video of Open Image Denoise
as active within the Blender 3D project.
We thank you very much for taking the time to check out
what the Intel Render Kit has to offer.
Please know that Open Image Denoise was integrated into Unity 2019.2
so it's ready for production.
If you have any additional questions
or are curious about the underlying technology,
please help yourself to the Intel Open Image Denoise link,
as well as those for Embree, and the source code
for each library presented today
is included in the toolkit as well.
♪ [MUSIC] ♪