一、optix是什么?

nvidia官方是这样定义optix的:一个用于在GPU上实现最佳光线跟踪性能的应用程序框架。它提供了一个简单,递归和灵活的管道来加速射线跟踪算法。通过可编程的相交,光线生成和阴影,将NVIDIA GPU的功能带入光线跟踪应用程序。
我们可以把RTX理解为显卡硬件本身,因为RTX系列的显卡在内部增加了RT CORE,这个东西就是专门用来负责光线追踪计算的,所以只有显卡内部有RT CORE核心的才能称的上是RTX显卡。(AMD显卡暂且不说,因为支持光追的RX6000系列显卡目前还没上市)。
而optix可以理解为软件层面的东西。比如你买了一块RTX显卡,虽然显卡硬件本身具备光追的功能,但如果你使用的软件不支持optix的话,那也就无法命令RT CORE核心来工作。

二、哪些显卡支持optix?

哪些显卡支持optix?这样问其实有点怪异,因为前面我们说过,optix属于软件层面东西。想要用到optix的话,显卡是硬件基础,也就是说只要是带RTX光追的显卡都能支持optix,不过还要看你使用的软件(玩的游戏)是否支持optix。

三、optix有哪些特点

可编程的GPU加速光线跟踪管道,可轻松根据您的应用需求进行定制

提供全面支持递归的单射线编程模型和类似于虚拟函数调用的动态调度机制

极快的射线-物体相交的最新数据结构

通过跨多个GPU透明缩放以及通过NVLink自动组合多个GPU的内存,支持渲染大型场景

OptiX利用最新的GPU架构功能,而无需更改应用程序端

基于AI的降噪器,可改善实时探索中的用户体验

灵活性支持任意阴影模型,包括基于物理的MDL材料规范的示例实现

全面的编程指南,参考文档和示例,可帮助您快速将OptiX集成到应用程序中

NVIDIA RTX技术和Volta GPU功能的直观界面

扩展知识:

一、光线追踪与栅格化是什么意思


自1990年代以来,常规3D渲染通常使用称为栅格化的过程。栅格化使用从三角形或多边形网格创建的对象表示对象的3D模型。然后,渲染管线将3D模型的每个三角形转换为2D图像平面上的像素。这些像素然后可以在屏幕上最终显示之前被进一步处理或“着色”。尽管栅格化对于实时生成图像非常有效,但将真实的照明效果添加到栅格化管线会增加复杂性,需要基于给定场景的许多手动调整的参数。保持良好的性能通常需要使用捷径或估算,这可能会影响整体现实性。光线追踪代表了实现更高真实感的重要一步。

由Enrico Cerica使用OctaneRender生成的此计算机生成的图像显示了复杂地面上的光线跟踪阴影和反射

光线跟踪通过模拟光的物理行为来生成高度逼真的图像。光线跟踪通过跟踪光线从观看者的眼睛穿过虚拟3D场景传播的路径来计算像素的颜色。当光线穿过场景时,光线可能会从一个物体反射到另一个物体(引起反射),被物体阻挡(引起阴影)或穿过透明或半透明的物体(模拟半透明或诸如玻璃或水的电介质)。所有这些交互作用共同产生了屏幕上显示的像素的最终颜色。如图上图所示,保真度可以保持不变,并且可以以非常复杂的计算工作量为代价优雅地实现算法。

二、光线追踪如何工作的?

光线跟踪直接模拟在虚拟环境中传播的光线。下图显示了环境如何由相机,灯光集,3D几何模型以及这些模型的材质描述组成。然后追踪代表光路或光子的光线,以确定相机传感器在给定方向上看到的光值。追踪光线通常遵循自然的事件顺序:
1、产生的光线代表从环境到照相机的反向光路。
2、光线与场景相交,确定光线撞击哪个对象(如果有)。
3、材质明暗器或环境明暗器计算照明值沿射线的路径
4、最后,将得到的照明值写入帧缓冲区。

三、GPU上的光线追踪

创建真正逼真的图像的能力是为什么光线追踪被誉为计算机渲染的未来。如今,光线追踪渲染器在虚拟效果制作和功能动画中占主导地位。大规模并行GPU的出现现在扩展了可以使用光线跟踪的域空间。现在,使用GPU进行脱机渲染只需几分钟,而使用主流CPU则需要数小时。NVIDIA GPU与NVIDIA最先进的光线跟踪技术堆栈相结合,现在提供了计算能力和软件框架,可在消费类工作站上执行有趣的实时光线跟踪工作负载。
NVIDIA设计了OptiX API,以填补NVIDIA GPU上的简单概念模型和相对高级的执行模型之间的空白,使开发人员可以专注于其核心光线跟踪算法,如图5所示。OptiX的主要观察结果是,大多数光线跟踪算法都可以使用少量的可编程操作来实现。OptiX提供了一个用于描述虚拟环境的API和一小组用户可编程的着色器,以实现射线跟踪周期的每个阶段。
OptiX的核心是特定于域的即时编译器。编译器通过组合用户提供的用于射线生成,材质明暗处理,对象交集和场景遍历的程序来生成自定义的射线跟踪内核。通过使用紧凑的对象模型和光线跟踪编译器优化(可有效映射到新的RTX技术和Volta GPU)来实现高性能。

OptiX支持各种用例,包括交互式渲染,精细或批量渲染,碰撞检测系统,人工智能查询以及科学模拟,例如声音传播或中子传输。OptiX已集成到各种当前可用的商业软件产品中,并且已经成为近十年来主要的光线跟踪SDK。