【介绍】
Optix是英伟达一直推出的闭源光线跟踪(rayTracing)引擎。对于光线跟踪来说,尤基基于物理的光线跟踪,渲染耗时长,其实时化很难实现。虽然早在1990年怡始,国外很多程序员都在尝试编写和发布实时光线跟踪引擎,但其效率、应用面均未达工程应用的标准,仅做为实验阶段而已。OptiX的出现就在于要大踏步的向前推进光线跟踪引擎实时化的进程。
对于传统的实时光线跟踪引擎(哪怕不实时的光线跟踪引擎)提高效率的通用手段是使用多线程并发执行。因此光线跟踪是基于需要渲染图片的分辩率逐像素发出光线进行与场景求交来执行渲染操作的,因此每个像素之间的独立的,严格来说有多少个像素就可以并发多少个线程来执行渲染。因此光线跟踪引擎大量的提供了CPU端的并发方案,一般是基于Intel的TBB的方案较多。因为TBB是Intel推出的并发编程模块,而CPU又属Intel的最强。
而NVIDIA推出的Optix与前者都不同,因为传统的光栅化渲染管线也是并发的,而GPU近几年又推出了并行计算模块CUDA,而未来的世界一定是并行实时基于物理渲染的世界,因此NVIDIA很早就推出了OptiX,也在最新版本6中与CUDA10进行了强关联。OptiX是在GPU端进行的并发渲染,每个像素一个模块来进行计算,参考了传统的光栅化的OpenGL和DirectX的渲染管线设计目标是一个基础模块,而非业务模块,只负责最基础的光线跟踪操作,比如光线-对象求交,而不负责比如模型运动之类的。
为什么最近突然OptiX的用户多了起来,关注度高了起来,因为NVIDIA推出了实时光线跟踪引擎RTX,至此已经到RTX2080,将光线跟踪的概念做为RTX系列的主打概念推向前台,而RTX的实时光线跟踪SDK并不很多,OptiX是NVIDIA官方发布的,至少很容易想到大家都会使用OptiX来驱动RTX的实时光线跟踪功能。
【安装】
笔者使用的是配置较新的电脑,笔者的文章也针对至少这样配置的电脑。笔者使用的GPU是RTX2070,电脑是ROG枪神2S。15999元。一般来说使用RTX显卡的电脑配置都不会差。
安装配置OptiX开发环境当前需要OptiX 6,CUDA10,以及VS2015,为什么是VS2015呢,主要是CUDA10的SDK当前仅支持到VS2015,对VS2017来说,OptiX中的有些示例会编译不通过。因此官方论坛推荐使用2015。
OptiX官方网站。并安装。
第二步:在此处下载CUDA10 CUDAToolkit10.1官方网站。并安装
第三步:在此处下载VS2015 VS2015官方网站。并安装。在选择安装模块时注意把C++相关内容选上,安装完成后自己建个控制台的C++程序编译运行一下,确保可以编译运行通过。
第四步:在此处下载CMAKE CMAKE官方网站。并安装。
【编译示例】
安装完成后可以检查是否有以下环境变量,没有的话可以手动配置上:(注意目录是你本机上的目录)
在安装目录的OptiX SDK 6.0.0\SDK-precompiled-samples中是一些预编译好的示例,可以双击看一下效果,有些可能不能正常执行,没有关系,因此马上我们要自己手动来编译这些示例。
OptiX的官方示例代码在OptiX SDK 6.0.0\SDK当中,可以看到是使用CMAKE来管理的,那么配置就会非常简单。可以将OptiX SDK 6.0.0\SDK拷到别处以免破坏原始安装文件。将CMakeLists.txt拖入到CMAKE的界面中,编译器务必选择VS2015,优先选X64。点击Configure,然后会发现所有的路径都已经配置好,信息输出框里显示Configure done. 可能肉眼看一下都有哪些配置,也就是示例都使用了哪些库。然后点Generate,最后点击Open Project。则打开工程开始编译即可。然后就可以在工程中编译运行各个OptiX SDK中的示例了。
【其它OptiX示例】
此外,NVIDIA的开发人员还写了另外一批示例,在github当中。可以点击此处查看。还可以点击此处遇到问题在论坛提问。
若遇到问题可以下方留言。