如何将 3D .obj 对象表示为 3D 数组?

Ste*_*ird 5 c++ python arrays 3d opencv

有什么方法可以将 3D 模型表示为 3D 数组吗?是否有任何库将 .obj 或 .blend 文件作为输入并给出相同的数组表示?

我想我会对对象进行切片并将切片导出到图像。然后我会在 opencv 中使用这些图像为每个切片构建数组。最后,我将组合所有切片的所有数组,最终获得 .obj 文件的 3D 数组表示。但我中途放弃了,因为让图像切片相互对齐是一个痛苦而漫长的过程。

是否有任何其他基于索引的表示可以用来在代码中表示 3D 模型?

3D 数组对于我的目的来说非常方便。

小智 2

Binvox可用于从.obj文件生成 3D 模型的体素表示。

Binvox-rw-py可用于读取并解析上面生成的.binvox文件。

这是我用来获取 numpy 数组的方法:

>>> import binvox_rw
>>> with open("chair.binvox","rb") as f:
...   ml = binvox_rw.read_as_3d_array(f)
... 
>>> type(ml.data)
<type 'numpy.ndarray'>
>>> ml.data.shape
(32, 32, 32)
Run Code Online (Sandbox Code Playgroud)