虚幻4把模型拖入场景后,模型是怎么被渲染出来的流程分析

在我们把模型拖入虚幻4的视口后

场景编辑器会调用RendererScene的AddPrimitive函数

然后在这个函数种会调用Scene->AddPrimitiveSceneInfo_RenderThread(RHICmdList, PrimitiveSceneInfo);

然后会调用FPrimitiveSceneInfo的AddToScene

然后会调用PrimitiveSceneInfo的AddStaticMeshes

然后会调用FStaticMesh的AddToDrawLists

然后这里会根据情况把FStaticMesh加入到各个DrawingPolicyFactory里面

各个Drawing PolicyFactory又会调用AddStaticMesh函数,这里以FDepthDrawingPolicyFactory的AddStaticMesh为例

这里就会完成把我们的模型数据加入到FScene的各种DrawList里面

来看看FScene里面到底存了些啥

一切就十分清晰了
最后在StaticMeshDrawList中完成添加和link

然后我们的FScene就完成了绘制列表的构建。

然后事情还没有完,我们的模型是怎么被渲染出来的呢。

找到void FDeferredShadingSceneRenderer::Render(FRHICommandListImmediate& RHICmdList)

函数,我以RenderPrePass为例

调用drawlist的draw方法,我们就会完成相应pass需要绘制的东西了。

Enjoy it !!


版权声明:本文为qq_16756235原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。