Autodesk 锻造灰色透色 material

Autodesk forge grey colour showing through colour material

我想简单地更改 Autodesk Forge 中模型的颜色。我正在使用以下代码。

创建 material

var material = new THREE.MeshPhongMaterial
            ({
                color: new THREE.Color("rgb(255, 0, 0)"),
                transparent: false
            });

正在将其添加到 material

的列表中
materials.addMaterial(
            'NewMaterial',
            material,
            true)

实际设置 material

的代码行
fragList.setMaterial(fragId, material);

这几乎完美。模型的颜色应该变成红色,但是当您四处移动视图时,看起来模型底层的灰色似乎透过红色显示出来,就像它在某些区域被剪裁一样。

我经历了 https://threejs.org/docs/#api/materials/MeshPhongMaterial 并弄乱了 material 的一堆属性,虽然他们改变了 material 的外观,尤其是照明属性,但是没有什么能阻止灰色剪裁通过。任何关于可能导致此问题或在哪里查看的建议将不胜感激

使用 Autodesk forge 的这个扩展,而不是直接在 three.js 上工作。

https://forge.autodesk.com/cloud_and_mobile/2015/12/change-color-of-elements-with-view-and-data-api.html

很简单,你只需要写几行: viewer.loadExtension('Autodesk.ADN.Viewing.Extension.Color'); viewer.setColorMaterial([objectIds],colorcodes);

不确定使用此方法是否有缺点,但我使用了复活节代码示例中演示的 setThemingColour。 https://forge.autodesk.com/blog/happy-easter-setthemingcolor-model-material

var red = new THREE.Vector4(1, 0, 0, 0.5);
viewer.setThemingColor(dbId, red);

更改了颜色,不会通过其他模型(如叠加层)显示,也不会出现我遇到的剪裁问题。