我在一个多边形物体上做一个快速而肮脏的自动变形程序。如果它是一棵树,而我的轴在树的中心,我想通过弯曲轴来弯曲身体。我会用一个简单的影响算法来确定顶点的xyz位移。
在弯道的凹边,如何检查是否有重叠或通过彼此的多边形,以及如何修复这样的多边形?
谢谢!

发布于 2017-12-28 20:37:57
如果你有一个有向三角形网格(例如,一个非定向曲面就是Moebius带 ),你可以通过查看有符号三角形面积来检查三角形反演。当顶点处于CCW顺序时,符号区域为正;如果顶点处于CW顺序,则为负值。如果你的三角形顶点都是在CCW中排序的,那么所有负区域的三角形都是倒置的。修复取决于变形技术,我不知道你的情况。
检查自交更有意义。实际上,您应该对网格本身进行碰撞检测。碰撞检测是快速的,但需要实现适当的数据结构,如AABB树,以缩小三角形-三角形交叉测试的数量。碰撞检测通常使用非常低的多边形网格.在一些计算机游戏中,近似于网格的边界体积层次结构(球体、AABB等)是唯一考虑的碰撞问题,而不是网格本身。
一旦检测到碰撞,就有几种反应方式,例如施加弹跳力,这是很常见的。
https://computergraphics.stackexchange.com/questions/1741
复制相似问题