Blender + NVIDIA's Optix

Has there already been a discussion whether or not Blender should (or can) integrate NVIDIA’s Optix renderer?

The closest comment I’ve found so far was this.

There is Optix, the raytracing API, and there’s Optix, the pathtracer. AFAIK Blender will use the former to get hardware accelerated raytracing in Cycles, while there’s no current plan to integrate the latter.

As @MadMinstrel mentioned, there is a difference between those two. They are considered to be two different product with different licenses, which makes them so different even though they have the same name.
Even though the denoiser can’t be bundled with Blender, Remington Graphics implemented an addon named D-NOISE which internally uses the Optix denoiser. As far as I know, it works on Windows only at this point.

its quite really far away from the idea of real time viewport denoising introduced by nvidia

There’s so much confusion about what OptiX and RTX are or are not.

So, some basic definitions:
All Nvidia GPUs with “RTX” in their names have so-called RT cores in them. They allow for fast ray/object intersections.
However, when Nvidia talks about the “RTX platform”, they include many things - including rasterization or software that accelerates ray tracing on non-RTX hardware.
OptiX is one out of serveral ways to use ray tracing on Nvidia hardware - others are Vulkan and DirectX (DXR). OptiX also works on cards without RTX cores, DXR works on 10x0 and newer cards (or their Quadro equivalents). OptiX is a collection of things, which amongst other things inlcude a denoiser.

I know Ton and Brecht spoke about OptiX being a part of the driver and hence being GPL compatible - however, I have not seen any evidence of that. Maybe they have information that I don’t (actually, I’m fairly sure they do), but as of today, the latest OptiX SDK is not compatible with the GPL, as it is a closed source binary library that is not included in the driver and only available to developers after signing up with Nvidia for a developer account, including accepting an EULA. The DirectX and Vulkan APIs for ray tracing, those on the other hand are a part of the driver and are compatible with the GPL.

There is, to my knowledge, no such thing as “the OptiX path tracer” however. Nvidia has a GPU based path tracer under the name of iRay.

Usually when people talk about OptiX, this is what they are referring to:

On that page, a raytracer along with a denoiser is mentioned. The raytracer is either already part or is planned to be bundled with the Nvidia drivers, which would make it usable within Blender.

It seems many are confused by Nvidia’s marketing which has raised quite some unreasonable expectations.

“It’s complicated” they have been shipping nvoptix.dll (the raytracing bits, more or less the same dll as in the optixsdk minus the version number in the filename) since a quite a few driver releases ago, we could wrap that in the same way we do with cuew and it should be compatible with the GPL.

However optix-denoiser seems to live in it’s own dll which is not included in the driver set (or at-least not when i checked last, which i have to admit is a few months ago)

I see. I always assumed they meant the RT extensions for Vulkan, since that would be a vendor-neutral cross-platform way of integrating hardware ray tracing without being tied to any outside closed source libraries.

As far as i can tell VK_NVX_raytracing shipped in driver 411.63, but i have to admit never looked at it.

Vulkan would be great, but as far as I know there is no way to compile a C/C++ kernel with pointers to it. Until that changes I think Optix is the only viable option, and also the one used by other (commercial) renderers that are taking advantage of RTX.

1 Like

its clear that the RTX train is starting to run, vray, arnold, redshift, octane, renderman … well everyone

1 Like

Actually i would expect that Blender as free and open source software will focus on free and open source solutions for ray tracing. In this perspective using Ray tracing technologies inside a closed proprietary driver from a single GPU vendor i think is not the best solution even if commercial renderers are taking advantage of it.
And i hope that beside AMD® we will see Intel® soon with a discrete GPU ( 2020?) using free and open source drivers.

For example Intel® released free and open source solution as “Denoising Library for Ray Tracing”

https://openimagedenoise.github.io/

I hope to see soon other free and open source solutions for Ray Tracing by Intel®, AMD® or others.
For now i found this project:

V-ray, Arnold, Octane, Redshift, Renderman… the cg industry is clearly going in the direction of RTX, not considering an RTX integration for cycles is a mistake if blender doesn’t want to stay behind everybody.

In the context of machine learning, it is worth nothing if the code is open source. It is essential to have the training data and training code. Otherwise it is technically the same as being closed source, because you can literally not modify it.
Of course, contrary to a closed source solution, it can be included in Blender. Nevertheless, there is no way to develop it.

I don’t know whether there are plans from Intel to release the training data and code.

Thank you for underline the importance of data set in machine learning and for your Blender DeepDenoiser that is open for data set too ( very important to know now).
My point was to focus on free and open source solution for Blender GPU “Ray Tracing” that will work with all recent and near future GPU.