有人可以指向一篇论文/算法/资源/告诉我如何在光线跟踪器中实现纹理缩小滤镜(当纹素小于像素时应用)吗?

谢谢!

有帮助吗?

解决方案 4

谢谢你们的答案,但是由于我没有找到任何合适的技术,我自己创造了一些能够很好地发挥作用的东西:

我假设我的光线是一个锥形,在像面上有一个半像素的半径。当光线照射到表面时,我计算投影到表面上的椭圆(平面 - 圆锥交点处的椭圆)。然后,使用交叉点处的texturecoordinate导数,我将此椭圆投影到纹理空间中。现在我知道纹理的哪一部分位于我的像素下并可以对该区域进行二次采样

我也使用RipMaps来提高质量 - 我选择了基于Texturespace中椭圆大小的RipMap级别

其他提示

由于您正在使用光线跟踪,我怀疑您正在寻找高质量的过滤,根据“错误”的数量动态更改采样。基于这个假设,我想说看一下“射线差异”。这里有一篇很好的论文: http://graphics.stanford.edu/papers/trd/ 它会考虑折射和反射等效果。

您对自己的回答听起来像是正确的方法,但由于其他人可能会偶然发现页面,我会根据要求添加资源链接。除了讨论mipmapping(ripmapping基本上是更高级的mipmapping)之外,他们还讨论了反射和折射对导数和mip级选择的影响。

Homan Igehy。 “追踪射线差异”。 1999年.SIGGRAPH的会议记录。 http://graphics.stanford.edu/papers/trd/

仔细阅读后,我看到Rehno Lindeque提到了这篇论文。起初没有意识到这是正确的参考,因为他说该方法根据采样的误差动态采样,这是不正确的。过滤是根据像素占用空间的大小完成的,并且只使用一条光线,正如您所描述的那样。

编辑: 另一个可能有用的参考文献( http://www.cs.unc。 edu /~awilson / class / 238 /#challenge )。滚动到“纹理坐标的衍生物”部分。他建议将纹理衍生物从表面向后映射到屏幕。我认为这对于反射和折射光线是不正确的,但可能更容易实现,并且应该适用于主光线。

我认为你的意思是 mipmap

这是文章谈论使用它们。

但是nether说如何选择使用哪个mipmap,但它们经常被混合(更大和更小的mipmap)。

这是另一篇关于 Google地球如何运作,它谈到了他们如何管理地球。

scroll top