BGFX多线程渲染 1. 多线程基础 1. 并发概念 1. 并发任务简介 在多年以前,在手机.pc端.游戏机等,都是一个单核的CPU.这样,在硬件层面上,处理多个任务的时候,也是把一些任务切分成一些小任务.在某些时刻进行任务的切换,从A任务切换到B任务,在这个过程中,系统每一次切换任务,都是需要切换上下文的,这也就从侧面说明了一个问题,切换任务也是有时间开销. 有人会说为什么把大任务切割成小任务,在一个一个小任务进行切换那?其实这是一个客观存在的需求.举一个例子,如果大任务都是排着队执行,也不进…
上回书<Part 0 引擎基础>说到,我们粗略地知道UE4是以哪些类来管理一个游戏场景里的数据的,但这仅仅是我们开始探索UE4渲染体系的一小步. 本回主要介绍UE4渲染体系中比较宏观顶层的一部分--多线程渲染,具体的多线程中,又分为: 游戏线程(GameThread) 渲染线程(RenderThread) RHI线程(Render Hardware Interface Thread) 为什么是多线程? 用来描述"渲染"的最基础的理论就是像图上的那样,CPU调用图形API提供…
在介绍UE4渲染体系前,我们有必要来先看一下UE4是用什么样的方式来构建游戏场景数据的. 1 Object 在UE4中当我们说Object,通常是指代引擎代码中的UObject类,它是引擎里管理绝大部分类和对象的基石,这是因为它提供了非常多的开发者需要的功能特性,例如元数据.反射.垃圾回收.序列化.编辑器支持等一系列功能. 与Unity中的物体容器GameObject相比(名字上类似),个人理解UObject存在更像是一种UE4提供的开发核心工具箱,各种需要高复用性的核心功能都集成到里面,不仅仅…
目录 6.1 本篇概述 6.1.1 本篇内容 6.1.2 基础概念 6.2 UE5新特性 6.2.1 UE5编辑器 6.2.1.1 下载编辑器及资源 6.2.1.2 启动示例工程 6.2.1.3 编辑器功能区 6.2.2 新渲染特性 6.2.2.1 Nanite虚拟微多边形 6.2.2.2 Lumen全局动态光照 6.2.2.3 虚拟阴影图 6.2.2.4 时间超分辨率 6.2.2.5 移动端渲染 6.2.3 其它新特性 6.2.3.1 世界分区 6.2.3.2 动画 6.2.3.3 物理 6.…
目录 10.1 本篇概述 10.2 RHI基础 10.2.1 FRenderResource 10.2.2 FRHIResource 10.2.3 FRHICommand 10.2.4 FRHICommandList 10.3 RHIContext, DynamicRHI 10.3.1 IRHICommandContext 10.3.2 IRHICommandContextContainer 10.3.3 FDynamicRHI 10.3.3.1 FD3D11DynamicRHI 10.3.3.…
目录 11.1 本篇概述 11.2 RDG基础 11.2.1 RDG基础类型 11.2.2 RDG资源 11.2.3 RDG Pass 11.2.4 FRDGBuilder 11.3 RDG机制 11.3.1 RDG机制概述 11.3.2 FRDGBuilder::AddPass 11.3.3 FRDGBuilder::Compile 11.3.4 FRDGBuilder::Execute 11.3.5 RDG机制总结 11.4 RDG开发 11.4.1 创建RDG资源 11.4.2 注册外部资…
目录 12.1 本篇概述 12.1.1 移动设备的特点 12.2 UE移动端渲染特性 12.2.1 Feature Level 12.2.2 Deferred Shading 12.2.3 Ground Truth Ambient Occlusion 12.2.4 Dynamic Lighting and Shadow 12.2.5 Pixel Projected Reflection 12.2.6 Mesh Auto-Instancing 12.2.7 Post Processing 12.2…
目录 12.6 移动端渲染优化 12.6.1 渲染管线优化 12.6.1.1 使用新特性 12.6.1.2 管线优化 12.6.1.3 带宽优化 12.6.2 资源优化 12.6.2.1 纹理优化 12.6.2.2 顶点优化 12.6.2.3 网格优化 12.6.3 Shader优化 12.6.3.1 语句优化 12.6.3.2 状态优化 12.6.3.3 汇编级优化 12.6.4 综合优化 12.6.4.1 光影优化 12.6.4.2 后处理优化 12.6.4.3 精灵渲染优化 12.6.4.…
目录 13.1 本篇概述 13.1.1 本篇内容 13.1.2 概念总览 13.1.3 现代图形API特点 13.2 设备上下文 13.2.1 启动流程 13.2.2 Device 13.2.3 Swapchain 13.3 管线资源 13.3.1 Command 13.3.2 Render Pass 13.3.3 Texture, Shader 13.3.4 Shader Binding 13.3.5 Heap, Buffer 13.3.6 Fence, Barrier, Semaphore…
目录 14.1 本篇概述 14.1.1 游戏引擎简介 14.1.2 游戏引擎模块 14.1.3 游戏引擎列表 14.1.3.1 Unreal Engine 14.1.3.2 Unity 14.1.3.3 CryEngine 14.1.3.4 Doom / Quake / ID Tech 14.1.3.5 OGRE 14.1.3.6 Gamebryo 14.1.3.7 BigWorld 14.1.3.8 Torque3D 14.1.3.9 Source Engine 14.1.3.10 Frost…