SuperMap iDesktop/iDesktopX 端性能优化
作者:yd&hyy
一、背景
在使用iDesktop/iDesktopX的三維場景加載GIS數據的過程中,隨著數據的種類、大小、數量的增多,往往會有很多的性能問題,加載速率緩慢,數據顯示清晰度不足,多數據交疊顯示錯誤,掉幀甚至崩潰等情況。針對以上情況,本文著重介紹了在各種情況下對于場景及圖層的優化方案供用戶參考使用。
二、針對場景的顯示優化
2.1 場景顯示效果優化
優化場景的顯示效果的方式包括:文本層疊優化、設置地形縮放效果、場景要素的顯示控制等。
2.2 優化文本層疊效果
在場景顯示中,多個文本之間可以會出現層疊的情況,影響場景的顯示效果。比較好的一種解決方法是:通過文本過濾顯示,過濾掉部分層疊文本,根據層疊文本存在的優先級或特定需要保留一個完整的文本對象。
為了解決場景中的文本層疊的問題,應用程序提供了壓蓋文本過濾顯示與自動避讓的功能。可對當前場景設置不顯示壓蓋的文本對象,自動過濾掉后輸入的文本對象,從而避免壓蓋現象出現。
2.3 啟用場景反走樣
在【文件】——【選項】——【環境】中打開“場景反走樣”選項。
1)反走樣
在光柵圖形顯示器上顯示非水平且非垂直的直線或多邊形邊界時,或多或少會呈現鋸齒狀或臺階狀外觀。這是因為直線、多邊形、色彩邊界等是連續的,而光柵則是由離散的點組成,在光柵顯示設備上表現直線、多邊形等,必須在離散位置采樣。由于采樣不充分重建后造成的信息失真,就叫“走樣”。而用于減少或消除這種效果的技術,就稱為反走樣。
2)場景反走樣
對整個場景窗口的顯示進行優化,使場景自身和加載到場景中的圖層和模型的顯示更加平滑。(開啟場景反走樣會優化數據顯示,但是會影響加載速率)
2.4 控制場景要素的顯示
為了使場景中可以顯示的基礎地理要素更為豐富,同時也是為了滿足不同行業的用戶對場景中顯示、瀏覽的需求,應用程序在場景中提供了大氣層、經緯網、海洋水體、地下效果等輔助要素。用戶可根據需要,控制這些地理要素的是否顯示,優化場景中的顯示效果。
在應用程序中,對場景顯示速度的優化,主要通過減少場景中顯示的圖層和顯示的對象,提高顯示與瀏覽速度的目的。優化場景顯示速度的方式包括:對象過濾顯示、圖層過濾顯示、三維緩存、場景緩存等。
2.5 使用緩存
為了提高場景中海量三維數據的顯示、瀏覽速度,應用程序提供了生成三維緩存和場景緩存的功能,以及在場景中加載緩存的功能。
1)生成三維緩存
在應用程序中可生成多種類型的三維緩存類型,包括:三維地圖緩存、三維矢量緩存、三維影像緩存、三維地形緩存、三維模型緩存。通過對不同類型的數據生成三維緩存,提高大數據量的矢量、地形、影像、模型等數據在場景中的瀏覽速度。
2)生成場景緩存
場景緩存是指基于整個場景生成緩存,通過一次操作,即可將已加載到場景中的不同類型的數據生成對應類型的緩存。通過對整個場景生成緩存,能便捷對加載到場景中的各類數據生成和加載緩存,提高整個場景的瀏覽速度。
3)加載緩存
在場景中加載已生成的緩存文件,可大大提高海量數據的瀏覽速度。
2.6 設置地形縮放效果
為了更為逼真地顯示場景中模擬球體的三維效果,當在場景中加載地形圖層后,可對地形圖層設置地形縮放比例的數值,使場景按照縮放比例值顯示地形數據的垂直夸張程度,從而優化場景中的三維顯示效果。
三、針對圖層的顯示優化
3.1 三維圖層屬性控制
1)圖層對象控制
三維場景中可以根據一些對象屬性條件、對象特征條件、場景視口條件,通過不同程度的條件,對圖層中的對象進行過濾或是排序,來優化顯示效果,減小性能負擔。
屬性過濾條件
在場景中,為了提高瀏覽速度,經常需要把一些對象根據一定的條件進行過濾。通過設置過濾表達式,僅在圖層中顯示滿足條件的幾何對象。
可見高度過濾條件
在場景顯示中,經常會遇到根據不同的高度來過濾圖層,例如:
當前場景中,A 圖層低于于當前高度將不顯示,或高于當前高度將不顯示;
當前場景中,A 圖層在高度為50000米時顯示,在30000米時不顯示。
在不同高度下,應用程序提供了設置圖層可見高度范圍的功能,用戶可根據場景中的圖層顯示需要,控制圖層在多大的高度范圍中顯示。
透明度過濾條件
三維對象本身的顏色是RGBA的形式,每個三維對象都有自己的Alpha通道透明度。
在場景顯示中,可以根據業務情況來根據對象的Alpha頭透明度來過濾對象,低于Alpha過濾閾值的對象不顯示。
透明排序
只適用于模型緩存圖層。只有當前選擇的圖層為模型緩存圖層時,該復選框被激活。勾選“開啟透明排序”復選框,可以對當前模型緩存圖層的對象按照對象透明度進行排序。
多邊形偏移渲染順序
多邊形偏移是解決場景中圖層重疊發生閃爍問題的有效辦法,如下圖模型因為貼地球表面,所以產生閃爍現象。設置模型多邊形偏移的偏移因子為5后,可以發現閃爍現象消失了。
支持對場景、三維面圖層、三維切片緩存(osgb)圖層及模型數據集圖層設置多邊形偏移,在圖層屬性面板下。
偏移常量:獲取或設置多邊形偏移常量。當值為正值時,表示多邊形朝屏幕外偏移;為負值時,表示多邊形朝屏幕內偏移。
縮放因子:多邊形偏移常量和多邊形偏移深度斜率因子共同決定了多邊形對象在屏幕深度方向的偏移量,設置多邊形偏移常量和多邊形偏移深度斜率因子。
多邊形偏移常量和縮放因子共同決定了多邊形對象在屏幕深度方向的偏移量,有如下公式: 深度偏移量=m縮放因子+r偏移常量
m為多邊形的最大縮放因子;r為確保場景坐標深度值能夠被區分的最小值,它是隨OpenGL渲染而異的常量。
2)顯示效果控制
透明效果強化
可以花費更多的性能負載,來提高優化帶有部分透明材質、半透明材質的模型顯示效果(使用前需要開啟場景屬性中的透明優化)。 反之關閉可以降低性能負載。
對象陰影支持
開啟陰影模式,可以使本身沒有陰影的三維對象,可以根據模擬的日光條件,渲染顯示出該對象的陰影。包括“無陰影”、“顯示選中對象陰影”和“顯示所有對象陰影”三種模式。
無陰影:表示圖層中的所有對象的陰影均不顯示。
顯示選中對象的陰影:表示圖層中只有選中對象的陰影顯示。
顯示所有對象陰影:表示圖層中所有對象的陰影均顯示。
3)其它控制
緩存圖層內存釋放
僅適用于緩存圖層。開啟“隱藏圖層時釋放內存”復選框,可以實現隱藏緩存圖層時,釋放該圖層的內存,減少總體內存占用。
實時刷新
開啟“啟用時刷新”復選框,即可在編輯修改圖層每一條屬性時,立刻生效設置的參數,而不需要手動確認。
3.2 三維模型圖層屬性控制
1)LOD縮放比例
模型Lod層是在不同高度下節約渲染性能的策略。如:
相機高度低于500時,顯示0級原始最精細層,
相機高度在500-1000時,顯示1級粗糙Lod層,
相機高度在1000-1500時,顯示2級粗糙Lod層,
…向上都是顯示最低以及Lod層。
使用上是不能直接改變LOD切換距離值,但可通過更改LOD層級切換距離縮放系數來改變LOD切換距離,即:新的LOD切換距離=原始LOD切換距離*LOD切換距離縮放系數。
這樣使用LOD縮放比例可以控制高性能精細層顯示策略和高效率粗糙層顯示策略的平衡調整。
2)線框模式
可以選擇設置模型的線框類型,包含“三角形”、“四邊形”和“草圖”三種模式。渲染精細程度上是三角形>四邊形>草圖,渲染效率上是反之。
過濾閾值(相鄰兩三角面之間的夾角)是指過濾小于閾值的線框不在顯示,設置的話可以節約渲染負擔,提高顯示效率。(線框模式選擇四邊形模式時,線框閾值才有效果)。
3.3 三維緩存圖層屬性控制
1)LOD縮放比例
緩存Lod層是在不同高度下節約渲染性能的策略。如:
相機高度低于500時,顯示0級原始最精細層,
相機高度在500-1000時,顯示1級粗糙Lod層,
相機高度在1000-1500時,顯示2級粗糙Lod層,
…向上都是顯示最低以及Lod層。
使用上是不能直接改變LOD切換距離值,但可通過更改LOD層級切換距離縮放系數來改變LOD切換距離,即:新的LOD切換距離=原始LOD切換距離*LOD切換距離縮放系數。
這樣使用LOD縮放比例可以控制高性能精細層顯示策略和高效率粗糙層顯示策略的平衡調整。
2)加載優先級
包含深度優先、層優先和深度非線性切換。
深度優先:優先加載當前視角范圍內所有金字塔的所有切片。
層優先:優先加載當前金字塔層級的所有切片。
深度非線性切換:優先加載當前視角范圍內所有金字塔的所有切片,距離相機較遠處只加載較粗糙的數據。
3)線框模式
可以選擇設置模型的線框類型,包含“三角形”、“四邊形”和“草圖”三種模式。渲染精細程度上是三角形>四邊形>草圖,渲染效率上是反之。
過濾閾值(相鄰兩三角面之間的夾角)是指過濾小于閾值的線框不在顯示,設置的話可以節約渲染負擔,提高顯示效率。(線框模式選擇四邊形模式時,線框閾值才有效果)。
3.4 三維地形圖層屬性控制
1)LOD縮放比例
緩存Lod層是在不同高度下節約渲染性能的策略。如:
相機高度低于500時,顯示0級原始最精細層,
相機高度在500-1000時,顯示1級粗糙Lod層,
相機高度在1000-1500時,顯示2級粗糙Lod層,
…向上都是顯示最低以及Lod層。
使用上是不能直接改變LOD切換距離值,但可通過更改LOD層級切換距離縮放系數來改變LOD切換距離,即:新的LOD切換距離=原始LOD切換距離*LOD切換距離縮放系數。
這樣使用LOD縮放比例可以控制高性能精細層顯示策略和高效率粗糙層顯示策略的平衡調整。
2)填充模式
可以選擇填充模式為“填充”和“輪廓”,輪廓則顯示原始三角網,輪廓模式可以極大提升渲染效率,但是僅能顯示三角網線框。
總結
以上是生活随笔為你收集整理的SuperMap iDesktop/iDesktopX 端性能优化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zune linux_兑换Zune Ma
- 下一篇: 微软Zune闰年bug 分析