標籤:

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:虛幻引擎 |