本文已参与[新人创作礼]活动,一起开启掘金创作之路
1、概念
全局光照(Global Illumination,简称 GI) ,是指既考虑场景中来自光源的直接光照,又考虑经过场景中其他物体反射后的间接光照的一种渲染技术。
光线追踪(Ray tracing), 只是全局光照的一个实现方向,当然还有辐射度、环境光遮蔽(ambient occlusion)、光子贴图、Light Probe等方向。
环境光遮蔽(AO) 以主光线的交点位置为起点,交点的法线为中心,发射若干条随机光线做半球上的蒙特卡洛积分,积分结果再除以PI归一化到[0, 1]即可。积分函数也比较简单,就是某个方向上的可见性(Visibility)乘以采样方向和法线的点积,根据这个积分函数形式,我们可以选择做cos weighted的重要性采样。至于去噪的方法,直接用TAA。
软阴影
编辑
光线追踪原理图如下:如图所示,每一条光线从相机位置出发,穿过像素中心进入场景,判断每条光线是否与球相交,然后在表面交点计算像素强度的贡献,如果不想交即使背景颜色。(具体细节可以参考计算机图形学第四版),那么也就是需要我们判断从摄像机出发的射线是否与球相交。
编辑
编辑
英伟达官方解释:NVIDIA RTX 光线追踪 | NVIDIA Developer
“光线追踪是什么? 自二十世纪九十年代以来,传统的 3D 渲染一直使用名为光栅化的流程。光栅化使用依据三角形或多边形网格创建的对象来表示物体的 3D 模型。然后,渲染流程将 3D 模型的每个三角形转换为 2D 屏幕上的像素。接着,对这些像素作进一步处理或“着色”,最后将其显示在屏幕上。
长期以来,光线追踪一直用于非实时渲染,它能通过模拟光的物理行为来呈现逼真的光照效果。光线追踪通过追踪光线从观察者眼睛穿过虚拟 3D 场景时所走的路径来计算像素的颜色。光线穿过场景时,可能会从一个物体反射到另一个物体(形成反射)、被物体遮挡(形成阴影)或者穿过透明或半透明物体(形成折射)。这些交互全部结合后即可产生最终的像素颜色,然后显示在屏幕上。
光线追踪长期以来一直是计算机渲染的“未来”或圣杯,现在,我们推出消费级 GPU,它拥有足够强大的计算能力,可以实时进行有趣的光线追踪工作。预计有许多用例将采用光栅化和光线追踪相结合的混合渲染器,因此与现有渲染 API 进行紧密集成非常重要”。
编辑
参考文章: