文章为本人学习虚幻4引擎源码所整理笔记,如有纰漏欢迎指正交流。
1.当模型被添加到场景中时,StaticMesh最终会被添加到Scene的DrawList中(详细可看笔记“StaticMesh添加到场景DrawList步骤”),
添加时机为在策略工厂DrawingPolicyFactory的AddStaticMesh中创建DrawingPolicy策略,并将Mesh和FDepthDrawingPolicy策略策略加入到Scene的DepthDrawList绘制列表中:
调用堆栈如下:
![](https://img-blog.csdnimg.cn/5c67c379c3ce4c7db068eb666122cc4e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUmFwZG9ab3Jv,size_20,color_FFFFFF,t_70,g_se,x_16)
2.在BasePassOpaqueDrawingPolicyFactory::AddStaticMesh()方法中,会执行ProcessBasePassMesh()来处理基础通道的Mesh
(BasePassRendering.cpp)
![](https://img-blog.csdnimg.cn/1937a7f5f120448090ffb00b0654aee6.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUmFwZG9ab3Jv,size_20,color_FFFFFF,t_70,g_se,x_16)
3.在ProcessBasePassMesh()方法中,会执行DrawBasePassStaticMeshAction::Process(),
在Process()中会创建BasePassDrawingPolicy策略,并将策略和Mesh一同添加到Sce