John Amanatides在他的经典论文《使用锥进行射线跟踪》中描述了经典射线跟踪的一种变体。通过将光线的概念扩展为孔径角使其成为圆锥形,可以减少混叠效果(包括源自太少的蒙特卡洛样本的混叠效果)。计算覆盖率值。该值表示被三角形覆盖的圆锥的分数。如果小于$ 1 $,则表示三角形未完全覆盖圆锥体。需要进一步测试。但是,如果不使用更先进的技术,我们只知道覆盖了多少圆锥体,而不知道哪些部分。
目前仅混合使用了分数覆盖值
来自各个对象的贡献,重叠的表面将被正确计算,而邻接的表面将不会被正确计算。对我来说没有意义。从我的角度来看,这是另一回事。让我们举个例子:我们有两个邻接的三角形,一个绿色和一个蓝色的三角形,每个三角形正好覆盖了我们圆锥的50%。它们与观察者的距离相同。



首先测试绿色三角形。覆盖值为0.5,因此接下来将测试蓝色三角形。蓝色覆盖值为0.5时,我们的视锥已完全覆盖,因此我们完成了操作,最终得到了50:50的绿色-蓝色混合物。太好了!

现在想象一下,我们杀死了蓝色三角形,并在绿色三角形后面添加了一个红色-重叠。 Greeny再次为我们提供了0.5的覆盖率值。由于我们不再需要测试蓝色的了,所以我们往下看,然后很快找到红色的了。这也会返回一些大于0的coverage值,因为它在绿色的值后面,所以不应该这样做。

因此,由此得出的结论是,邻接的三角形可以很好地工作,而重叠的三角形则需要更多魔术,例如覆盖蒙版才能正确。这与Amanatides所说的相反。我误会了什么吗?还是这是纸条上的纸条?

#1 楼

我确实基于Amantides的工作实现了一个光线跟踪器,但是,就像那年前一样,我对纸张的记忆有点生锈。使用部分覆盖范围,例如Alpha合成,(请参阅“ A胜过B”),我的理解是通常的假设是要合成的项目是不相关的。覆盖率和C作为背景,那么假设人们会看到
X%* A +(100-X%)* Y%* B +(100-X%)(100-Y%)* C

有意义吗?显然,在A和B高度相关的情况下,这会产生“泄漏”。时间之前。

评论


$ \ begingroup $
这样的解释完全有道理,谢谢!如果您还记得的话,与普通光线追踪相比,您在锥体追踪方面的经验如何?当然,这是一个近似值,但是是否可以以可接受的质量实现相当大的加速?
$ \ endgroup $
– David Kuri
2015年9月3日19:07在

$ \ begingroup $
哦,天哪,很久以前了。实际上,我只实现了圆锥跟踪。我是否真的尝试过关闭半径部分,我简直不记得了,但是,如果我有时间,我会尽力记住沿圆锥线追踪路线的利弊。
$ \ endgroup $
–西蒙F
2015年9月4日在9:55