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