请问在 Forge Viewer 里要怎么改变一个构件的颜色?
可以的,你可以透过 viewer.setThemingColor() 这个函数来设置,它接受的参数是一个 THREE.Vector4。Forge Viewer 用 THREE.Vector4 的 (x, y, z) 来表示三原色 (r, g, b),w 代表不透明度 alpha,注意每个参数都是介于 0 到 1 之间,三原色的色码必需都除以 255。调用示例如下:
viewer.setThemingColor()
THREE.Vector4
(x, y, z)
(r, g, b)
w
alpha
// 变成红色 var color = new THREE.Vector4( 255/255, 0, 0, 1 ); viewer.setThemingColor( 2498, color);
结果截图,原本的绿地变成红色的了:
如果要还原构件的颜色的话,可以调用 viewer.clearThemingColors() 这个函数来清除颜色设置,结果如下:
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为想要改变的颜色。
改变颜色后会刷新整个模型,有没有办法不刷新整个模型?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(3)
可以的,你可以透过
viewer.setThemingColor()
这个函数来设置,它接受的参数是一个THREE.Vector4
。Forge Viewer 用THREE.Vector4
的(x, y, z)
来表示三原色(r, g, b)
,w
代表不透明度alpha
,注意每个参数都是介于 0 到 1 之间,三原色的色码必需都除以 255。调用示例如下:结果截图,原本的绿地变成红色的了:
如果要还原构件的颜色的话,可以调用
viewer.clearThemingColors()
这个函数来清除颜色设置,结果如下:changeDate为对应的dbid,color为想要改变的颜色。
改变颜色后会刷新整个模型,有没有办法不刷新整个模型?