请看名为“Antichamber”的游戏截图: 您可以看到一个立方体框架,通过一个面可以看到位于立方体内部的一些物体,通过另一个面也可以看到位于同一个立方体内的其他物体。令我困惑的是,您可以同时观察两个面,并且如您在屏幕截图中所见,两个“面”上的物体都可见。此外,每个物体似乎填满了立方体内的整个空间。 我的问题比较普遍——我该如何实现相同的效果?也许有关于3D引擎的技术可以实现吗?
这被称为"门户渲染"。通常用于绘制某些类别的三维环境,但正如您所指出的,门户的内容不必与任何其他门户相关...实现该效果时,引擎在绘制门户时将图形光栅化器设置为剪切通过门户可见的对象的光栅化。为了有效地实现它,引擎进行遮挡剔除:只需要绘制可能通过门户可见的那些对象。为确保可以正确绘制“内部比外部大”的门户,应确保在绘制之前“清除”每个门户内部的可见区域。但是,如果所有门户场景都保证是“水密”的,则可能只需清除深度缓冲区即可。