将MayaVI VTK加载到Threejs中

时间:2014-12-14 21:07:44

标签: three.js vtk mayavi

我试图将vtk文件加载到我使用mayaVI从python导出的three.js中。这是生成vtk的基本示例(缩放到与bunny示例相似的大小):

import numpy as np
from mayavi import mlab

x = np.array([0, 0.01])
y = np.array([0, 0.01])
z = np.array([0, 0])

nx = np.array([0, 0])
ny = np.array([0, 0])
nz = np.array([0.04, 0.04])

pts = mlab.quiver3d(x, y, z, nx, ny, nz, mode='cylinder', scale_factor=1)
mlab.show()
pts.module_manager.source.save_output('2cyl_z.vtk')

我一直在使用示例vtk加载器:http://threejs.org/examples/#webgl_loader_vtk,但没有成功。带有一个气缸的更简单的版本也没有用。

使用three.js加载后记录几何对象会显示它具有属性,但它们似乎不包含任何内容。

如果我在mayavi中创建一个真正的网格圆柱体:

r = 1.0
pi = np.pi
cos = np.cos
sin = np.sin
phi, theta = np.mgrid[0.1:pi-0.1:101j, 0:2 * pi:101j]

x = r * cos(theta)
y = r * sin(theta)
z = r * cos(phi)

scal = np.ones((101, 101))

mesh = mlab.mesh(x, y, z, scalars=scal)
mlab.show()
mesh.module_manager.source.save_output('mesh_cyl.vtk')

似乎将内容加载到几何体中,我可以在控制台中看到值,但是我收到此错误:

glDrawElements: attempt to access out of range vertices in attribute 0

似乎有similar question从未解决过。

0 个答案:

没有答案