我有一些 Python 中的 3D(x,y,z,值)数据,我可以在 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 视口中可见。
原点设置在实际对象的一侧,因此如果我使用对象>>变换>>原点到几何
,该对象更容易处理添加一些灯光和平面后,该物体看起来相当不错!
我自己从未尝试过,但我注意到 mlab 的 savefig 还声称支持保存为 Wavefront“.obj”格式(也称为 wavefront 格式),这是一种 3D 几何格式。 当然,我见过 从 obj 到 Blender 的导入器。
是否可以导出颜色和灯光配置?
谢谢