Right way to start learning Optix


I am new to Optix. I have been doing OpenGL programming for a while now. I am really interested in learning Optix from scratch. I’m kinda new to Ray Tracing. I would like to know what is the best approach to start learning Optix as a beginner. I couldnt find much tutorials for Optix except the manuals that come in Optix Installation directory. please help me out.

Thanks in advance.


First, read the OptiX Release Notes before setting up a development environment.
You need to be a little careful about which versions of OptiX, CUDA Toolkit, and host compiler work together.

The newest things which work together would be:

  • Under Windows: Microsoft Visual Studio 2013
    If you don’t have a Professional version, the MSVS 2013 Community edition should work, not any 2015 or Express edition! CUDA 7.5 doesn’t support these. (There was a thread on this forum where I explained this before, with a link to the compiler which worked for another user. [url]https://devtalk.nvidia.com/default/topic/891038/?comment=4718168[/url] )
  • OptiX 3.9.0
  • CUDA Toolkit 7.5
    Omit the display driver installation in that, that’s only required when it’s shipping before there is an official display driver supporting a specific CUDA version. Just use a recent enough display driver.

To learn OptiX programming I normally recommend starting like this:
[url]Tutorials & Webcasts - OptiX - NVIDIA Developer Forums

For adding own samples inside the OptiX SDK path, please read the topmost CMakeLists.txt in the OptiX 3.9.0/SDK folder of your installation.

If you have programmed GLSL fragment shaders before, that’s basically what goes into the closest hit programs in OptiX. Surface shading is mainly about implementing sampling and evaluation of bi-directional scattering functions. There are a lot of books and papers about that.

If you plan to shop for a graphics board for ray tracing, I would recommend a beefy Kepler GPU board (GK110 or GK104), or better a new Maxwell second generation GPU (GM2xx). Wikipedia has a list of boards and GPU versions. The more VRAM, the better to handle acceleration structures of bigger scenes.