extjs 渲染之前的方法_UE4笔记-渲染流程源码分析(引擎Tick开始)

先从点下编辑器Play按钮那一刻开始。

流程从Engine的tick出发。

ec727e27a5be0cadab0ccdd5d2ac821d.png

这下我们走到了 FViewport::Draw( boolbShouldPresent/*= true */)方法,实现是在UnrealClicent.cpp里面。

0409c0248a5f80dabde506133539bd89.png

还有一层Draw,是ViewportClicent的Draw,每个FViewport持有一个ViewportClicent,后续可以继续分析其关系。

7d283c9ed3f5fee3c093f75b8d0e6a03.png

往下看下去,来到一个比较重点的代码

FSceneViewFamilyContext ViewFamily(FSceneViewFamily::ConstructionValues(

InViewport,MyWorld->Scene,EngineShowFlags) .SetRealtimeUpdate(true));

这里是构建一个场景视图成员,用于渲染用,其实里面更多的是一些数据记录,比较重要的是所持有的FSceneInterface的子类FScene实例,FScene可以理解成UWorld在渲染模块下的映射,也就是渲染模块不直接关心UWorld上的Actor,而是关心FScene上的数据。

4d06af04c3232a50badc165c242d3a7c.png

8f7674cc1e6df3ab1a450c82d7a7c953.png

再看看FSceneViewFamily和FSceneViewFamilyContext

57dd0d34036caaa8d3ba0ba6c832784f.png

8464fca457f373ce1431957d49e77f42.png

0c7b151197ca7ac3136435e83fc171ee.png

到目前为止,FSceneViewFamily里面只是包含了一些视口数据,但是实际渲染需要的ViewMatrix和ProjectionMatrix并没有任何求解地方,所以接下来肯定是有地方计

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值