在使用HeightField作为碰撞体的时候,要特别注意这个tessFlag,它决定了Physx最终生成三角形的方式,它最好与地形生产三角形方向一致。不然可能会导致某些奇异现象,特别是在比较陡峭的地方。
我最近做同步的时候就遇到了一个这样的问题, 人居然可以无障碍的穿过一块凸出来的石壁。我开始很纳闷,后来搜索Convex时候发现了这个tessFlag,刚开始也没有完全想明白,就试验了一下,发现果然就是因为tesselation方向可能与地形tesselation方向不match导致的。
A ------------------ B
| /
| /
| /
| /
|________ /D
C
比如Heightmap上面有 ABCD四个sample, 到底按照ACD与ABD还是ABC与BCD划分生成三角形呢?如果ABCD相对比较平坦,两种方式都无所谓。如果ABCD是非常陡峭的,4个点完全不在一个平面上落差很多, 前面两种划分方式就会差很多。比如假设 BC是凹进去的,AD是凸出来的, 你会发现ACD和ABD平面是位于ABC和BCD之上的,如果你在这两种不同情况下作碰撞,结果可想而知会差非常多。
本文探讨了在使用HeightField作为碰撞体时,tessFlag的重要性及其如何影响Physx生成三角形的方式。通过实例说明了当tessFlag与地形生产三角形的方向不匹配时可能出现的问题。

被折叠的 条评论
为什么被折叠?



