UnrealEngine4初始化流程
来源:互联网 发布:unity3d棋牌游戏源码 编辑:程序博客网 时间:2024/06/05 00:18
自古以来所有的游戏引擎都分为三个大阶段:Init,Loop,Exit。UE4也不例外。
首先找到带有入口函数的文件:Runtime/Launch/Private/XXXX/LaunchXXXX.cpp。Windows平台就将XXXX替换成Windows。
这个文件,实现一个GuardedMainWrapper函数,顾名思义,这个函数是对GuardedMain的包装,将GuardedMain用try\catch包装起来。
GuardedMain位于:Runtime/Launch/Private/Launch.cpp。将整个引擎分为了四个大阶段:引擎预初始(EnginePreInit),引擎初始(EngineInit),引擎循环(EngineLoop),引擎退出(EngineExit)。
通过FEngineLoop对象的PreInit,Init,Tick,Exit来实现,参见Runtime/Launch/Private/LaunchEngineLoop.cpp。
在PreInit阶段主要做了:日志功能的启动,线程池的启动,加载了预初始相关的模块,应用程序层面的初始化(ini配置的缓冲的加载,TaskGraph的启动),RHI初始化,异步IO系统初始化,平台特征模块初始化,游戏物理的初始化,流管理初始化,Slate应用程序的创建,启动渲染线程,加载启动模块。
在Init阶段主要做了:引擎的对象的构造,引擎的命令行控制字处理,时间初始化,引擎的具体初始化。
在Tick节点主要做了:开始帧(请求渲染线程的BeginFrame命令、更新时间以及处理最大更新率、更新FPS图表),重启延迟更新(请求渲染线程的ResetDeferredUpdates、消息泵,引擎的具体循环、Shader的异步编译处理),结束帧(请求渲染线程的EndFrame命令)。
在Exit里主要做了:应用程序预退出(线程池的销毁、Shader编译管理的关闭、在线子系统的关闭、结束游戏物理,粒子顶点工厂池释放,运动模糊释放,停止渲染线程,RHI退出,关闭所有的模块,TaskGraph关闭,流管理关闭,异步IO系统关闭。
最终还会调用一个AppExit,AppExit里主要做了:ini配置缓冲的退出,Log的退出。
- UnrealEngine4初始化流程
- UnrealEngine4初始化流程
- UnrealEngine4-Roadmap
- UnrealEngine4.2.0编译小记
- UnrealEngine4 学习总结备忘
- UnrealEngine4清除临时文件
- Struts框架初始化流程
- WorldWind初始化流程
- MTK Phonebook初始化流程
- flex初始化流程
- 达芬奇DM355初始化流程
- Android/Bluetooth 初始化流程
- Android Bluetooth初始化流程
- SD 卡初始化流程
- 达芬奇 DMSoC 初始化流程
- hive 初始化运行流程
- wpa_supplicant 初始化流程分析
- wpa_supplicant 初始化流程分析
- Python学习笔记18:标准库之多进程(multiprocessing包)
- c语言函数--P
- Codeforces Round #274 (Div. 2) A,B,C
- 一个程序员的书法学习之路-纸墨篇
- Hdu 1074 Doing Homework 状态压缩
- UnrealEngine4初始化流程
- fifo与pipe总结
- C++关于头文件容易混淆的问题
- 9种基本算法_递归
- 【无限互联】学员作品 豆果美食IOS客户端
- 45个实用的JavaScript技巧、窍门和最佳实践
- 我的网络编程之旅——P2P相关话题
- 45个实用的JavaScript技巧、窍门和最佳实践
- Swift教程_零基础学习Swift完整实例(一)_swift实例简介