实时光线追踪是实时渲染的前沿技术。直到最近,光线追踪在实时应用中还太慢,但NVIDIA的一款新gpu正在改变这一切。
NVIDIA在2018年推出了新的图灵系列显卡。这些卡对射线跟踪(RTX)具有实时支持。射线追踪目前被用于补充传统的实时渲染技术,但正在取得进展,将为消费者市场带来越来越多的实时射线追踪内容。
将实时光线追踪渲染公司的技能带到您的CAD渲染项目中。2022世界杯直播时间Cad Crowd可以建议您如何在您的项目中使用这种最先进的技术。
自20世纪90年代以来,3D实时渲染一直使用一种称为光栅化.栅格化使用由三角形或多边形网格创建的对象。渲染管道将每个三角形转换为像素。在显示在屏幕上之前,像素会被着色。
另一方面,光线追踪通过模拟光的行为提供了更加真实的图像。光线追踪计算每个像素的颜色,方法是跟踪光线从眼睛或相机出发,然后在3D场景中反弹到多个物体上的路径。
当光线四处传播时,它可以从一个物体反射到另一个物体。它可能被阻挡,也可能通过透明或半透明的表面折射。在射线追踪过程中,所有这些相互作用都被计算和组合,以产生像素的最终颜色。这需要大量的内存和处理速度,但结果是高逼真渲染.
NVIDIA的RTX平台运行在该技术公司的前沿Volta和Turing系列gpu上,并结合了射线追踪、深度学习和光栅化,以提高游戏的实时渲染。
NVIDIA RTX使用射线跟踪、人工智能加速功能、高级着色器、模拟和资产交换格式加速和增强图形。它支持应用程序接口(api),以产生电影摄影现实主义。
NVIDIA在2018年的GPU技术大会上宣布了对RTX的支持星球大战演示。NVIDIA gpu现在可以在消费者和专业工作站上提供专业质量的实时光线跟踪能力。
将实时光线追踪公司的专业知识应用到实时渲染产品中。2022世界杯直播时间Cad Crowd可以建议您如何将这种最先进的技术融入到您的项目中。
自1996年第一张3Dfx Voodoo 1卡发布以来,图形硬件迅速发展。到1999年,NVIDIA创造了这个术语图形处理单元(GPU)及其GeForce 256。在接下来的20年里,gpu从静态的管道平台发展到高度可编程的硬件组件,开发人员可以创建并应用自定义算法。
现在,每一台电脑、平板电脑和移动电话都有一个内置的图形处理器。这意味着,每台设备内部的硬件加速技术都在不断提高实时渲染效果。这导致了实时渲染应用程序的速度和图像质量的爆炸性增长。
GPU的大部分芯片区域专门用于着色处理器着色器核心.数以千计的可编程着色器已经被开发来控制gpu。大规模并行gpu的发展意味着处理过程只需几分钟,而不是以前所需的几个小时。
gpu还可以通过并行处理任务来提高速度。例如,在栅格化作业中,将空间分配给z缓冲区以快速访问纹理图像和其他缓冲区,并查找哪些像素被三角形覆盖。
新的支持rtx的gpu增加了专用的射线跟踪加速硬件,并实现了一个新的渲染管道,以实现实时射线跟踪。场景中所有对象的RTX着色器被加载到内存中,并随时准备计算对象相交。
RTX还使用了一个新的去噪模块。如果在不需要发送更多射线的情况下降低了噪声,那么射线跟踪的输出就会更快更好。NVIDIA还没有发布关于新图灵gpu中的张量“AI”核心的很多信息,但我们知道它们在计算存储在边界卷层次结构(BVH)中的交叉口时要快得多,BVH是一种表示对象的数据结构。
为了为NVIDIA的RTX技术开发应用程序,需要一个应用程序程序接口(API)。API是用于编程图形用户界面(GUI)组件的接口。
有一些api可供开发人员访问NVIDIA RTX。首先是NVIDIA自己的OptiX编程接口。创作者还可以通过微软的DirectX射线跟踪API (DXR)访问RTX编程工具。第三个API是Vulkan,这是一个来自非营利组织Khronos Group的跨平台图形标准。这三个api都共享类似的方法。
NVIDIA自己的OptiX (OptiX应用加速引擎)API为开发人员提供了“一个简单、递归和灵活的管道”,用于实时光线跟踪。OptiX应用于许多行业:电影和游戏,设计和科学可视化,国防应用,特别是音频合成。OptiX API与RTX技术一起工作,在NVIDIA gpu上实现最佳的射线跟踪性能。
OptiX是一个高级API,这意味着它处理整个渲染算法,而不仅仅是光线跟踪部分。OptiX引擎可以执行大型混合算法——例如,同时使用光栅化和射线跟踪——具有非常好的灵活性。
OptiX已经集成到几个商业软件产品,如Autodesk Arnold, Chaos Group V-Ray, Isotropix Clarisse, Optis, Pixar RenderMan和SolidWorks可视化,用于SolidWorks自由职业者.
OptiX开发工具包包括两个主要组件:用于渲染器开发的光线跟踪引擎和用于图像处理的后处理管道。据英伟达称,OptiX AI去噪技术与Quadro GV100和Titan V中的新NVIDIA张量核相结合,提供了三倍于上一代gpu的性能,并具有无噪声流体交互。
OptiX使用即时(JIT)编译器,不断分析代码以优化速度。JIT编译器为开发人员生成的程序生成定制的内核,用于光线生成、材质着色、对象交叉和场景遍历。紧凑的对象模型和光线跟踪编译器直接映射到运行在NVIDIA Volta和Turing gpu上的RTX平台。
OptiX与NVIDIA的CUDA工具包一起工作。CUDA是NVIDIA在2006年开发的一个并行计算平台和编程模型。它的定制工作与该公司的cuda能力的gpu,以实现最佳的图形性能。为了使用OptiX,需要一个CUDA能力的GPU和CUDA工具包。
对于OptiX的实时射线跟踪,开发人员使用CUDA来给出射线在特定情况下应该如何工作的指令。例如,射线在击中花岗岩和击中水面时的表现是不同的。OptiX与CUDA允许开发人员根据自己的喜好定制这些命中条件,提供了大量的创造性灵活性。
2014年,NVIDIA为OptiX 3.5添加了第二个库OptiX Prime。OptiX Prime是一个用于改进射线跟踪的低级API。OptiX Prime不处理整个渲染算法,只处理光线跟踪部分,所以它不能为新的gpu重新编译算法,重构计算性能,或使用网络设备。
使用OptiX API进行光线跟踪是一个多步骤的过程。首先,开发人员定义射线生成程序。从“照相机”射出的光线会彼此平行吗?从线性角度看?然后,程序员可以定义的其他东西是:
这些程序的示例可以通过OptiX软件开发工具包(SDK)获得。这里有一个总结:
Ray-generation程序:在射线路径上发出的第一束或第一束射线使用射线生成程序。这个用户定义的程序在场景中跟踪光线,将跟踪结果写入输出缓冲区。
Scene-traversal程序:OptiX允许有效地剔除场景中未被给定光线相交的部分。这使得OptiX能够隐藏用于遍历加速的高度优化的、特定于体系结构的实现的复杂性。
交集和边界框程序:边界框程序为自定义原语(如球体或曲线)计算边界框。这有助于交叉程序返回真正的或假根据射线是否与物体相交。
最近热门和任何热门的程序:OptiX允许开发人员指定一种或多种类型的射线:例如,亮度、环境遮挡或阴影射线。开发人员可以创建一个最近命中和任意命中的程序来描述当一个对象被每个射线类型相交时的阴影行为。
任何成功或最近成功的程序都可以不绑定;例如,不透明材料可能只需要一个阴影射线程序,因为找到光和阴影点之间的任何交点就足以确定该点在阴影中。
项目小姐:当没有物体被射线击中时调用miss程序。还可以为不同的射线类型指定它,并且可以不绑定。Miss程序在创建环境地图或背景时非常有用。
OptiX可以在几种NVIDIA GPU上运行,但非正式的用户测试表明,OptiX在Volta GPU上表现最好。借助NVIDIA Volta gpu和RTX射线追踪技术,开发人员可以在交互式应用中使用逼真的照明和材料实现实时、电影质量的渲染。
微软的DirectX®射线追踪(DXR) API于2018年3月推出。DXR与NVIDIA紧密合作开发,扩展了DirectX 12与完全集成的射线跟踪。与NVIDIA的OptiX一样,微软的DXR可以处理使用射线追踪和传统光栅化技术的混合算法。英伟达已与微软合作,为DXR启用完整的RTX支持。
微软的DirectX射线追踪(DXR) API为游戏开发者将射线追踪完全集成到DirectX中。目前,它是作为光栅化的补充而不是替代产品销售的。DXR专注于使用这种混合技术来提高实时渲染的质量。随着技术的进步,微软的目标是在实时渲染应用中使用DXR实现真正的全局照明。
使用DXR的第一步是在两个级别上构建加速结构。在底层,应用程序为世界中的对象指定一组几何图形—顶点和索引缓冲区。在顶层,应用程序指定一个实例描述列表。这两个层次允许多种复杂形状。
第二步是为着色器和纹理定义光线跟踪管道。与OptiX一样,这允许开发人员指定当特定类型的光线击中特定对象时应该使用哪些着色器和纹理。
使用DXR的第三步是调用DispatchRays。DispatchRays激活射线生成着色器。然后着色器调用TraceRay固有的,它激活适当的随机着色器。TraceRay也可以被称为内部命中或错过着色器,允许“多重反弹”的照明效果。
NVIDIA GameWorks射线追踪开发工具包提供了与NVIDIA RTX一起使用Microsoft DXR API的工具和资源,包括一个射线追踪降噪模块。在像微软这样的行业标准平台上使用这种技术,每个PC游戏开发者现在都可以访问实时光线追踪。
Vulkan API是第三种,也是最新的RTX API,用于编程实时射线跟踪技术。它是由非营利组织Khronos集团于2015年在NVIDIA的GPU技术会议上发布的。Khronos专注于为软件供应商的游戏内、移动和工作站开发创建API。
Vulkan最初被称为“下一代OpenGL计划”。它源自AMD的Mantle API, AMD将其捐赠给Khronos,旨在为整个行业标准化的底层RTX API提供基础。英伟达的Vulkan射线跟踪扩展将在一个跨平台API中为Vulkan添加混合射线跟踪和光栅化技术。
Vulkan指定着色程序并计算内核、对象和操作。它也是一个具有可编程和固定功能的管道。Khronos希望Vulkan API具有各种优势,如批处理以降低驱动程序开销、更直接地控制GPU、减少CPU使用以及在多核CPU上更好地伸缩。
Vulkan驱动不使用高级语言GLSL来编写着色器,而是使用已经翻译成中间二进制格式的着色器。通过允许着色器预编译,应用程序初始化更快,每个场景可以使用更多的着色器。Vulkan驱动程序只需要进行特定于gpu的优化和代码生成,从而更容易维护驱动程序。
Vulkan API既适用于高级显卡,也适用于移动设备上的图形硬件。与OpenGL类似,Vulkan API不锁定于单个操作系统。Vulkan可在Android、Linux、Tizen、Windows 7、Windows 8和Windows 10上运行。iOS和MacOS的免费授权第三方支持也可用。
根据Vulkan用户教程,使用Vulkan需要四个先决条件:
为了开始开发Vulkan应用程序,创建者需要访问SDK。它包括头文件、标准验证层、调试工具和用于所有Vulkan函数的加载器。加载器在运行时查找驱动程序中的函数。
与DirectX 12不同,Vulkan不包含线性代数运算库。它的开源教程指导用户下载GLM,这是一个为图形api设计的库,也经常与OpenGL一起使用。
Vulkan本身也不包括显示渲染结果的工具。Vulkan建议开发人员使用Windows、Linux和MacOS都支持的GLFW库来创建窗口。
Vulkan中的图形开发包括三角形绘制、顶点缓冲区创建、统一缓冲区分配、纹理映射、深度缓冲、模型加载、mipmap生成和多采样。因为Vulkan是一个非营利性的合作项目,所以普通用户可以在网上获得开源教程。
随着gpu的功能越来越强大,api也在不断开发,NVIDIA、微软和Khronos集团正引领着用实时光线追踪取代栅格化作为3D实时渲染的标准算法的潮流。
除了游戏等应用的电影现实主义,实时光线追踪也越来越多地用于增强建筑应用,产品设计服务2022足球世界杯预选赛时间、科学可视化等等。
目前,光线追踪工具,如Autodesk Arnold、Chaos Group的V-Ray、皮克斯的Renderman和NVIDIA最新的GPU技术,都被创作者用来生成逼真的模型和原型,建模光如何与他们的设计相互作用,并且,由于GPU提供了更强大的计算能力,创造了互动娱乐,在其范围内将越来越电影。
由RTX及其配套api制作的实时、电影质量的渲染是世界上一些最大的技术公司在计算机图形算法和GPU架构方面20多年工作的结晶。
通过使用运行在NVIDIA Turing和Volta gpu上的光线追踪引擎,并使用OptiX编程,Microsoft DirectX光线追踪(DXR)或Vulkan,以及诸如GameWorks SDK等工具,开发者能够为他们的客户实现创造性的愿景。
随着时间的推移,实时光线追踪将产生越来越逼真的反射、阴影和折射,为交互式消费应用提供电影制作的所有超真实品质。尽管在短期内,混合方法将继续是结合实时射线追踪和传统光栅化技术的竞争者。
尽管实时光线追踪在渲染场景中是一项相对较新的技术,但Cad Crowd中有一些自由职业者已经掌握了这项技术。2022世界杯直播时间他们可以与你一起创造高质量的3D模型和渲染图,确保你的电子游戏或电影看起来是顶级的。如果你有兴趣和我们聊天,请联系我们免费的报价!