问题标签 [trimesh]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
952 浏览

python - 将场景渲染为pyrender中的图像后如何获取对象的像素坐标?

我正在尝试获取使用 pyrender 渲染的对象的像素坐标(x,y)。目的是获取该对象的边界框坐标。我使用 OffScreenRenderer 来渲染场景。

可用信息:camera_to_world 姿势矩阵

首先,我尝试绘制对象的质心,如下所示:

我得到以下信息: 图像图

同样,同一对象的边界框图在这里

有谁知道我如何获得渲染对象的确切质心和框坐标?谢谢你。

0 投票
1 回答
84 浏览

python-3.x - trimesh.section face_index 没有映射到返回的 Path3D?

我注意到该trimesh.section方法返回 a Path3D,其中相交面的索引卡在路径的metadata['face_index']. 我还注意到面部索引的数量对应于路径实体节点的数量:

但是,对于路径的实体节点,face_index 似乎是无序的。给定一个特定的路径实体,我如何在网格上找到路径实体所在的面?

0 投票
2 回答
1534 浏览

python - 将python中的网格旋转为与向量平行

我有两个网格(称为 A 和 B),我正在使用 open3d 库在 python 中进行交互(很高兴使用import trimesh或其他东西,如果它工作得更好)。网格 A 是弯曲结构,网格 B 近似于更平坦的表面。

我需要旋转网格,使我感兴趣的表面面向相机。为了识别我需要的表面,我编写了将网格转换为点云的函数,并为网格 A 创建最佳拟合球体,为网格 B 创建最佳拟合平面。这些工作非常好,并且可以很好地匹配对象。

我需要旋转网格并且已经被如何执行旋转卡住了。

我拥有的输入数据:

对于网格 A:网格 A 的质心,其最佳拟合球体的坐标和坐标(+ 其半径) - 我想旋转网格,使其垂直于上述数据描述的矢量?

对于网格 B:网格 B 坐标的质心和最佳拟合平面的法线向量 - 我想旋转网格,使其垂直于上述数据描述的向量

0 投票
2 回答
828 浏览

python - Complete a partial mesh and make it watetight

I am capturing point clouds from a RealSense camera and converting them into meshes using the Trimesh library. The issue is that I only get a non-watertight mesh from this. How do I "finish" the mesh and make it watertight?

Partial mesh

I tried

#xA;

but that didn't seem to fully help. I tried creating a convex hull:

convex hull

and tried to perform a union between the two, but that died with:

#xA;

and I would also lose the RGB information from the source mesh. How do I complete the mesh using a convex hull, yet retain all the known RGB values?

Edit: I moved the needle a little more. I looked at the face normals of the convex hull, and extracted all those that were pointed to the side and down. I created a new mesh with the old mesh vertices and the faces defined by the old faces + the new ones from the convex hull.

CH+mesh

This gets me closer to my goal, but now I have a bunch of holes that neither trimesh.repair.fill_holes nor meshlab's filter is giving me good results.

0 投票
1 回答
99 浏览

python - 如何确定不完整修剪的凸度?

如何确定不完整(即非防水)修剪的凸度?即使对于不完整的网格,凸性也是明确定义的:如果不完整的修剪 T 可以完成为凸修剪,则 T 是凸的。(我使用术语“不完整”而不是“非防水”,因为 a. 在我的情况下,它是现有修剪的子集和 b. 因为“非防水”包括小错误/浮点不准确的情况,而我'我谈论丢失的三角形补丁,所以我认为“不完整”更令人回味。)

我试图简单地使用Trimesh.is_convex,但总是返回False不完整的三角形。我考虑过确定点集的凸包并检查它是否具有与不完整修剪相同的点数,但这太松懈了。(作为二维示例,想想字母 Z:它是一个不完整的多边形,根据上述定义它是非凸的。但凸包的点与原始点相同。)

我正在考虑计算不完整修剪中的所有三角形及其凸包中的所有三角形的哈希值,然后检查是否包含的方法。但是有没有一种概念上更简单/更有效的方法?

0 投票
1 回答
517 浏览

python - 如何将材质应用于 .glb/.gltf 网格?

我有一个 .glb 格式的模型,场景中没有任何编辑(但网格)。如何使用 Python 应用 glb/gltf 网格的材质?尽管我可以使用其他库,但我正在使用 Pygltflib 和 Trimesh。

0 投票
0 回答
379 浏览

python - 在 Trimesh 中旋转网格

我通过 TriMesh 将网格几何体加载到 Python 中。我想要一个自由浮动的相机,但我想通过旋转网格来更改(修剪场景的)默认视图。如何在不创建固定相机的情况下旋转网格或设置相机的默认视图?

0 投票
0 回答
644 浏览

python - 如何在 trimesh 中加载纹理网格?

我的最终目的是将带纹理的 obj 模型作为 SINGLE 对象加载到 trimesh 中TriangleMesh,或者将纹理转换为彩色点云,这样我就可以使用存储在vertex_colors属性中的颜色。

当我使用trimesh.load时,它会返回一个具有多个几何图形的场景。当我trimesh.load(force='mesh')打电话时,所有的纹理都被弄乱了。我还尝试使用 open3d 加载 obj 文件,然后将其转换为 trimesh: tm.Trimesh(np.asarray(mesh.vertices), np.asarray(mesh.triangles), vertex_normals=np.asarray(mesh.vertex_normals)

使用这种方法,我可以获得带有三角形和顶点的 3d 模型,但我不知道如何将 open3d 纹理传递给 trimesh。我知道 trimesh 具有visual解释纹理的属性,但是我不知道如何从 open3d 纹理构建它。

0 投票
1 回答
88 浏览

python - Trimesh 获取人脸质心/中心

我正在使用 trimesh python 库。我想将面部法线覆盖在面部质心之上。有什么简单的方法可以做到这一点吗?

也许如果有一个外部库或帮助脚本可以快速做到这一点,那也会有所帮助。谢谢

0 投票
0 回答
31 浏览

python - 如何在 Python 中更改网格的 UP-Vector?

这可能是一个菜鸟问题,但我找不到任何东西:

我正在将 3D 数据集导入机器人模拟环境 (CoppeliaSim)。当我导入对象时,所有对象都以正确的方式定向,但似乎它们具有不同的“向上向量”。因此,当我将它们全部定向到中性方向(0,0,0)时,它们都会指向不同的方向。请参阅随附的屏幕截图作为示例:

示例图片

现在,我需要每个对象都具有相同的向上向量,最好是 Z 向上。如何在 python 中以编程方式实现这一点?我试图用修剪来旋转对象,但这只会改变场景中产生的默认方向,而不是网格相对于它自己的坐标系的方向......基本上我想“交换”网格轴,例如用 Y 轴切换 X。我目前正在将网格导出和导入为 DAE,但我也可以使用其他格式