跳转到内容

filter_remap

版本18.5

vector  filter_remap(vector2 uv, string filter, float width, ...)

此函数根据滤波器的重要性采样,将uv坐标映射为像素偏移量。

uv

分量应在01范围内。函数会将这些坐标重新映射到滤波器内核中的某一点,将更多点映射到权重较高的区域。返回的点将位于以0为中心、给定宽度的方框内。

filter

使用的滤波器类型。

"gauss"

高斯滤波器

"box"

盒式滤波器

"sinc"

辛格滤波器

"mitchell"

米切尔滤波器

"bartlett"

巴特利特滤波器(锥形滤波器)

"blackman"

布莱克曼滤波器

"catrom"

Catmull-Rom滤波器

"hanning"

汉宁滤波器

"point"

点滤波器

width

滤波器宽度。

单位盒式滤波器会将输入值映射到-0.50.5范围。将width改为2.0会使返回值范围变为-1.01.0。 例如对于高斯滤波器,width设为2.0更为合适。

res”, int =32

在构建重要性采样的查找表时,滤波器会以该分辨率进行径向采样。

返回值

返回向量的xy分量是重映射后的像素坐标(以零为中心)。z分量是返回样本处内核的近似权重值。

注意某些滤波器("sinc""mitchell""catrom")在某些区域具有负权重。进行重要性采样时不能使用负值,因此应使用权重的绝对值(使用abs)。但某些应用需要知道返回样本是否具有负权重。