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節點何時會從場景樹中移除((十八)中問題)