天天看點

cloudcompare旋轉點雲_CloudCompare:三維點雲(網格)編輯和處理工具

便攜性

CloudCompare是在C++中開發的。它目前是在Windows、Linux和Mac作業系統上編譯(感謝CMake)32位和64位體系結構。

在存儲和速度之間進行權衡

以下是關于CloudCompare中所做技術選擇的一些細節(主要是為了實作加載盡可能多的點而不降低太多性能的目标,即在存儲和速度之間進行良好的權衡)

所有存儲值和大部分計算都使用32位浮點值完成

防止對數組大小的任何限制(因為在32 位Windows上很難獲得大的連續記憶體塊),我們使用一個自定義容器,自動将資料集分塊成小塊(每個塊64KB)。

法向量(如果有)壓縮到16位(實際上是15位,因為量化1的工作方式)

CloudCompare中使用的特定八叉樹結構需要恒定的每點記憶體(即在32位作業系統上,每點8個位元組—最大深度為10—在64位作業系統上為12個位元組—最大深度為21!)。它基于三維點坐标的特定量化-一種Morton【2】排序方案-其中每個點在八叉樹網格和任何級别上的位置都由單個整數代碼表示。然後我們處理這些代碼以實作非常高效的最近鄰查詢操作。然而,盡管這種八叉樹結構對于計算距離非常有效,但它不适合快速顯示( Level Of Detail (LOD) 等)

基于以上平衡選擇的結果是CloudCompare每GB記憶體可以存儲大約9000萬個空白點(隻含有XYZ的意思)。如果添加RGB顔色、法線向量、單個尺度字段,并且需要計算八叉樹,則每GB最多可以加載3200萬個點。在一個64位作業系統上,你可以加載任意多個點(事實上多達40億)。但是,根據您的顯示卡功能,顯示和互動性可能會因為這許多點而嚴重降低)。有了高端顯示卡,你可以保持一個合理的幀速率高達1.5億個點。

參考文獻

1 http://en.wikipedia.org/wiki/Quantization

2 http://en.wikipedia.org/wiki/Z-order_curve