Unity 交叉口蒙版

Mic*_*ael 6 geometry intersection mask unity-game-engine plane

有没有办法检测具有一定数量顶点的物体是否撞击平面?如果是这样,我想将其以二进制(黑/白)形式绘制到平面上或用它创建纹理。

而且我也不关心这是否只能通过光线投射或一些棘手的物理操作/着色器/等来创建。我只是想知道什么数学算法可以创建这个。

这是我想要实现的目标的示例: 这是我想要实现的目标的一个例子

干杯,迈克尔

rut*_*ter 3

大多数游戏将通过专门的着色​​器来实现这一点:

  1. 第一遍渲染场景中不透明对象的深度图
  2. 第二遍对透明对象使用相交着色器

相交着色器查找深度等于(或接近等于)第一遍深度的片段,然后对这些片段进行不同的着色。

关于 Game Development Stack Exchange 的问题更详细,包括屏幕截图和 WebGL 演示。

在你的情况下,这可能看起来像:

  1. 将平面渲染为不透明几何体
  2. 使用交集着色器渲染其他对象
    • 绘制与平面相交的片段
    • 不与平面相交的碎片将被丢弃

无论您是对整个场景执行此操作,还是只是生成可应用于其他对象的纹理,着色器原理都保持相同。