點雲渲染與索引

1、在改進渲染幀時的模型之後,並且使用GPU渲染點雲,但仍會出現在編輯時卡頓的問題,經過測試發現實時從點雲中獲取點雲上的值是一個非常耗時的工作,現在的辦法是:

1)基於視景體的範圍,與場景中的osg的Goemtry的boundingbox進行比較,先這過濾一部分;

2)再查找是哪一個osg的boundingbox是與捕捉射線相交;

3)遍歷這個geometry中的所有點,然後將這些點先轉成屏幕座標,然後將剛纔鼠標取到的屏幕座標與這些點的屏幕座標比較,取最近的那個點, 即爲所求。

還可以優化的解決辦法:

1)現在原始點雲進行網格剖分時,是定死的10米乘以10米的網格大小,因此當網格中點的個數是沒法衡量的,若點少則捕捉會比較快,如果這份數據的點多則後期捕捉會慢,這個我們通過在捕捉事件中設置定時器可以記錄得到捕捉所花的時間,那緩和的解決辦法是可以將這個10米乘以10米改成8米乘以8米的網格大小或更小,但這樣的話會導致在場景中的Geometry變多,這也是一個問題,所以我說是緩和解決辦法。

2)靠譜的解決辦法是對點雲構建八叉樹或其它數據結構,構建索引來解決問題並且仍然可以與渲染的幀時模型結合起來,統一管理,上述提到的只是在一些經驗,輔助自己後期建立索引和分塊分層顯示。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章