[使用python对包含许多小多边形的网格进行voxelize

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

我有一个3D网格,它是由STL文件构造而成的。网格包含许多小的多边形和它们之间的空间。我正在尝试创建此网格的体素以输入到另一个程序。 Ive使用trimesh直接从STL文件构造了网格,并使用binvox对整个网格进行了体素化,但是Im努力寻找最佳方法来说明具有实体(多边形)和空气(之间的间隙)的网格以进行体素化因为我需要将两者保持分开,因为它们将在稍后阶段分配给它们不同的属性。

我正在使用python进行此操作,并且通常对于体素化是新手,因此非常感谢任何指导。

一个多边形的原始STL文件示例

facet normal 0 0 0 
outer loop 
vertex  0.5277962740910911  1.0456819526290850  1.0948605296487677 
vertex  0.5011598934085548  1.0395150263236856  1.0653193210482526 
vertex  0.5103687290213037  1.0438567955893303  1.0534979253843588 
endloop 
endfacet 

对142,000个多边形重复此操作。

期望的结果是一个体素或一组体素,它们允许多边形(如在文件示例中看到的)和多边形之间的空间被分离,从而使每个多边形具有不同的属性。多边形之间的间隙遍布整个网格(即不限于网格的侧面)。

这里是3D网格的视图

enter image description here

在3D中很难看到间隙,因此这里是要演示的2D网格切片。

enter image description here

python 3d mesh voxel
1个回答
0
投票

STL中的网格以某种方式正常吗?立方体还是长方体?您能显示一张图片吗?

如果是,并且您不是要寻找一般的解决方案(对吗?),最好不要在它们之间使用三角形网格,而要坚持长方体。

取决于网格的外观,可以很容易地描述间隙。

什么定义了差距?它是STL文件中的材料吗?

...工作进行中...

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