File tree Expand file tree Collapse file tree 1 file changed +45
-0
lines changed
Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Original file line number Diff line number Diff line change 1+ # UE4(面向PC&主机平台)场景渲染的缺陷和挑战
2+
3+ > 仅讨论** 静态场景** 渲染,不包括地形
4+
5+ ## 当前场景制作挑战
6+
7+ ---
8+
9+ 随着最近几年生产技术的迭代推进,逐渐出现以下的需求和挑战:
10+
11+ * 小范围高密度静态场景
12+ * 较低可复用度场景(大部分物件不可重用,MegaScan素材)
13+ * 过程化生成场景(实例化渲染物件)
14+ * 可破坏场景(主要由刚体构成)
15+
16+ ## UE4原生引擎不足
17+
18+ ---
19+
20+ * MaterialInstance方式对** uber masterial** 的支持力度不够
21+ * ** 数据驱动** 的渲染支持不够(材质描述方式对数据驱动的改造不友好,虽然有PrimitiveCustomData支持)
22+ * StaticMesh数量过多的场景渲染对CPU负担较大,面数复杂度高的StaticMesh对GPU负担大(虽然UE5** 一部分** 解决了该问题)
23+ * HISM针对性的优化力度不够,还需要针对性地管理内存,剔除和渲染:
24+ * 建筑(HISM批次合并不彻底)
25+ * 草(运行时的生成,实例化的渲染还有很大优化空间)
26+ * 树木(树木本身的mesh复杂也是瓶颈),需要增加层次化的表达
27+
28+ ## 国外AAA引擎的设计
29+
30+ ---
31+
32+ * 数据驱动方式的渲染
33+ * ** 全游戏场景物件** 统一的层次化的数据结构CPU&GPU管理和剔除
34+ * 每个场景节点标记了物件类型
35+ * 不同类型的节点可以针对性选择子节点的管理和剔除方式
36+ * 有的引擎对复杂的树木也进行层次化的剔除和渲染
37+ * ** 尽可能** 使用** shader固化** 材质模板,xml描述材质,达成更方便的合批
38+ * 同样实现了CPU(用于遮挡剔除)和** GPU** 的软件光栅化
39+ * 利用更小的compute调度单位(wavefront/warp)实现软件光栅化([ Emulating a fake retro GPU in Vulkan compute] [ 1 ] )
40+ * UE5的混合光栅化方案
41+ * 复杂物件(建筑,扫描场景)层次化表示和运行时剔除(GPU Driven Rendering, Dunia Engine)
42+ * 运行时利用GPU的过程化数据生成(Horizon:Decima Engine)
43+
44+
45+ [ 1 ] :https://themaister.net/blog/2019/10/12/emulating-a-fake-retro-gpu-in-vulkan-compute/
You can’t perform that action at this time.
0 commit comments