opengl光线跟踪算法_原来英伟达光线追踪是这样实现的

opengl光线跟踪算法_原来英伟达光线追踪是这样实现的_第1张图片

  回顾两年前,也就是2018年,NVIDIA在德国科隆举办新品发布会。在这次大会上,NVIDIA发布了大家期待许久的图灵显卡,NV表示全新的显卡带来的是强大的性能以及惊艳的图像表现。随着NVIDIA发布了全新的20系显卡,玩家们终于迎来了实时光照追踪,将游戏带入了全新的世代。

  两年时间过去了,9月NVIDIA即将发布第二代光线追踪显卡,传闻这一代将会带来巨大的提升,并且会让光线追踪进入高度可用的阶段。那么光线追踪到底是如何实现的呢?

  有玩家会说,有很多早一些的游戏也有很不错的反射效果,那么那些是不是光线追踪呢?答案是否定的。这些游戏出现的反射效果大都是光栅化渲染加屏幕空间反射SSR带来的。现代的游戏渲染以光栅化渲染为基本框架搭建,一个复杂的场景的渲染任务会以物体为单位划分为若干个子任务,每个物体由若干三角面组成,我们将这些三角面经过几何变换映射到屏幕的某些区域,然后将三角面覆盖的区域拆解成一个个的像素,这个拆解的过程就叫做光栅化。在这个逐层拆解的过程中,下一层就会失去对上一层全局信息的了解,比如拆分成物体后,我们就不知道场景里其他物体的存在了,拆分成三角面后,我们就无法得知其他三角面的信息,到对每个像素进行着色时,我们连该像素所在的三角形的信息也丢失了。这样拆解任务可以让渲染过程高度并行化,所以非常的快,但是同时因为全局信息的丢失,我们很难实现一些需要全局信息的渲染效果。

  在英伟达光线追踪之前,光栅化技术多年来一直作为电脑游戏中的实时渲染标准,虽然很多光栅化场景看起来十分出色,但光栅化渲染仍存在很大局限。例如,若仅使用光栅化技术渲染反射和阴影,我们需要简化可能导致多种不同伪影的设想。同样,静态光照贴图可能看起来正确无误,但物体一经移动就会失真,光栅化阴影经常会出现锯齿和漏光等问题,而屏幕空间反射SSR只能反射屏幕上显示的物体,这些伪影有损游戏体验的真实感。Turing 光线追踪硬件与 NVIDIA 的 RTX 光线追踪技术、NVIDIA 实时光线追踪库、NVIDIA OptiX、Microsoft DXR API 以及即将推出的 Vulkan 光线追踪 API 协同运行。

  相比于屏幕空间反射SSR,光线追踪是三维计算机图形学中的特殊渲染算法,它与之前计算光源光线传播路径不一样,利用光的可逆性质,反向计算,跟踪从眼睛发出的光线,通过技术生成编排好的数学模型展现出来,这样的得到画面效果更佳,对于反射与折射有更准确的模拟效果,并且效率非常高,但很遗憾,光线追踪最大缺陷在于对算力要求极高,计算量非常庞大,目前的单一硬件很难满足实时光线追踪的需求。光栅图形学中的算法,利用了数据的一致性从而在像素之间共享计算,而光线跟踪通常是将每条光线当作独立的光线,每次都要重新计算。

  同时,NVIDIA在2018年也发布了一项名为DLSS的技术,中文名为深度学习超采样技术。技术的实现则是基于显卡核心内的tensor core。深度学习超采样分为两个步骤,一个是训练阶段,一个是处理阶段,这两个阶段使用的是同一个模型。在训练阶段,需要使用大量的"显卡原始输出图像"(1080P分辨率或2K分辨率)和"对应的超级计算机抗锯齿处理过后的图像"(8K分辨率)这样的图像组对这个模型进行训练,使用深度学习技术优化这个模型,使得这个模型能够从低分辨率图像生成高分辨率图像,这个过程需要庞大的计算资源,由英伟达计算,将模型训练好后将该模型推送给用户。简单来说就是用低分辨率画质渲染输出高分辨率画面,这样做的好处就是游戏帧数的提升。配合光线追踪,NVIDIA给玩家带来的是游戏体验提升是巨大的。

  光线追踪这一技术可以说是游戏画面的大变革,就像从2D到3D一样,实时光线追踪又将是一项技术革命,就像NVIDIA所说的那样,图灵架构显卡凝聚了过去十年里在计算机图形算法和 GPU 架构领域所取得的成果。而这一技术,又将是未来十年的发展方向。

你可能感兴趣的:(opengl光线跟踪算法)