【问题标题】:Autodesk forge grey colour showing through colour materialAutodesk forge 灰色通过颜色材料显示
【发布时间】:2018-07-23 21:29:36
【问题描述】:

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

创建材料

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

将其添加到材料列表中

materials.addMaterial(
            'NewMaterial',
            material,
            true)

实际设置材质的代码行

fragList.setMaterial(fragId, material);

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

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

【问题讨论】:

    标签: autodesk-forge autodesk-viewer


    【解决方案1】:

    不确定使用此方法是否有不利之处,但我使用了复活节代码示例中演示的 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);
    

    更改了颜色,不通过其他模型(如叠加)显示,并且没有我遇到的剪裁问题。

    【讨论】:

      【解决方案2】:

      使用 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);

      【讨论】:

      • 我曾尝试使用该扩展并尝试对其进行略微修改的版本,但两次颜色剪切都会发生相同的事情(尽管没有那么剧烈),但它也引入了另一个问题。我认为这是因为它正在使用代码添加覆盖,无论您更改开始的颜色,都可以通过模型中的其他所有内容显示
      猜你喜欢
      • 1970-01-01
      • 2012-09-04
      • 2021-03-02
      • 2020-01-15
      • 2019-06-10
      • 2020-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多