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



我在自定义几何体和透明 .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 网格,但不能看到自定义几何体。

可以使用以下方法重现此问题:

  1. 开放式 http://lmv.ninja.autodesk.com/
  2. 选择 4:> Forge> Office.nwc 的模型
  3. 点击"启动查看器">
  4. 上面的代码粘贴到控制台中(将viewer替换为NOP_VIEWER(

然后人们应该看到一个大的红色球体。但是,当从窗口位于球体前面的角度查看它时,自定义几何图形是不可见的。

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

我建议您尝试使用SceneBuilder嵌入自定义几何体。这样,几何体将成为标准渲染管线的一部分(而不是"叠加"(,在这种情况下,透明度应该可以正常工作。

最新更新