我正在使用 PyBullet 来模拟可变形物体的行为。使用 PyBullets
loadSoftBody()
函数加载对象。我从 3D .obj 文件加载可变形模型,其中定义了顶点位置和面(网格)。
我尝试使用 PyBullets
getMeshData()
跟踪顶点位置。为了获得有关网格的完整信息,我需要索引的顺序与 .obj 文件中的顺序相同,以了解哪些顶点已连接。
问题是函数
getMeshData()
返回的顶点比我实际拥有的顶点多得多(有许多重复项),因此无法找出哪些返回的顶点是相连的。
有人知道如何让它工作吗?
我自己成功了。
不知何故,以下代码可以工作:
"""Returns num mesh vertices and vertex positions."""
kwargs = {}
if hasattr(pybullet, "MESH_DATA_SIMULATION_MESH"):
kwargs["flags"] = pybullet.MESH_DATA_SIMULATION_MESH
num_verts, mesh_vert_positions = pybullet.getMeshData(deform_id, **kwargs)
(来源:https://github.com/contactrika/dedo/blob/main/dedo/utils/mesh_utils.py)