在Python中,如何将3D等值面导出到Blender中

我在
python中有一些3D(x,y,z,value)数据,我可以看到Mayavi中的等值面.如何将此isosurface导出到我可以读入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的建议,我添加了以下代码以wavefront(.obj)格式保存isosurface:

mlab.savefig( ‘surface.obj’)

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

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

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

添加一些照明和一架飞机后,该物体看起来相当不错!

点赞