我在 python 中有一些 3D (x,y,z,value) 数据,我可以在 Mayavi 中可视化等值面。如何将此等值面导出到可以读入 Blender 的文件中?

下面是一些示例代码:

import numpy
from mayavi import mlab

x, y, z = numpy.ogrid[-5:5:64j, -5:5:64j, -5:5:64j]
values = x * x * 0.5 + y * y + z * z * 2.0
mlab.contour3d(values, contours=[.5])
mlab.show()

最佳答案

使用@timday 的建议,我添加了以下代码以将等值面保存为波前 (.obj) 格式:

mlab.savefig('surface.obj')

然后,我可以在 Blender 中使用 File>>Import>>Wavefront (.obj) 打开它

我不得不大幅缩小图像(~100 倍)以使其在 Blender 视口(viewport)中可见。

原点设置在实际对象的一侧,因此如果我使用 Object>>Transform>>Origin to Geometry 对象更容易处理

添加一些灯光和平面后,对象看起来很不错!

关于python - 在 Python 中,如何将 3D 等值面导出到 Blender,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25772280/

10-11 22:23
查看更多