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

本文详细介绍了虚幻4引擎中模型从导入到最终渲染的全过程。模型数据通过一系列函数调用,如AddPrimitive、AddToScene等,最终加入到FScene的不同DrawList中。在FDeferredShadingSceneRenderer的Render函数中,通过调用各个DrawList的draw方法来完成不同阶段的渲染工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在我们把模型拖入虚幻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 !!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值