UE3植被Instance繪製流程
1.每幀繪製的地方
FSceneRenderer.ProcessVisible 中 是StaticRelevance
2 FViewInfo.StaticMeshVisibilityMap
3 繪製透明的模型是這個流程
單獨的參數設置FInstancedStaticMeshVertexFactoryShaderParameters.SetMesh
4 FInstancedStaticMeshVertexFactory.InitRHI 中的頂點格式
5 在usf中
6 計算Instance位置的方式
數據來源於FInstancedStaticMeshRenderData.InstanceBuffer
在FInstancedStaticMeshRenderData.FInstancedStaticMeshRenderData 中初始化
FStaticMeshInstanceBuffer.Init中賦值
instance to world矩陣直接賦值後面的3個 world to Instance
每個Instance的偏移矩陣
7 Instance的偏移數據在單獨的流 VertexBuffer中
下圖就是Instance所有的Stream
上圖可見,對應VEU_TextureCoordinate 4,5,6
8 關鍵就是FInstancedStaticMeshVertexFactory.DataType.InstancedTransformComponent 這個數據是否可以更新
這個數據僅在FInstancedStaticMeshRenderData.InitStaticMeshVertexFactories中關聯FInstancedStaticMeshRenderData.InstanceBuffer
9 關聯圖
10 全圖如下
11 現在看FInstancedStaticMeshRenderData.InstanceBuffer 是否可更新
僅在FStaticMeshInstanceBuffer.Init 中填充數據
初始化一次
沒有其他地方更新了
推薦閱讀:
※「2018 Unreal Open Day 虛幻引擎技術開放日」活動開啟預售
※真良心大廠EPIC,頁游廣告又有新素材了!
※[UE4]資源非同步載入(Assets Asynchronous Loading)與內存釋放(Free Memory)
※《InsideUE4》UObject(六)類型系統代碼生成重構-UE4CodeGen_Private
※[UE4]Indirect Lighting Cache(間接光照緩存)
TAG:虛幻引擎 |