为什么要将Shader封装为智能指针(Smart Pointer)对象?
我们想将其创建在堆上,并且控制这个对象的生命周期,将所有权绑定到SandboxApp。这也就意味着如果这个应用程序被销毁,那么这个智能指针对象也会被销毁,没有其他引用。
延迟渲染
在渲染之前就拥有所有实际渲染场景的上下文,并做出一些处理,从而提高渲染的效率
多线程引擎
多线程引擎是将游戏引擎中的不同子系统(如物理、逻辑、渲染)拆分到不同线程中,以提升性能。
常见多线程结构为:
- 游戏逻辑线程:控制单位行为、脚本执行等。
- 物理线程:碰撞检测、刚体力学等。
- 渲染线程:提交渲染命令到 GPU。
- 音频线程:播放和混合音效。
- 资源加载线程:异步加载纹理、模型、场景等。
渲染线程必须对着色器对象具有强引用
引擎中提交给渲染线程的每一个资产都应该是共享指针
共享指针:线程安全,使用原子增量减量
对于仅限于游戏引擎的,比如作为资产处理的事情,使用Ref

Leave a comment