我一直在尝试使用pythorejs在我的jupyter笔记本中渲染3D对象。对于第一个测试,我用四面体做了以下简单的示例:
# Plot a mesh with pythreejs
import pythreejs as p3js
from IPython.display import display
vertices = [[0.3,0,0],[0,0.5,0.4],[-0.2,0.3,-0.1],[0.9,0,-0.3]]
faces = [[0,1,2],[1,2,3],[2,0,3],[0,1,3]]
colors = ['#ff0000','#00ff00','#0000ff','#ffffff']
faces = [f + [None, [colors[i] for i in f]] for f in faces]
geo = p3js.Geometry(vertices=vertices, faces=faces, colors=colors)
geo.exec_three_obj_method('computeFaceNormals')
mesh = p3js.Mesh(
geometry=geo,
material=p3js.MeshBasicMaterial(vertexColors='VertexColors',
side='DoubleSide'),
position=list(-np.mean(vertices, axis=0)))
cam = p3js.PerspectiveCamera(position=[4,0,0], up=[0,0,1], fov=10)
scene = p3js.Scene(
children=[mesh, cam, p3js.AmbientLight(color=u'0x777777')],
background='black')
renderer = p3js.Renderer(camera=cam, scene=scene,
controls=[p3js.OrbitControls(controlling=cam)])
display(renderer)
当我在一个jupyter笔记本(python3.6.6,pythorejs版本1.1.0)中评估上述内容时,我或多或少得到了我所期望的:一个黑色背景,一个有趣的四面体,其顶点有不同的颜色。太好了!所以我尝试了一个更复杂的网格。我已将此网格的数据以gzip-hdf5格式上载到文件拖放器,here;您可以下载它,然后用以下代码读取它:
^{pr2}$我已经用很多其他软件验证了网格数据,所以我不认为网格本身就是问题所在(尽管网格可能有一些小缺陷——例如,两个顶点实际上位于同一位置)。当我使用h5py加载代码来替换先前代码块的vertices = ...
、faces = ...
和{mesh
,当其自身求值时,也会显示一个空白框(尽管在四面体的情况下,它显示了网格的渲染)。我在文档中没有看到任何东西表明大网格不起作用。还有什么不对劲吗?在
提前谢谢。在
编辑:原来的文件太大了,所以我上传了一个新文件(相同的文件,现在只是gzip压缩)。在
目前没有回答
相关问题 更多 >
编程相关推荐