在 PyBullet 模拟 (Python) 中跟踪可变形网格(3D .obj 文件)

问题描述 投票:0回答:1

我正在使用 PyBullet 来模拟可变形物体的行为。使用 PyBullets

loadSoftBody()
函数加载对象。我从 3D .obj 文件加载可变形模型,其中定义了顶点位置和面(网格)。

我尝试使用 PyBullets

getMeshData()
跟踪顶点位置。为了获得有关网格的完整信息,我需要索引的顺序与 .obj 文件中的顺序相同,以了解哪些顶点已连接。

问题是函数

getMeshData()
返回的顶点比我实际拥有的顶点多得多(有许多重复项),因此无法找出哪些返回的顶点是相连的。

有人知道如何让它工作吗?

python simulation mesh pybullet softbody
1个回答
1
投票

我自己成功了。

不知何故,以下代码可以工作:

"""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

© www.soinside.com 2019 - 2024. All rights reserved.