P20

Collision Detection Pipeline

✅ 图画得不对。 DCD 和CCD对输入的需求不同,但SH和 BVH 跟这两种输入不是 一一 对应的关系。
✅ 但DCD和CCD对输入的要求是不一样的。 P20页所谓的 D 还是 C,是以时间角度说的。

P21

Discrete Collision Detection (DCD)

DCD tests if any intersection exists in each state at discrete time instant: \(\mathbf{x}^{[0]}\), \(\mathbf{x}^{[1]}\), …

✅ 准确来说。DCD检测的不是碰撞,而是相交

edge-triangle intersection

To a triangle mesh, the basic test is edge-triangle intersection test.

\(t\) 代表相交位置对应 \(\mathbf{x}_a\) 和\(\mathbf{x}_b\)的插值量

✅ 检测在特定状态下是否相交,每一帧都不相交就认为无碰撞。
✅ 相交和碰撞的区别:相交分析的是运动前后的状态、碰撞检测的是运动的过程、未相交不一定无碰撞、

P22

Tunneling

DCD is simple and robust, but it suffers from the tunneling problem: objects penetrating through each other without being detected.

tunneling problem:当物体运动特别快时,有可能的穿透另一物体而没有被检测到,常见于细薄物体、例如衣服
这种情况无相交但是有碰撞

P23

Continuous Collision Detection (CCD)

CCD tests if any intersection exists between two states: \(\mathbf{x} ^{[0]}\) and \(\mathbf{x} ^{[1]}\).

To a triangle mesh, there two basic tests: vertex-triangle and edge-edge tests.

vertex-triangle tests

✅ 当四点共面时,构成的四面体体积为0、利用四面体的体积公式,可求出四点共面的时间 \(t\) . 这里的\(\mathbf{t}\)是时间
✅ 假设运动是匀速的,\( \mathbf{x}_ {30}(t)、 \mathbf{x}_ {10}(t)、\mathbf{x}_ {20}(t)\)都是关于\(t\)的线性函数。
✅ 一元三次方程有公式解,但用到\(\sqrt[3]{\cdot}\),因此不建议使用,建议用牛顿法。因为\(\sqrt[3]{\cdot }\) 的误差非常大。

P24

edge-edge tests.

✅ 为什么要检测边边相交,因为有可能三角形相交但点面没有相交。

✅ 先求四点共面的 \(t\)
✅ 解一元三次方程也不建议牛顿法,而是二分法,因为\(t\)的范围是[0,1]

P25

Issues with CCD

  • Floating-point errors, especially due to root finding of a cubic equation
    • Buffering epsilons, but that causes false positives.
    • Gaming GPUs often use single floating-point precision.

✅ 游戏 GPU 以单精度为主,因此要注意浮点误差问题。

  • Computational costs: more expensive than DCD.

    • Some argue that broad-phase collision culling is the bottleneck.
  • Difficulty in implementation.

P26

After-Class Reading

Bridson et al. 2002. Robust Treatment of Collisions, Contact and Friction for Cloth Animation. TOG (SIGGRAPH).

Relative simple explicit integration of cloth dynamics


本文出自CaterpillarStudyGroup,转载请注明出处。

https://caterpillarstudygroup.github.io/GAMES103_mdbook/