正交投影和BSP树从后到前渲染对象

问题描述 投票:0回答:1

我正在从3d空间中的三角形构建BSP树。在构造BSP树之前,所有三角形都已转换为视图空间。因此,我将点(0,0,0)用作观察者眼睛的位置,并从远处到近处遍历树并将所有访问的三角形添加到列表中。

然后,我遍历列表并使用正投影投影对三角形进行变换并将其绘制到屏幕上。这在大多数情况下都有效,但是有时由于错误的三角形排序,我会得到奇怪的伪像。如果我改用透视投影,则永远不会发生这种情况。

为什么正交投影会发生这种情况?解决正射投影下的能见度问题时,BSP树不起作用吗?还是我需要采用我的眼位?

3d camera orthographic bsp-tree
1个回答
0
投票

我很确定您可以将BSP树用于正交投影,但是与透视投影相比,它需要调整数学,因为尽管将查看器放置在0,0,0上,但是您不能根据多边形对多边形进行排序到这一点。正交投影有效地将观看者置于无限远处。假设您向下看标准-Z轴,则需要遍历BSP树,就像查看器位于0,0,∞一样。如果您在分割平面上使用标准ax + by + cz + d = 0,则数学实际上非常简单,因为您基本上只需要考虑c的符号即可确定首先横越平面的哪一侧。 (如果c为零,则可以先遍历任一侧。)

© www.soinside.com 2019 - 2024. All rights reserved.