Cesium應用篇:3控件(5)CesiumInspector


       CesiumInspector控件並不是帶來太多功能上的,但對開發人員來說,對於了解Cesium的渲染效果以及性能調優,還是一個很有價值的控件,特別是一些渲染狀態下的問題,采用該控件,應該還是會有很多啟發性的收獲。

廢話不多說,直接上代碼:

 

clip_image001[4]

 

       簡單一句話,就會出現如下這個超級專業的控件:

 

clip_image002[4]

 

       里面的具體功能不多,但每一個都很專業,也間接說明了Cesium內部一個很出色的管理機制,下面就一一道來。

Show Frustums

       地球半徑是6378137,處於精度的考慮,比如深度值和相機抖動等問題,Cesium根據當前區域的可視范圍的深度最大值和最小值,會動態的維護裁剪區域,在必要的情況下會由近及遠的分成多個裁剪區,這樣每個區域的深度區間不至於太大。我還沒有仔細看這塊的代碼,只能先說一個思路,后續涉及到原理篇時在深入研究。

       而Show Frustums就是實時顯示當前的裁剪區,並會統計在不同裁剪區中Command(渲染對象)的個數。通常,在穩定的情況下,一個裁剪區就足夠了,除非存在兩個高度差距比較大的物體同時在場景內。當然,在快速縮放的時候,特別是拉平時,可能在瞬間,深度區間會比較大,所以需要多個裁剪區。

 

clip_image004[4]

 

       如圖,現實了不同的裁剪區間的分割,但可視范圍穩定后,會更新裁剪區間,盡可能的保持在一個裁剪區內,如下圖:

 

clip_image006[4]

Performance Display

       Scene中有一個Performance類,如果開啟,會update統計幀數和每一幀的時間,和Chrome的幀數統計對比了一下,還是比較准的。

 

clip_image007[4]

Globe Depth & Pick Depth

       下面來看看兩個深度的,大部分場景下,兩者的深度值是相同的,除非有模型,且模型在空中,和地面差距比較大的時候,就有一些不同之處了。

       我們先打開地形,選擇STK影像,正常情況下效果如下:

 

clip_image009[4]

 

       查看深度效果如下:

 

clip_image011[4]

 

       可以看到越近則深度越小,越趨近於黑色(0),月原則深度值越大(255)。我們加載一架飛機到此處,再看看會有如何的變化:

 

clip_image013[4]

 

       由於這架飛機高度為5000,當我們靠近該飛機時,則會構造兩個裁剪區域,所以效果如下:

 

clip_image015[4]

Primitive

我們在看看Primitive,選中該飛機,選擇如下選項:

 

clip_image016[4]

 

       如下圖所示,你會看到該模型的bounds,以及自身坐標系的xyz軸:

 

clip_image018[4]

Terrain

       這個功能很強大,選中一個Tile,可以看它的三角網,選擇如下屬性:

 

clip_image019[4]

 

       STK是Tin的三角網,基於特征點,同時還有裙邊的處理,通過Wireframe都可以清楚的看到。同時你也可以中斷LOD策略,這樣縮放時可以詳細的了解Tile的三角網信息。一目了然,可以充分的認識到STK地形的強大之處,后面講到地形篇時,我們會詳細的介紹STK和高度圖兩種方式,以及STK在數據層面上很多優化,水面等效果。

 

clip_image021[4]

 

       OK,Inspector的介紹到此結束,功能不多,但各個都很精致,能幫助我們很好的剖析Cesium的內部渲染機制,也能夠對一些復雜的渲染問題,提供一個整體的線索,方便我們對問題的分析定位。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM