【RayTracing】采样技术

本文介绍了光线追踪中解决锯齿现象的各种像素采样技术,包括随机采样、抖动采样、n-Rooks采样、多重抖动采样及Hammersley采样,并对比了它们在抗锯齿效果上的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单来说:光线追踪就是从视点和像素两点成一条射线,投射光线到场景中,返回光线碰撞到的物体的颜色。

但是,对每个像素只投射一条光线,会造成锯齿现象。

下面介绍几种在像素格内的采样技术,从而投射多条射线进行颜色中和,从而形成抗锯齿的效果。

随机采样

在2D像素格内,随机选取n个采样点。这些采样点在1D投影上的分布状态并不好,随机采样的效果还是略差。如下图所示:

抖动采样

对像素格进行了分层管理的方法,先等分成n*n个子网格。

然后在每个子网格中进行随机采样。采样分布明显好于随机采样。

n-Rooks采样

n-Rooks采样和抖动的区别是,抖动采样在n*n网格中时需要n^2个采样点,而n-Rooks只需要n个采样点

要求是各行各列中只存在一个采样点。刚开始是生成一条直线(如下图),然后在保持n-Rooks的状态下,随机混合x.y坐标

1D投影尚可,但是2D分布并不如抖动采样。

多重抖动采样

例如在16*16的网格上,添加4*4的网格,视为子网格。在每个子网格中生成一个采样点,然后在子子网格中遵循n-Rooks。

多重采样效果较好。

Hammersley采样

该类采样是基于计算机数字表示法,不算是随机采样。

对整数i,其基数为2 取根的反函数 如下表:

n个2D采样点的序列可以定义为n个采样点pi的集合

其1D投影为等间隔采样,对于给定的n值,只存在唯一一个Hammersley采样。

当邻接像素采用相同的采样点集时,会产生严重失真。所以该方法不适合单独使用

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值