大家好。我想知道是否有人知道 HLSL 纹理采样函数的复杂性,例如 tex2d 和 DX10/11 等效函数。如果纹理所在的像素阵列,它会以恒定的复杂性访问一个像素,但它使用 UV 来访问像素,所以我不知道函数的复杂性。有谁知道?
问问题
1002 次
1 回答
1
O(1)
我不知道 HLSL 采样在内部是如何工作的,但我最近为自定义网格类构建了自己的(工作)采样器。性能上的差异是由插值方法的选择引起的:
点采样器
点采样器使用最近邻插值法。当然,这个算法非常高效,因为 UV 只是简单地四舍五入到最接近的整数像素索引。
线性采样器
这种产生更好的结果,因为它使用线性插值。假设您的 UV 指向四个像素之间的位置。然后在正方形的顶部像素上执行 lerp,在底部像素上执行另一个,在结果上执行第三个。由于这种过滤涉及四个像素和 12 个浮点插值,它不如点采样快。
各向异性采样器
各向异性过滤器产生(当前)最高质量的结果。它是可用类型中最慢的。
于 2013-02-07T08:38:59.510 回答