初始RHI,它主要是做一些跨平台像DX,OpenGl
根据引擎的配置做一次性的全局变量的初始化
是否Cook数据或者允许在编译器情况下来构建这个Cook数据
初始化着色器代码库
如果不是UE编辑器,是否需要Cook数据,初始化管线缓存的系统
判断GODS (分布式同步组件)
判读是否需要Cook,获取缓存,获取Build 数据,获取派生数据的引用
创建距离场的异步队列
这个异步队列主要做模型距离场方面的内容
是否允许着色代码编译
创建着色编译统计
创建着色编译管理器
创建着色哈希的缓存
获取渲染模块
是否允许着色器进行编译,初始化着色器类型
清除延迟注册代理(着色器类型准备)
显示当前的进度
是否允许全局着色器被读取,这里检测是否创建着色器全局映射,如果是专用服务器或不支持渲染的直接就返回,然后再检测是否刷新着色器的映射,如果需要则删除之前的全局映射,并且刷新了着色器的文件缓存,接着创建全局着色器的映射,尝试从缓存中加载着色器映射,如果加载失败了且允许编译着色器则提交DDC请求并处理请求,如果加载失败了且不允许编译着色器,且处理错误并退出程序,然后再验证全局着色器,如果需要在加载时,创建着色器,开始创建所有的着色器,最后如果没有正在编译的着色器映射,且不支持多线程着色器创建,则创建替代清除着色器
创建MoviePlayer
是否启动预加载屏幕
是否支持早期的电影播放
初始化RHI完
是否使用多线程渲染
是否支持RHI渲染
启动渲染线程
判断不是服务器
读取这个两个模块
初始化Slate D3D 渲染因为在Windows平台
创建引擎的服务对象
读取相应的模块
尝试获取预加载屏幕管理
保存预初始化上下文信息