1. 程式人生 > >osgEarth的Rex引擎原理分析(十八)瓦片節點TileNode的建立過程

osgEarth的Rex引擎原理分析(十八)瓦片節點TileNode的建立過程

目標:(十七)中問題39

TileNode::create呼叫的時機有兩種:(1)頂層瓦片建立時;(2)子瓦片需要建立時

該函式主要做以下工作:

1、設定成員變數_context,記錄rex引擎的上下文環境

2、設定本級瓦片的_key

3、建立遮罩生成器osgEarth::Drivers::RexTerrainEngine::MaskGenerator

4、利用rex引擎的共享幾何圖形池_geometryPool子節點獲取瓦片的幾何圖形

5、建立瓦片的TileDrawable物件,並設定其包圍盒回撥函式(rex引擎中建立的)

6、建立瓦片的transform節點_surface節點

7、建立載入請求LoadTileData,這是請求產生的最初的地方

8、設定成員變數_stitchNormalMap,負責瓦片邊界的法線

9、設定成員變數_tileKeyValue,為什麼要mod 65536呢?

10、設定成員變數_morphConstants,作用是什麼?

11、根據父節點渲染模型,設定當前瓦片的渲染模型,主要是渲染通道和取樣器,通道直接複用,通道取樣器要相對父節點取樣器矩陣增加縮放偏移量,如果需要和父節點顏色混合還要設定混合取樣器(由Rex引擎的取樣器繫結來決定)。

12、繼承父節點的共享取樣器,並進行縮放偏移修正

13、使用共享高程取樣器初始化高程柵格

14、dirtyBound,重新計算邊界。

15、setDirty,重新載入瓦片資料(可能地圖進行了修改)

16、將此瓦片新增到活躍瓦片暫存器中

 

 

待繼續分析列表:

9、earth檔案中都有哪些options((九)中問題)

10、如何根據earth檔案options建立不同的地理資訊引擎節點((九)中問題)

11、rex地理資訊引擎的四樑八柱((九)中問題)

12、osgEarth::TerrainEngineNode中setMap方法作用((十二)中問題)

13、RexTerrainEngineNode中_mapFrame的作用((十二)中問題)

14、地形變形(Terrain morphing)((十二)中問題)

15、地球瓦片過期門限的含義((十二)中問題)

16、高解析度優先的含義((十二)中問題)

17、OSGEARTH_DEBUG_NORMALS環境變數的作用((十二)中問題)

18、活躍瓦片暫存器的作用((十二)中問題)

19、資源釋放器子節點的作用((十二)中問題)

20、共享幾何圖形池子節點的作用((十二)中問題)

21、分頁瓦片載入器子節點的作用((十二)中問題)

22、分頁瓦片解除安裝器子節點的作用((十二)中問題)

23、柵格化器子節點的作用((十二)中問題)

24、地形子節點的作用((十二)中問題)

25、繫結渲染器的作用((十二)中問題)

26、地圖回撥函式的作用((十二)中問題)

27、如何將地圖圖層新增到rex引擎中((十二)中問題)

28、選擇資訊的作用((十二)中問題)

29、瓦片包圍盒修改回撥函式的作用((十二)中問題)

30、重新整理rex引擎((十二)中問題)

31、重新整理邊界作用((十二)中問題)

32、osgEarth::Metrics類的意義((十四)中問題)

33、請求合併佇列_mergeQueue((十四)中問題)

34、分頁瓦片載入器在更新遍歷時對請求處理過程((十四)中問題)

35、分頁瓦片載入器在更新遍歷時對已處理請求裁剪過程((十四)中問題)

36、已處理的請求佇列_requests((十四)中問題)

37、DatabasePager中的_fileRequestQueue和_httpRequestQueue((十六)中問題)

38、瓦片請求的生成到處理過程詳解((十六)中問題)

39、瓦片節點TileNode的建立過程((十七)中問題)

40、request請求載入瓦片優先順序的含義((十七)中問題)

41、request的_internalHandle的作用((十七)中問題)

42、DatabaseRequest中_objectCache含義((十七)中問題)

42、osgEarth的多執行緒分析((十七)中問題)

43、osgEarth的快取及其結構((十七)中問題)

44、DatabaseThread從快取載入資料過程((十七)中問題)

45、DatabaseThread從檔案載入資料過程((十七)中問題)

46、決定建立TileNode的時機條件((十七)中問題)

47、TerrainEngineNode的createTileModel過程詳解((十七)中問題)

48、DatabaseThread中CompileSet的含義((十七)中問題)

48、PagerLoader的traverse過程詳解((十七)中問題)

49、DatabaseThread的run過程詳解((十七)中問題)

50、LoadTileData的invoke過程詳解((十七)中問題)

51、TileNode的cull過程詳解((十七)中問題)

52、遮罩生成器osgEarth::Drivers::RexTerrainEngine::MaskGenerator((十八)中問題)

53、RexTerrainEngineNode::traverse過程詳解((十八)中問題)

54、TileNode節點下的場景樹分析((十八)中問題)

55、地形瓦片大小尺寸和LOD的關係((十八)中問題)

56、TileNode的_tileKeyValue作用((十八)中問題)

57、TileNode的_morphConstants作用((十八)中問題)

58、TileNode的_stitchNormalMap作用((十八)中問題)

59、TileNode的_renderModel作用((十八)中問題)

60、初始化高程柵格過程詳解((十八)中問題)

61、LoadTileData中的CreateTileModelFilter作用((十八)中問題)

62、TileNode節點何時會從場景樹中移除((十八)中問題)