Unity Intersections Mask

时间:2017-02-16 15:34:25

标签: unity3d geometry mask intersection plane

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

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

这是我想要实现的一个例子: Here is an example of what im trying to achieve

干杯,迈克尔

2 个答案:

答案 0 :(得分:2)

大多数游戏都是通过专门的着色​​器来实现的:

  1. 第一遍为场景中的不透明物体渲染深度贴图
  2. 第二遍使用交叉点着色器用于透明对象
  3. 交叉点着色器查找深度与第一遍的深度相等(或几乎相等)的片段,然后以不同方式对这些片段进行着色。

    A question on the Game Development Stack Exchange详细介绍,包括截图和WebGL演示。

    在您的情况下,这可能如下所示:

    1. 将平面渲染为不透明几何体
    2. 使用交叉点着色器渲染其他对象
      • 绘制与平面相交的碎片
      • 与平面相交的碎片将被丢弃
    3. 无论您是为整个场景执行此操作,还是仅生成可应用于其他对象的纹理,着色器原则都保持不变。

答案 1 :(得分:1)