我试图将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从未解决过。