0
我需要实现以下目标:正确的方式来处理2D的z索引的3D场景(的DirectX)
两个2D四边形看起来好像他们是在的其他(如两半的顶部堆叠相同的纹理),但实际上在z轴上由n个坐标分隔。所以如果一个3D物体在它们之间通过,那么一半出现在物体前面,另一半出现在物体后面。
我可以通过对两个四边形应用正交投影,然后对其余三维数据进行正常透视来实现这一点吗?这会损失深度数据吗?
我希望我的例子不是太误导人!
我需要实现以下目标:正确的方式来处理2D的z索引的3D场景(的DirectX)
两个2D四边形看起来好像他们是在的其他(如两半的顶部堆叠相同的纹理),但实际上在z轴上由n个坐标分隔。所以如果一个3D物体在它们之间通过,那么一半出现在物体前面,另一半出现在物体后面。
我可以通过对两个四边形应用正交投影,然后对其余三维数据进行正常透视来实现这一点吗?这会损失深度数据吗?
我希望我的例子不是太误导人!
简单的答案是肯定的,如果你在渲染你的四边形时打开了z写。除非明确地执行,否则不会丢弃z数据。
但是,获得与投影深度很好地匹配的正方形深度可能会非常棘手。 (我从来没有尝试过,但我想它不会很好地排队。)在这种情况下,最好的办法是请执行下列操作之一:
我假设您已经知道前两种方法的缺点,所以如果这是可以接受的,则由您决定。我认为第三种方法是最传统的。