我正在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
产生不透明的球体。
是否需要设置任何材料属性来避免这种情况?还是我需要与伪造的物料经理打交道?
我正在使用Forge Viewer 7.14.0版本。
编辑
对于点云,我也得到相同的结果-点云具有许多不同的颜色,一些点是透明的,并且在Forge几何图形上得到了“发光的轮廓”。
这是偶然发生的,因为默认情况下,混合着色器通过是否在覆盖层中通过其色相来确定是否应将透明度(例如,添加到选定的节点上……)>
我们可以通过在调用useIdBufferSelection
时如下图所示旋转initOptions
中的viewer.start/loadModel(svf,options,cb,cb,cb,initOptions)
来抑制此行为:
viewer.loadModel(svf,null,null,null,{useIdBufferSelection:true});
请参见现场演示here