我正在使用Vtk.js在 Web 界面上显示 3D 内容。
当我尝试加载多个模型(STL 格式)时,就会出现我的问题。
我正在使用这个逻辑:
PS: files 是我的 STL 的属性数组,'url' 属性是 STL 的路径
const fullScreenRenderer = vtk.Rendering.Misc.vtkFullScreenRenderWindow.newInstance();
for (var i = files.length - 1; i >= 0; i--)
{
var mapper = vtk.Rendering.Core.vtkMapper.newInstance({ scalarVisibility: false });
var actor = vtk.Rendering.Core.vtkActor.newInstance();
var reader = vtk.IO.Geometry.vtkSTLReader.newInstance();
actor.setMapper(mapper);
mapper.setInputConnection(reader.getOutputPort());
actor.getProperty().setColor( files[i].color );
actor.getProperty().setOpacity( files[i].opacity );
fullScreenRenderer.getRenderer().addActor(actor);
reader.setUrl( files[i].url , { binary: true }).then( update) ;
}
function update()
{
fullScreenRenderer.getRenderer().resetCamera();
fullScreenRenderer.getRenderer().setLayer(1);
fullScreenRenderer.getRenderWindow().render();
}
问题是每个 3D 模型都是黑色的。如果我删除setLayer(1)
,整个屏幕都是黑色的。
我认为这是因为我没有使用正确的“管道”。但是我对这个库没有太多的了解,文档仍然不完整,它没有帮助。