2016-05-01 37 views
2

由於服務器GPU限制,我們不能用K將呈現在VPS隱含的方程,這裏是我們用來生產從公式3D模型mayavi的示例代碼:繪製三維隱式與vispy

import numpy as np 
from mayavi import mlab 

mlab.clf() 
x, y, z = np.mgrid[-2.5:2.5:.125, -2.5:2.5:.125, -2.5:2.5:.125] 
a,b,c = 0.0,-5.0,11.8 
values = x**4+y**4+z**4+a*(x**2+y**2+z**2)**2+b*(x**2+y**2+z**2)+c 
mlab.contour3d(x, y, z, values, contours=[0], color=(.1,1,.5)) 

mlab.savefig("shape.obj") 

該輸出這種形狀在3D

3d equation rendered by mayavi

我的問題是,我怎麼能做到同樣的事情vispy或另一個Python模塊(如果存在的話)

我們在VPS上沒有顯卡,我們在windows server 2008上使用python 3.5.1(anaconda)(不可能使用linux),我們在system32中用mesa替換了opengl32.dll( GL 3.0版檯面10.2.8)(VTK拋出錯誤GL 2.1版本與gpu_shader4擴展不支持...)

回答

3

這裏的回答我的問題,這是它是如何與vispy做到:

import numpy as np 

from vispy import io 
from vispy.geometry.isosurface import isosurface 

x, y, z = np.mgrid[-2.5:2.5:.125, -2.5:2.5:.125, -2.5:2.5:.125] 
a,b,c = 0.0,-5.0,11.8 
data = x**4+y**4+z**4+a*(x**2+y**2+z**2)**2+b*(x**2+y**2+z**2)+c 
vertices, faces = isosurface(data, level=1/10000000.) 
io.write_mesh('shape.obj', vertices, faces , None, None, overwrite=True) 

導出與上述形狀完全相同的wavefront obj文件。這比使用mayavi快得多。