虚幻4渲染系统结构解析
房燕良 2016年9月
Overview
• 自我介绍
• 3D引擎渲染系统概述
• 虚幻4渲染系统架构
– 游戏线程&渲染线程
– 场景管理与渲染数据管理
– Deferred Shading Scene Renderer
• 虚幻4的VR渲染
– 以Google VR HMD插件为例
3D引擎渲染系统概述
• 渲染系统架构
– 场景管理与渲染器
– 核心问题是管理复杂度和效率
Scene/Level Management
Resource System
(Meshes、Textures)
Render Pipeline
Material System
Graphic API(D3D、OpenGL、Metal、Valukan)
虚幻4渲染系统概述:Modules
• Engine\Source\Runtime
• 核心代码模块
– RenderCore
– Renderer
• RHI抽象层
– RHI:Render Hardware Interface
– 基于D3D 11设计
• RHI实现层
– EmptyRHI
– Windows\D3D11RHI
– Apple\MetalRHI
– OpenGLDrv、VulkanRHI
虚幻4渲染系统概述:渲染线程
• 从虚幻3开始引入了渲染线程—Gemini
• 渲染线程对效率的提升
– 最耗时的系统:渲染、游戏逻辑/脚本、物理模拟
– 没有渲染线程
Render
Render
Game
Frame 1
Game
Frame 2
Render
Game
Frame 3
– 使用渲染线程
Game
Render
Frame 2
Game
Render
Frame 1
Game
Render
Frame 3
虚幻4渲染系统概述:渲染线程
• 主线程领先2帧
– Front Buffer:N,Render Thread:N+1,Game Thread: N+2
– Render Command Fence:防止Game Thread跑太快
• 场景数据管理
– 主线程管理场景数据;渲染线程使用Proxy对象;
– 渲染线程管理一份当前帧的拷贝
Main Thread
Render
Fence
Command
Queue
Rendering Thread
Render Hardware
Interface
Render Thread
Main Thread
虚幻4渲染系统概述:核心类的静态结构
虚幻4渲染系统概述:核心类的静态结构