基于现代化光线追踪简要概述(RTX系列显卡

本文主要为现代化RTX系列显卡的趋势及实用的技术。本文部分摘要子Ray Tracing Gem。 @By WangYuHan

光线追踪常称为辐射传输,在追踪环境中光的运动学科中具有悠久的历史。图形学从业者从中子迁移,热传导,和照明工程领域引入了一些概念。因为有特别多领域在研究这些概念,所以子啊学科之间或者科学内部术语会进化,有些会互相分歧。经典的论文里可能会错误的使用术语,这很令人困惑。

光沿射线传播的基本度量就是SI(单位光谱辐照率),其在真空中沿射线传播保持不变,通常直观的表现就像可感知的概念:亮度。在标准化之前,光谱辐射经常被称为“强度”或者“亮度”。在计算机图形学里面,一般不用“光谱”这个词,因为我们不使用非光谱辐射(所有波长的体积量)。

图形学领域中设计光线的术语一直在进化。几乎所有现代化光线追踪器都使用递归和蒙特卡洛。现在很少有人会费心的吧自己的渲染器称为“递归蒙特卡洛”光线追踪器.

光线追踪就是找到光线通过物体中离得最近的那个或者所有的物体的过程。一束光线从摄像机离开穿过一个像素传播直到碰到最近的物体。作为渲染的一部分,可以在这个碰撞点向光源投射一个新的光线来决定这个物体是否在阴影里。见图1-1

光线追踪利用光线投射机制来递归的采集反射和折射的物体对光的贡献。比如,当碰到一个镜子,从镜子的碰撞点投射一束光到反射方向。不管这个反射光线和什么相交都会影响镜子的最终渲染。同样的,透明的或者玻璃物体可能会同时产生反射和折射光。这个过程会递归发生。递归同会有截止限制,比如光线最大的反弹的次数。整个光线树会被反向的沿着光路评估,最后计算出颜色。和之前一样,我们会查询每个碰撞点,然后向每个光源发射光线来决定是否在阴影里见图1-2.

在Whitted的方法(传统的光线追踪方法)中,他们假设物体表面绝对闪亮光滑,光源是方向光源或者在无穷远处。在Cook的方法(随机光线追踪法)中,光纤树中每个节点可以发射更多的光线以产生各种效果。比如想象一个球形光源而不是一个点光源,可以照亮局部的物体表面,所以我们可以射出很多光线到球上不同的位置来估计有多少光照到达。当我们对可见的面光源进行积分,完全在阴影里的点落在全影区域,局部光照点落在半影区域。见图1-3。

通过向反射方向上的锥形区域射出很多光线并对结果进行混合,我们可以得到有光泽的反射而不是镜面反射。见图1-4。这种分散采样的方法同样可以用来对半透明,景深,运动模糊等效果建模。

在真实世界当中有很多光源发射光线,他们到达人的眼睛的方法多种多样,包括折射和反射。光泽表面反射光线到很多方向上,不仅仅是在反射方向上。漫反射或者哑光表面可以将光线分散到更广泛的范围。在光线追踪领域,我们颠倒一下光的散射行为,我们使用出射方向和材料来帮助我们决定各个入射方向上光线对物体表面渲染的重要性。跟踪如此复杂的光线传输很快就变得令人不能承受,也很容易造成低效的渲染。为了产生一张图像,我们只需要光线从特定的一些方向穿过摄像机的镜头。 递归光线追踪法在

很多方面颠倒了光线传播的物理过程,以我们知道会影响图像的方向从人眼处生成产生光线。

在Kajiya风格或路径跟踪中,光线反射到场景中的哑光表面上,它允许现实世界中的所有光路(衍射之外的相位效果除外)。这里的光路指的是一系列光 - 物体相互作用,它们从相机开始并以光线结束。

我们需要在每个表面交叉点的位置估算它周围所有光线的贡献,并且要结合表面的反射属性。例如,一堵红色的墙旁边有白色的屋顶,墙会发射红色的光到屋顶,反之亦然。接着墙和屋顶会产生相互反射,因为他们会互相反射反射光线,这也会影响到彼此。通过从眼睛的视角递归的结合这些效果,当碰到光源的时候结束,一个真正的基于物理的图像就可能生成了。这里我们使用了“可能”,如果我们在一个粗糙的表面射出一组光,比方说一千束。然后对于每一束光,我们递归的发射出另外上千条,那我们光是计算一个像素点就可以到天荒地老了。相反,当一束光线从人眼发射出去并碰到一个可见的表面上,在碰撞点光线追踪器在有用的方向上只产生一束光。这束光依次产生一束光并持续下去,这些光线并最终形成一个路径。对于一个像素,将多个追踪的路径进行混合就可以估计出像素真正的辐射。当有计算更多的路径时,最后的效果也会提升。通过适当的处理,路径追踪可以给出

无偏的结果,这个结果符合物理真实。

大多数现代光线追踪器每个像素使用不止一束光线作为蒙特卡洛(MC)算法的底层部分。Cook风格和Kajiya风格的算法就是例子。这些方法都有对各种概率密度函数(PDFs)的理解。比如,在Cook风格算法中,我们可能会在一个透镜区域包含一个PDF。在基于路径的方法中,PDF将会在我们称为路径空间的路径上出现。为了减少误差,令蒙特卡洛算法的PDF采样不均匀称为重要性采样。使用数论方法中的样本低差异模式而不是传统的伪随机数生成器来创建随机样本被称为准蒙特卡罗(QMC)采样。在很大程度上,计算机图形学从业者使用业内标准术语于MC和QMC。然而,这种做法会造成同义词混淆。比如,计算机图形学中的“阴影光线直接照明”是MC/QMC中“下一个事件估计”的一个例子。从形式化的角度,渲染器就是求解一个针对图形学特定问题的传播方程,也经常称作渲染方程。这个方程经常写做表面上一点出的能量平衡方程。在一些文献中符号会有变化,但是都和下面的公式很近似:

这里,Lo是在ωo方向离开表面点P的辐射,表面属性f是双向反射分布函数(BRDF)。这个函数也经常标记为fr或者ρLi ωi方向上的入射光线,表面法线和入射光线的夹角是θi, |cosθi|表示这个角度的几何衰减。通过积分所有表面和物体光的效果,不仅仅是光

源,和所有入射方向,折叠表面BRDF效果,我们得出辐射,实质上就是光线的颜色。因为Li通常是递归计算的,比如从点P所有可见的表面都要依次计算得到辐射值,路径追踪和相关方法可以在他们当中选择所有可能的路径,选择的目标是沿着路径方向投射每条光线,这个方向对于计算所有可能方向效果的良好近似很重要。通常点P会被隐式的略去。而且,波长λ可以作为函数的输入。也有包含参与媒介的更泛化的方程,比如烟或雾,物理光学效应比如衍射。

关于参与媒介,ray marching 是在一个区间里沿着光线前进并在光线方向采样的过程。这种投射光线的方法经常用来做体积渲染,在这种场景里没有特定的表面。除此之外,可以通过一些方法来计算光线在体积的每个位置的效果。ray marching还可以用来仿

真体积内的碰撞。

通常在 Hart球面追踪算法[15]的一些变体下,ray marching 通常被用来求解和隐式距离方程定义的曲面的交叉或者沿光线到表面的方向采样和搜索来进行体内/体外测试。这里的“球面”是距离物体表面等距离的点形成的球。它和交叉球无关。按照之前的表示方

法,这个过程应该成为“球体投射”而不是“球体追踪”。

基本的光线追踪管道

传统的GPU光栅化管道包含许多可编程的阶段,开发人员写自定义着色器代码来控制自动生成的图像。DirectX射线追踪引入了一个新的射线原语和灵活per-ray数据存储,以及5个新的着色器阶段,如图所示。这些着色器可以发射光线,控制光线/几何交叉点,并对识别的命中物体进行着色。

如图所示 一个新的DirectX射线追踪管道的简化视图,包括5个新的着色其阶段(蓝色)光线生成,相交,任意命中,最近命中和未命中着色器。这种复杂性发生在遍历循环中,其中射线针对包围体节点进行测试,并确定潜在命中,并按顺序确定最近的命中。

1. ray generation shader 射线生成着色器启动管道,运行开发人员使用新的内置TraceRay()着色器函数指定要启动那些射线,与传统的计算着色器类似,它在一,二三维的样本网格中执行。

2.Intersection Shader交集着色器定义使用任意原语的光线交集的计算,为光线/三角形交叉口提供高性能默认值。

3.any-hit shader 任意命中着色器 都允许控制地丢弃其他有效的交叉,例如,在纹理查找之后忽略透明遮罩的几何图形。

4A closet-hit shader一个最接近的着色器沿着每条射线在最近的一个交点执行。通常,在这个交点计算颜色,类似于光栅管道中的像素着色器。

5A miss Shader miss着色器,当光线错过场景中所有图形时,就会执行miss着色器,例如,这允许查找环境光映射或动态的天窗模型。

下面是一个很简单的伪代码,他是一个简单CPU射线跟踪器。

扩展的HLSL数据类型,纹理和缓冲区资源,并内置到函数,微软添加了各种内置的函数来支持射线追踪所需的功能。

新功能分为5大类:

1 射线遍历函数生成射线并允许控制射线的执行。

2 启动自检函数查询启动维度,并标识当前线程正在处理的光线(或像素)。这些函数在任何光线追踪着色器都是有效的。

3 当你输入一个光线(除了生产光线的着色器之外所有的光线追踪着色器)时,光线自检函数会查询可用的参数和属性。

4 当你输入一个原语(相交,任意命中和最近碰撞着色器)时,对象自检函数查询的对象以及实例化的属性是可用。

5 碰撞自检函数查询当前相交的属性。这些属性主要是由用户定义,因此这些函数允许相交着色器和碰撞着色器之间通信。这些功能只在任何碰撞和最近碰撞着色器里克使用。

在HLSL中生成新的光线

现在有个很重要新的函数,TraceRay(),生产一个射线,从逻辑上讲,这类似于纹理获取:他会暂停着色器以获取一个变量(而且可能是大量的)CPU时钟,当结果可用,为进一步处理,他会恢复执行射线的生成,closest-hit和miss着色器可以调用TraceRay()。这些着色器可以在每一个线程中启动零条,一条或多条射线。

reference:

[1] James Arvo and David Kirk. Particle transport and image synthesis. SIGGRAPH

Comput. Graph., 24(4):63–66, September 1990.

[2] R. Siegel and J.R. Howell. Thermal radiation heat transfer. Series in thermal and flfluids

engineering. Hemisphere Pub. Corp., 1981.

[3] Greg Ward Larson and Rob Shakespeare. Rendering with Radiance: The Art and Science

of Lighting Visualization. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA,

1998.

5[4] Arthur Appel. Some techniques for shading machine renderings of solids. In Proceedings

of the April 30–May 2, 1968, Spring Joint Computer Conference, AFIPS ’68 (Spring),

pages 37–45, New York, NY, USA, 1968. ACM.

[5] Turner Whitted. An improved illumination model for shaded display. Commun. ACM,

23(6):343–349, June 1980.

[6] Douglas Scott Kay and Donald Greenberg. Transparency for computer synthesized im

ages. In Proceedings of the 6th Annual Conference on Computer Graphics and Interactive

Techniques, SIGGRAPH ’79, pages 158–164, New York, NY, USA, 1979. ACM.

[7] Scott D Roth. Ray casting for modeling solids. Computer Graphics and Image Process

ing, 18(2):109 – 144, 1982.

[8] Robert L. Cook, Thomas Porter, and Loren Carpenter. Distributed ray tracing. SIG

GRAPH Comput. Graph., 18(3):137–145, January 1984.

[9] James T. Kajiya. The rendering equation. In Proceedings of the 13th Annual Conference

on Computer Graphics and Interactive Techniques, SIGGRAPH ’86, pages 143–150,

New York, NY, USA, 1986. ACM.

[10] David S. Immel, Michael F. Cohen, and Donald P. Greenberg. A radiosity method for

non-diffffuse environments. In Proceedings of the 13th Annual Conference on Computer

Graphics and Interactive Techniques, SIGGRAPH ’86, pages 133–142, New York, NY,

USA, 1986. ACM.

[11] Eric P. Lafortune and Yves D. Willems. Bi-directional path tracing. In Proceedings

of Third International Conference on Computational Graphics and Visualization Tech

niques (Compugraphics ’93), pages 145–153, Alvor, Portugal, December 1993.

[12] Eric Veach and Leonidas Guibas. Bidirectional estimators for light transport. In Geor

gios Sakas, Stefan M¨uller, and Peter Shirley, editors, Photorealistic Rendering Tech

niques, pages 145–167, Berlin, Heidelberg, 1995. Springer Berlin Heidelberg.

[13] Eric Veach and Leonidas J. Guibas. Metropolis light transport. In Proceedings of the 24th

Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH ’97,

pages 65–76, New York, NY, USA, 1997. ACM Press/Addison-Wesley Publishing Co.

[14] Matt Pharr, Wenzel Jakob, and Greg Humphreys. Physically based rendering: From

theory to implementation. Morgan Kaufmann, 2016.

6[15] John C. Hart. Sphere tracing: a geometric method for the antialiased ray tracing of

implicit surfaces. The Visual Computer, 12(10):527–545, Dec 1996.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值