我需要实现以下目标:

两个 2D 四边形看起来好像是一个堆叠在另一个之上(就像同一纹理的两半),但实际上在 z 轴上被 n 坐标分开。因此,如果 3D 对象在它们之间经过,一半出现在对象前面,另一半出现在对象后面。

我可以通过对两个四边形应用正交投影,然后对其余 3d 数据应用法线透视来实现此目的吗?这会丢失深度数据吗?

我希望我的例子不会太误导人!

有帮助吗?

解决方案

简单的答案是肯定的,如果您在渲染四边形时打开了 z write。除非您明确执行,否则您的 z 数据永远不会被丢弃。

然而,让正交深度与投影深度很好地配合可能很棘手。(我从未尝试过,但我想它不会很好地排列。)在这种情况下,最好执行以下操作之一:

  • 在透视图中渲染所有几何体
  • 在正交视图中渲染所有几何体
  • 在未经 z 测试的排序图层中渲染正交几何体(从后到前),在中间渲染透视几何体。

我假设您已经知道前两种方法的缺点,因此是否可以接受取决于您。我认为第三种方法是最传统的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top