我在python中有一些3D(x,y,z,value)数据,我可以在Mayavi中可视化isosurfaces。如何将此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()
答案 0 :(得分:7)
使用@ timday的建议,我添加了以下代码以wavefront(.obj)格式保存isosurface:
mlab.savefig( 'surface.obj')
然后,我可以在Blender中使用File>> Import>> Wavefront(.obj)
打开它我不得不大幅缩小图像(~100x),使其在Blender视口中可见。
将原点设置为实际对象的一侧,因此如果我使用对象>>转换>>原点到几何
,则对象更容易处理
添加一些灯光和一架飞机后,物体看起来很不错!
答案 1 :(得分:1)
我自己从未尝试过,但我注意到mlab的savefig也声称支持保存为Wavefront“.obj”格式(也称为wavefront format),这是一种3D几何格式。当然,我见过importers from obj to Blender。