Autodesk forge 无法通过Forge的.svf网格查看自定义网格

Autodesk forge 无法通过Forge的.svf网格查看自定义网格,autodesk-forge,autodesk-viewer,Autodesk Forge,Autodesk Viewer,自定义几何体和透明.svf网格有问题。 我正在执行以下操作以添加自定义网格: const material = new THREE.MeshBasicMaterial({ color: 0xff0000 }); const geom = new THREE.SphereGeometry(10, 8, 8); const sphereMesh = new THREE.Mesh(geom, material); sphereMesh.position.set(10, 10, 3); if (!vi

自定义几何体和透明.svf网格有问题。 我正在执行以下操作以添加自定义网格:

const material = new THREE.MeshBasicMaterial({ color: 0xff0000 });
const geom = new THREE.SphereGeometry(10, 8, 8);
const sphereMesh = new THREE.Mesh(geom, material);
sphereMesh.position.set(10, 10, 3);

if (!viewer.overlays.hasScene('custom-scene')) {
    viewer.overlays.addScene('custom-scene');
}
viewer.overlays.addMesh(sphereMesh, 'custom-scene');
自定义几何体与来自IFC派生的.svf模型的几何体一起加载到场景中。问题是我无法通过.svf网格的任何透明部分(例如窗口)看到自定义网格。可以通过透明网格而不是自定义几何体看到其他.svf网格

此问题可通过以下方式重现:

打开 选择4:Models>Forge>Office.nwc 单击启动查看器 将上面的代码粘贴到控制台中,用NOP_查看器替换查看器
然后你会看到一个红色的大球体。但是,如果从球体前面有一个窗口的角度观察,则自定义几何体不可见。

这是一个已知的限制。渲染不透明对象与透明对象是一个必须小心处理的常见问题。例如,Forge Viewer首先从前到后渲染不透明对象,然后从后到前渲染透明对象,引入单独渲染的其他场景会使事情变得更加困难


我建议您尝试使用嵌入自定义几何体。这样,几何体将成为标准渲染管道的一部分,而不是覆盖,在这种情况下,透明度应能正常工作。

您使用的是什么材质?哎呀,忘记添加了,请参见更新的问题。明白了。不幸的是,我不能使用SceneBuilder,因为它的局限性我使用的是其他材质,例如ShaderMaterial,所以我希望有其他方法解决这个问题我看到了…:/您可以尝试其他一些不太正式的插入点,如viewer.sceneAfter.addmesh或viewer.scene.addmesh,看看是否有帮助。请记住,这些不是公共API的一部分,将来可能不会提供。谢谢。在使用版本7.3.0时,我使用了viewer.scene.add back,该版本可以很好地使用自定义着色器加载点云。材质必须应用一些技巧才能正常工作。升级到7.21.0时,我会遇到WebGL错误,除了使用覆盖层,我似乎无法解决这些错误