请问要怎么透过 API 来改变构件的颜色?

请问在 Forge Viewer 里要怎么改变一个构件的颜色?

阅读 4.7k
3 个回答

可以的,你可以透过 viewer.setThemingColor() 这个函数来设置,它接受的参数是一个 THREE.Vector4。Forge Viewer 用 THREE.Vector4(x, y, z) 来表示三原色 (r, g, b)w 代表不透明度 alpha,注意每个参数都是介于 0 到 1 之间,三原色的色码必需都除以 255。调用示例如下:

// 变成红色
var color = new THREE.Vector4( 255/255, 0, 0, 1 );

viewer.setThemingColor( 2498, color);

结果截图,原本的绿地变成红色的了:
改变构件颜色截图

如果要还原构件的颜色的话,可以调用 viewer.clearThemingColors() 这个函数来清除颜色设置,结果如下:
构件颜色还原截图

新手上路,请多包涵
viewer.addEventListener( Autodesk.Viewing.GEOMETRY_LOADED_EVENT, function (event) {             
       
                var color = new THREE.Vector4( 0/255,102/255,25/255, 1 );
                viewer.setThemingColor(changeDate, color);}
        
    )

changeDate为对应的dbid,color为想要改变的颜色。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题