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

导读:我在python中有一些3D(x,y,z,value)数据,我可以看到Mayavi中的等值面.如何将此isosurface导出到我可以读入Blender的文件中?这是一些示例代码:importnumpyfrommayaviimportmlabx,z=numpy.ogrid[-5:5:64j,-5:5:64j,-5:5:

导读:我在python中有一些3D(x,y,z,value)数据,我可以看到Mayavi中的等值面.如何将此isosurface导出到我可以读入Blender的文件中?这是一些示例代码:importnumpyfrommayaviimportmlabx,z=numpy.ogrid[-5:5:64j,-5:5:64j,-5:5:。


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

这是一些示例代码:

import numpy
from mayavi import mlab

x,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,则对象更容易处理

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


总结

以上是为你收集整理的在Python中,如何将3D等值面导出到Blender中全部内容,希望文章能够帮你解决在Python中,如何将3D等值面导出到Blender中所遇到的程序开发问题。

ORACLE
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论