Forge 3D 查看器中的某些 material 颜色的叠加网格是透明的

Overlay mesh is transparent for certain material colors in Forge 3D viewer

我正在尝试将自定义几何体添加到我的 Forge 查看器中,紧随 this example。它大部分工作正常,除非使用某些颜色。

我正在使用以下代码添加球体网格:


        const geometry = new THREE.SphereGeometry(0.4, 32, 32)
        const material = new THREE.MeshBasicMaterial({
            color: someColor,
            transparent: false,
        })
        const sphere = new THREE.Mesh(geometry, material)

        viewer.overlays.addScene('sphere-mesh-scene')
        viewer.overlays.addMesh(sphere, 'sphere-mesh-scene')

对于 someColor 的某些值,球体是透明的,对于其他值,它不是: 例如

#6b6e75#54ffff 产生一个透明球体, 尽管 #000000#988888 产生一个不透明的球体。

是否需要设置任何 material 属性来避免这种情况?或者我需要在 forge 中与 material 经理打交道吗?

我正在使用 Forge 查看器版本 7.14.0。

编辑

对于点云,我也得到了相同的结果 - 点云具有许多不同的颜色,一些点是透明的,并且得到了 "glowing outline" 与 Forge 几何体的对比。

发生这种情况是因为默认情况下,混合着色器确定是否应通过叠加层中的色调颜色添加透明度(例如,对选定节点)...

我们可以通过在调用 viewer.start/loadModel(svf,options,cb,cb,cb,initOptions) 时在 initOptions 中转动 useIdBufferSelection 来抑制这种行为,如下所示:

viewer.loadModel(svf,null,null,null,{useIdBufferSelection:true});

查看现场演示 here