至少从理论上讲,在没有一个近切平面的情况下,渲染是可能的吗?射线追踪可能会忽略这个吗?
许多初露头角的3d艺术家在第一次遇到剪裁平面时就有了一个WTF瞬间。如果可以避免这种情况,那么3D创作应用程序的可用性将是一个巨大的胜利。这是一个普通艺术家在解释之前不会考虑的事情之一。
发布于 2016-04-17 18:17:05
近剪裁面是投影栅格化的一个基本特征。借用Eric的投影矩阵技巧演示文稿中的图表:

显示区域的剪辑空间(你可以认为光栅化发生在)是一个盒子,有一个“近”的脸。这是与近剪辑平面相关联的。但是我们可以把远剪贴板推到无穷远,所以我们能把附近的夹板拉到零吗?
从数学上讲,你绝对可以!唯一出现问题的是眼睛本身:你可以无限接近眼睛,但仍然可以解决剪辑空间中的一个点。然而,如果你有一个通过眼睛的三角形,你仍然需要剪裁它,要剪裁它,你需要一个实际的平面,而不是像“无限接近眼睛”这样的概念。
对于当前的栅格化管道来说,更为关键的是,透视分割以精确的数值来做有趣的事情。看到上面图表中NDC 0处的行了吗?它是一半的观看量在剪辑空间,但不是在接近一半的视线在镜头空间的圆顶。事实上,它的位置取决于近夹飞机与眼睛的距离!这意味着,超过一半的深度范围,在剪辑空间是在该区域附近的眼睛。当你把靠近的夹板离眼睛越来越近的时候,那架飞机拉得更近了,你浪费了越来越多的深度范围。这不一定是基本的--您不必将z/w存储在深度缓冲区中--但这很方便。这是一个关于深度精度的内森·里德的文章,还有一些来自Emil的关于投影z/w深度为何有用?的注释。
最后,我将插入优秀的“穿越图形管道”中的一篇文章系列,这是非常有趣的,并且参考了同构的栅格化算法,在理论上,这些算法可以避免在投影剪辑空间中进行裁剪,这将完全避免其中的一些陷阱。
发布于 2016-04-14 10:15:00
在具有透视投影的栅格化装置中,附近的裁剪平面避免了0的除法,并确定了正交投影的可能深度。
通过一些额外的数学运算,您可以使存储在深度缓冲区中的深度再次线性化。然而,您仍然需要防范除以0。
在射线追踪中,附近的平面可以是0,没有问题。但是,没有什么技术上能阻止你把它写成-10 (除此之外,这将是非常奇怪的)。
https://computergraphics.stackexchange.com/questions/2310
复制相似问题