實現報警呼吸燈效果,目前產品中報警裝置僅僅是做了高亮處理,並沒有明顯的動畫效果來提示使用者該裝置正在報警,bimface
中也提供了構件閃爍的介面,但是看起來比較生硬,檢視**發現是通過定時器實現,比較占用cpu
資源,而呼吸燈報警效果是採用著色器程式編寫,通過gpu
執行,效能和效果均優於定時器。
首先,獲取到報警裝置的包圍盒,根據包圍盒計算出建立立方體的引數,可以讓立方體的尺寸稍微比報警裝置大一些,避免因共面而引起花屏的問題,然後通過著色器程式渲染立方體,在requestanimationframe
中不停地修改著色器中的統一變數,以實現呼吸燈效果。核心**如下:
var uniform =
}//獲取著色器程式
let vertexshader = document.getelementbyid('vertex').textcontent;
let fragmentshader = document.getelementbyid('fragment').textcontent;
//獲取報警裝置包圍盒資訊
let max = ;
let min = ;
//偏移量
let offset = 100, segment = 2.0;
let width = (max.x - min.x + offset), height = (max.y - min.y + offset), depth = (max.z - min.z + offset);
let targetpos = ;
let boundingboxgeometry = new three.boxbuffergeometry(width, height, depth);
let boundingboxmaterial = new three.shadermaterial();
let boundingboxmesh = new three.mesh(boundingboxgeometry, boundingboxmaterial);
boundingboxmesh.position.set(targetpos.x, targetpos.y, targetpos.z);
viewer.addexternalobject("boundingbox", boundingboxmesh);
//執行動畫
悠揚的牧笛
宣告:本部落格原創文字只代表本人工作中在某一時間內總結的觀點或結論,與本人所在單位沒有直接利益關係。非商業,未授權貼子請以現狀保留,**時必須保留此段宣告,且在文章頁面明顯位置給出原文連線。
BIM BIMFACE中建立向量文字 下篇
在三維空間中,標識乙個物體的位置資訊,通常是通過世界座標的形式,世界座標由三個數字組成,分別代表x y z軸方向的座標,那麼如果要將建立的向量文字加入到指定位置,就需要設定向量文字的座標,在threejs中,任何mesh都有position屬性,只要將該屬性設定到構件所在的位置即可。在bimface...
Cacti實現MSN報警
一 軟體環境 cacti 需threshold外掛程式 msn機械人 sendmsg 二 安裝過程 cacti的threshold外掛程式參見 cacti配置e mail報警 三 配置過程 1.按照cacti配置e mail報警配置並啟用thold 2.編輯cacti plugins thold t...
open falcon實現郵件報警
2.安裝mail provider 安裝方法 編譯成功之後,修改cfg.json檔案相關資訊,使用 使用curl命令,驗證是否能發郵件,返回success的話就是成功了 curl d tos 你的郵箱 subject 報警測試 content 這是一封測試郵件 success 3.安裝sender ...