
Chinese: 
[九寸钉献唱]
♫ 脑海如洞 黑似汝魂 ♫
♫ 我宁愿死 ♫
♫ 也不愿受你掌控 ♫
♫ 俯首于你主人膝下 ♫
♫ 善有善报 恶有恶报 ♫
>> 马库斯：你找到要找的了吗？
>> 凯特：对 现在我们得杀了它
>> 马卡斯：我要你回忆一下在幻象中
看到了什么 每个细节都不要放过
>> 广播：发现多个入侵者 旧艾菲拉遗迹
>> 巴德：室外监控16！
室外监控15！监控10！

English: 
[Nine Inch Nails sings]
♫ Head like a hole
Black as your soul ♫
♫ I'd rather die ♫
♫ Than give you control ♫
♫ Bow down before the one
you serve ♫
♫ You're going to get
what you deserve ♫
>>Marcus: You find
what you're looking for?
>>Kait: Yeah, and now
we need to kill it.
>>Marcus: I need you to
think about what you saw
in that vision, every detail.
>>Radio Voice: Multiple security
breaches: Old Apera Ruins.
>>Baird: External camera 16!
External camera 15! Camera 10!

English: 
Oh, damn it!
>>Kait: They're here.
[Nine Inch Nails sings]
♫ Bow down before the one
you serve ♫
♫ You're going to get
what you deserve ♫
>>Del: Ah! You remember me?
Now's the fun part, bitch!
[Nine Inch Nails sings]
♫ Head like a hole
Black as your soul ♫
♫ I'd rather die ♫
♫ Than give you control ♫
♫ Head like a hole ♫
>>JD: Get this fucking thing
off me!
♫ I'd rather die
than give you control ♫
♫ Head like a hole
Black as your soul ♫
♫ I'd rather die ♫
♫ Than give you control
Head like a hole ♫
♫ Black as your soul ♫
♫ I'd rather die ♫
♫ Than give you control ♫

Chinese: 
哦 该死的！
>> 凯特：它们来了
[九寸钉献唱]
♫ 俯首于你主人膝下 ♫
♫ 善有善报 恶有恶报 ♫
>> 德尔：啊！你还记得我吗？
现在轮到你了 混蛋！
[九寸钉献唱]
♫ 脑海如洞 黑似汝魂 ♫
♫ 我宁愿死 ♫
♫ 也不愿受你掌控 ♫
♫ 脑海似洞 ♫
>> JD：把这该死的东西从我身上拿开！
♫ 我宁愿死也不愿受你掌控 ♫
♫ 脑海如洞 黑似汝魂 ♫
♫ 我宁愿死 ♫
♫ 也不愿受你掌控 脑海似洞 ♫
♫ 黑似汝魂 ♫
♫ 我宁愿死 ♫
♫ 也不愿受你掌控 ♫

English: 
[APPLAUSE]
>>Colin: Sweet.
Still so good to watch that.
It's awesome. Thanks, guys.
So I'm Colin Penty.
I'm a Technical Art Director
at The Coalition,
and I'm here to talk about
the visual tech of Gears 5,
improving visuals
while achieving 60 fps.
So these are some of the things
I'm going to be talking about.
We'll just quickly
talk about the --
so the Maya/Houdini
offline workflows and then,
going into the visual tech,
mostly Unreal Engine 4 here,
and then, finally,
60-fps performance.
Little bit about me:
I've been doing
technical-art-type things for
about 18 years up in Vancouver,
so tours of duty at Radical,
EA SPORTS, EA Black Box,
and then, finally,
I've been working on
Gears of War at The Coalition
for about 5 years.
Little bit about Gears 5:
Goal: Challenge assumptions,
visuals, and gameplay.

Chinese: 
[掌声]
>> Colin：酷 还是那么精彩
非常棒 谢谢大家 我是Colin Penty
The Coalition的技术美术主管
我今天要讲的是《战争机器5》的视觉技巧
如何改善视觉效果 同时保证60FPS的帧率
这些是我要介绍的一些内容
首先会简单介绍下
Maya和Houdini的离线工作流程
然后讨论一些视觉技巧 主要和虚幻引擎4有关
最后是如何保证60帧每秒的流畅度
简单介绍下我自己 我在温哥华
从事了18年的技术美术工作
先后在Radical、EA SPORTS、
EA Black Box工作过
然后在The Coalition工作了5年左右
一直在开发《战争机器》
简单介绍下《战争机器5》
目标：在视觉效果和游戏玩法方面挑战惯性思维

Chinese: 
Metacritic打出了85分 我们对此很高兴
首周就吸引了300万玩家
是《战争机器4》的两倍
以下是媒体的一些评论：
“《战争机器5》
是有史以来最具视觉冲击力的游戏之一”
“Xbox One史上视觉效果最好的游戏之一”
这是来自Digital Foundry的评价
有兴趣的话大家可以了解下
Digital Foundry的评析
然后是“《战争机器5》在Xbox One或PS4上
拥有无以伦比的效果”
有点让人受宠若惊 但确实很优秀
所以我加了这句 接着是《战争机器5》的技术基础：
我们用的是改良后的4.11版本
不管你信不信 我们沿用了《战争机器4》的引擎版本
在我们刚开始开发《战争机器5》时
我们评估了当时已经推出的4.15或4.16版本
然后发现将整个游戏迁移到新版本
会花费大量的精力
于是我们决定进行局部整合
我们以4.11作为基础

English: 
We're at a 85 Metacritic,
pretty happy with that.
Three million unique players
in the first week.
That's twice that of Gears 4,
and some complimentary quotes
for the game:
"Gears 5
is one of the most visually
stunning games ever crafted,"
"One of the best-looking
games on Xbox One,"
from Digital Foundry.
Check out the Digital Foundry
analysis if you haven't.
And then "Gears 5 is beautiful
in a way nothing else
on Xbox One
or PS4 can match,"
which is slightly embarrassing
quote, but that's cool.
I'll include it in.
So Gears 5 tech foundation:
We used a modified version
of 4.11,
believe it or not, that we
carried over from Gears 4.
At the time when we
were starting Gears 5,
we looked at 4.15 or 4.16,
which was out at the time,
and we just realized
it would just be so much work
to bring the entire game
to that version
that we decided to instead
do spot integrates.
So we used 4.11 as a base,

English: 
and then we spot-integrated
4.19 rendering engine into 4.11,
and then we started doing
other spot integrates:
4.20, 4.21,
just little bits and pieces.
These are some of the systems
that we brought over,
the visual systems,
and then some of
the tech challenges
identified early
for Gears 5
was the
60-frames-per-second Campaign
on Xbox
One X, Escape Mode,
which was dynamically
assembled tiles
so came with a map builder,
three-player split screen.
All of our cinematics
went real-time for Gears 5.
Gears 4, some were prerendered
or most were prerendered
in Gears 4,
and then we had these
two large Overworld spaces.
Frame rate and resolution:
nothing too surprising here,
but just wanted to point out
that we are always opening
at native resolution.
We use simple upscaling,
of course, to do that.
We had a 30-frames-per-second
Campaign on Xbox One
but then 60 on Xbox One X,
and then all other modes
were 60 on both consoles
except for split screen.
So quickly running into
some of the Maya tools here:

Chinese: 
然后把4.19的渲染引擎单独整合到了4.11中
后来又局部整合了其它几个版本：
4.20、4.21 每次都是一小块内容
这些是我们整合的一些内容
视觉系统
然后是我们早期为《战争机器5》
定下的一些技术指标
战役模式在Xbox One X上
必须达到60FPS 撤离模式
采用动态网格组成
需要一个地图构成器 三玩家分屏功能
《战争机器5》的所有过场动画都是实时演算的
《战争机器4》的某些过场动画
或者说大部分过场动画都是预先渲染的
以及两张大型主世界地图
帧率和分辨率：没有什么特别的
但有一点我要说明
我们能始终以玩家的原始分辨率打开游戏
当然 我们采用了“临时上采样”来实现这一点
剧情模式在Xbox One上可以达到30FPS
但在Xbox One X上可以达到60FPS
除了分屏模式 所有其余模式在两台主机上
都能达到60FPS
简单介绍一些Maya工具

English: 
We created this tool
called the Budgeting Tool
we run in Maya on all
of our environment Assets.
It would basically parse each
Asset based on three heuristics.
Look at the Asset's volume,
surface area, and curvature,
and assign what the vert budget
should be based on those things,
and we had to account
for things like radiators,
which have really
dense surface area,
and railings, which have not
a lot of surface area
but are large volume.
And then, also,
through this calculation,
we would determine what
the resolution of the Textures
should be on that object
and basically recommend
to the artist.
Again, these tools
are really important for us
because we're farming out these
Assets to outsource studios
and to dozens
of other facilities
that basically create
these Assets for us.
Characters and weapons
were more predefined,
and I'll talk about
that more in a second.
So some triangle budgets:
We upped our triangle budgets
on Gears 5.
We did a lot of things that you
wouldn't expect us to be doing
if we're trying to hit 60.
We kind of worked
against ourselves

Chinese: 
我们开发了一个“预算工具”
我们把所有场景资源导进了Maya
它基本上会基于三种启发法来解析每个资源
查看资源的体积、表面积和曲率
然后根据信息分配顶点的预算
我们必须考虑散热器这类资源
它们的表面积非常大
还有栏杆 它们的表面积不大
但是体积很大
然后 通过这个计算
我们确定对象应该采用多大的
纹理分辨率
然后把建议告诉给美术师
这些工具对我们来说很重要
因为我们会把这些资源外包给工作室
或者大量的其它机构
他们会协助我们创造资源
角色和武器的“预算”则是预先设定好的
等下我会详细讲这个
三角形预算：
我们在《战争机器5》中上调了三角形预算
我们做了很多不利于我们
达到60FPS的工作
感觉有点像是在和自己作对

English: 
on some of these things,
but it worked out.
So for the hero Characters,
we almost doubled
the triangle budgets
on our hero Characters for
gameplay and for cinematics.
So a cinematic Character could
get up to 100,000 triangles,
and then something like
a hero weapon, like a Lancer,
it'd be about 15,000 triangles.
These are all Unreal triangles.
Another Maya tool:
Cloud Atlas.
This is for Asset organization,
FBX file format,
yeah,
all for environments in Maya,
and it basically was emulating
the UE4 Content Browser in Maya
as much as we could.
And then we had Atlas Tool,
not to be confused
with Cloud Atlas.
Atlas was our Character,
weapons, animations,
cinematic, and vehicles'
Asset-organization tool in Maya,
and this was all MA file format,
and all these tools
are basically ensuring
that the normals
are set correctly,
export settings
are set correctly,
Textures aren't missing,
and this tool would also
enforce budgets
for our Characters
and weapons,

Chinese: 
但是最后都成功了
就实际游戏
和过场动画中的主要角色而言
我们的三角形预算几乎翻了一番
过场动画中的角色最多可以拥有10万个三角形
主角的武器 例如游骑兵突击步枪
大概有1万5千个三角形
全部都是指虚幻引擎中的三角形
另一个玛雅工具：“Clous Atlas”
它用于管理资源 主要使用FBX格式
用于Maya中的所有场景资源
基本上就是在Maya中尽可能重现UE4的
内容浏览器功能 然后是“Atlas”工具
不要和“Cloud Atlas”搞混了
“Atlas”是用于在Maya中
管理角色、武器、动画
过场动画、车辆等资源的工具
全部都是MA文件格式
所有这些工具基本上都是用于保证
法线设置正确
导出设置正确
纹理没有丢失
这个工具还能强制检查
角色和武器的三角形预算

English: 
so if a Character
was over the predefined budget,
it would not let you export it.
Other tools off-line: Houdini.
We had a Houdini
Engine-based Destruction
Tool that we ran in Maya.
This was wired
into what we called
our Swift Destruction System,
which I'll talk about shortly,
but it would basically assume
you're building a cover object,
and it would fracture
it around a core piece
and then maintain a core,
and a lot of this information
was stored in UVs,
and then that would be
exported out through Maya,
and the UV information would be
piped into Swift Destruction,
and we could use that
to determine
how this object might fracture.
Of course, we also had
Alembic Cache Destruction.
This was a custom
cache-destruction workflow
that we brought over
from Gears 4.
It's just custom only because
we implemented it on Gears 4
before
Epic had done it in UE4.
Otherwise, it's basically
similar functionality
to what's in UE4 today.
8 bytes per key
frame per object.
It's compressed transforms
that we skin per frame,

Chinese: 
所以角色超出了预先设定的预算
它就会禁止你导出角色
其他离线工具：Houdini
我们有一个基于Houdini引擎的破坏工具
可以在Maya中运行
它会和我们的 “快速破坏系统”挂钩
稍后我会讲到这个系统
它会假设你在构建一个覆盖物体
它会围绕在一个核心部分形成破裂效果
只保留核心部分
UV贴图中会保存很多这样的信息
然后通过Maya导出
UV信息会被导入“快速破坏系统”
然后我们用这些信息来确定
对象如何产生破裂效果
当然 我们也用到了“Alembic缓存破坏系统”
这是我们在《战争机器4》中自定义的
缓存破坏系统工作流
之所以是自定义的
完全是因为我们在《战争机器4》中
实现它时 Epic还没有在UE4中实现它
它基本上和它今天在UE4中的效果
大同小异
每个对象的每个关键帧都是8字节
这是压缩后的变换信息
我们用它给每一帧蒙皮

English: 
and, yeah, just watch the memory
usage when you use these things.
So here's some examples
of some of the bigger
Alembic Cache Destruction
simulations we had.
A lot of these are in the first
level of the game facility.
So you can see here,
just really dense Geo
that we have to really run this
all at 60 frames per second
and make sure --
It really helps with
the particle effects
layering into this
to really help
just the feeling
of destruction,
and, of course, audio would help
if there was audio.
So, yes, cool
Alembic Destruction stuff.
So Volume Fog:
This is a really cool tool that
Epic created
a few versions ago
that we immediately innovated
into our version of the Engine.
We did a few things.
Early on in Gears 5,
we immediately
brought the fog values
that there's an Exponential
Height Fog node.
We brought those all into our
PostProcessVolumes right away
because we found we had so many
replication issues on Gears 4

Chinese: 
使用这个功能时 请留意内存的使用情况
这里有一些示例 展示了大范围的
Alembic缓存破坏效果
这大部分都出现在游戏的第一章场景中
你可以看到 几何体非常密集
我们必须确保
始终达到60FPS
粒子效果的加入
非常有用
这对于营造破坏效果很有帮助
当然 如果有声音的话就更好了
以上就是“Alembic破坏系统”的内容
体积雾：这是一个非常炫酷的工具
Epic在几个版本前就创建了这个工具
我们马上就把它整合到了我们的引擎中
我们做了几件事 在《战争机器5》的早期阶段
我们就导入了雾的数值
其中有一个“指数高度雾”节点
我们立马就把这些应用到了后期处理体积中
因为我们在《战争机器4》中遇到了很多复制问题

Chinese: 
美术师需要逐个房间调整雾效
如果你使用分屏模式
使用合作模式
雾这类效果会难以同步
这样你就有可能挂了重来
所以我们马上在《战争机器5》的早期阶段
把雾效应用到了后期处理体积中
然后当我们引入体积雾系统时
我们还将体积雾应用到了
后期处理设置上 以便解决复制问题
同时让我们能够逐个房间调整
体积雾的质量设置
以便获得想要的效果
我们把网格像素尺寸的默认值
确定为16  然后在后期处理体积中
根据需要调整它
我们创建了一个很酷的工具
我觉得很酷 那就是体积雾绘制工具
这是一个基于蓝图的
体积雾绘制系统
它可以帮助我们避免大量与体积雾
有关的创建成本
我们在创建一条有很多路灯的昏暗街道时
我们让所有聚光源都射向体积雾
这对性能开销来说简直是场灾难

English: 
where artists would
change the fog per room,
and you'd start playing it
in split screen
and play it in co-op,
and things like fog
would get desynced,
or you would die
and respawn,
so we immediately
brought all the fog
into the PostProcessVolumes
on Gears 5 early on,
and then when we brought
in the Volume
Fog system,
we also brought the Volume
Fog into the PostProcess
settings for replication issues,
also to allow us
to change the Volume
Fog quality settings per room
to kind of really help us
achieve the visual results
we wanted to do.
We did settle
on a Grid Pixel
Size of 16 as the default
and then sort of tuned
that in the PostProcessVolumes
as we needed to.
A really cool thing
that we created,
I think it was cool,
was the Volume Fog Painting
Tool. So this is
a Blueprint-based Volume
Fog painting system.
This allowed us to side-step
a lot of the injection costs
that came with the Volume
Fog.
So we found as we would create
a dark street with streetlights
and have all the spotlights
injecting Volume
Fog, it was just kind of
killing us on performance

Chinese: 
每增加一个体积都会让GPU的绘制时间
增加0.1毫秒
每个光源的成本都是0.1毫秒 我们觉得：
“喔 这开销太大了”
于是我们的一位技术视觉特效美术师
想到了一个好主意
如果我们在整个关卡周围放置一个立方体
然后让这些蓝图Actor
写入到这个立方体上
从上到下写入一张高度图
我们就可以在空间中确定它们的位置
然后通过聚集它们来显示
体积雾 然后最终
这能够让我们为体积雾中的不同图元
分配不同的图元
如果Epic能在未来将这个系统
作为首选系统就好了
这样你就可以在场景周围
放置体积雾图元 让它生成雾
然后我们就可以开始使用体积雾着色器
老实说 这很大程度上
是受Ryan Brucks博文的启发
然后我们开始使用体积雾着色器
这个是街头路灯的示例

English: 
on the GPU
where it'd be like 0.1
milliseconds, 0.1,
0.1, 0.1,
0.1 for each injection cost,
and we were like,
"Ah, this is getting expensive."
So one of our technical
VFX artists
had a great idea where,
what if we just put a cube
around the entire level
and then have these
Blueprint Actors that,
write out to that cube,
write out a heightmap
from the top and bottom,
and we can
locate them in space,
and that would basically
be amassed to reveal
Volume Fog,
and then eventually it
allowed us to assign
different shaders
to different primitives
in the Volume Fog.
It would be cool
if Epic added this
as a first-class system
in the future,
so you could just have
a Volume Fog primitive
that you sort of place around,
and it generates fog.
And then we started playing
around with Volume Fog shaders.
A lot of this,
to be honest,
was inspired by Ryan Brucks'
awesome blog,
and so we started putting
some Volume Fog shaders on --
This is like
the streetlight example.

English: 
And we kind of went through a
path here that was interesting,
where we initially were like,
"Oh, Volume Fog is so cool.
We're going to have really
high-frequency,
detailed noise
in all of our fogs in the game,
and this is just
going to look cool,"
and that's what this video
on the right is showing.
We found that we
just couldn't afford
the grid pixel size values
required to do this,
ultimately, to ship.
So what we did was bit more
what's on the left there,
where we'd have a Volume Fog
with a low-frequency Volume
Fog shader on it,
and then we'd complement that
with billboarded quads
inside of it that are added
and blended to kind of
give you that textural look.
So it ends up
looking very similar
to the high-frequency noise,
but I just wanted to share this
because it was kind of
a big turbulent thing
for us to go through that path
and come back around
and realize we had to do it
this way and that way,
and there was
a lot of rebalancing
to figure this all out.
And this is kind of
one of the examples
of our Volume Fog shader.
So what we would do is,
one thing I didn't
mention before is,
we'd have this cube
around the map.

Chinese: 
这一过程十分有趣
我们一开始觉得：“喔 体积雾好酷
游戏中的所有雾都会有
十分高频率的细节噪点
这会看起来很酷”
这就是右边这段视频的效果
但我们最终发现
我们无法达到发售游戏所需的
网格像素大小
所以我们的效果更像是左边这样
我们的体积雾确实用到了低频率的
体积雾着色器 然后我们在其中
补充并混合了公告板四边形
营造出你看到的那种质感
所以它最后看起来非常类似于
高频噪点效果 我分享这点是因为
这是我们在开发道路上遇到的
很大一个瓶颈 我们最后发现
必须换一种方法
为了解决这个问题
我们权衡了许多方面
这是体积雾着色器的
其中一个示例 我们所做的
并且我刚才没有提到的是
我们在地图中会放置立方体

English: 
So all of this is being
rendered into a cube,
but we'd also generate
a heightmap for each map,
and so the heightmap
was also piped into the cube.
So this is basically
a heightmap of the ground
piped into this cube.
We run some Perlin Noise
through it, and we could do
some really cool effects.
So when one of our effects
artists did this, we were like,
"Okay, we're onto something.
This will be awesome."
So lighting for Gears 5:
We really wanted to do
a more dynamic lighting solution
than Gears 4.
I don't have to
sell it to you guys,
but obviously,
this usually looks better,
consumes less Texture memory.
It's more flexible.
We knew we had
these large Overworlds,
and cooking shadows
for these huge Overworlds
is probably not realistic.
So we did a few things.
We removed stationary lights
from the game,
and this in turn removes
shadow maps
because stationary lights
produce shadow maps.
So we had no shadow maps
in Gears 5.
And then so we replaced --
On something like a directional
light on Gears 4
where we would have
all these shadow maps

Chinese: 
所有这些都被渲染到一个立方体中
但我们也会为每张地图生成一张高度图
高度图也会被导入到立方体中
所以基本上就是把地面的高度图
导入这个立方体 我们通过它制造了一些
柏林噪点 实现了一些非常酷的效果
当我们的某位特效师做出这个效果后 我们都觉得
“没错 就是这种效果 太棒了”
《战争机器5》的光照：
我们十分希望光照解决方案比《战争机器4》
更加动态
你们不一定非要参照我们的方法
但显然 这个效果更好
占用的纹理内存更少 而且更灵活
我们知道游戏中有一些巨大的域外世界
为这些巨型域外世界烘焙阴影
并不现实 所以我们做了几件事情
我们从游戏中移除了固定光源
这样就能移除阴影贴图
因为固定光源会产生阴影贴图
所以《战争机器5》中没有阴影贴图
然后我们替换了
比如《战争机器4》中的定向光源
《战争机器4》中的定向光源

Chinese: 
会在各处生成阴影贴图
在《战争机器5》中我们使用级联贴图
超过级联贴图范围后 我们就会使用
光线追踪距离场阴影 这种方法的灵感实际上
源于Epic关于《堡垒之夜》的演讲
所以基本上 整个游戏只用到了静态光源
和可移动光源
然后我们有一个固定天空光源
用于实时生成天空光源效果
但它不会产生阴影贴图 所以没关系
我们做的最后一件事是
为动态光源增加了类似于固定光源的
全局光照功能
所以动态光源在生成
实时阴影的同时 仍能输出全局光照
从而产生光照贴图
所以这一切都是为了去除阴影贴图
我们需要去除它们
采用更多的实时阴影 同时烘焙全局光照
我们在光照和性能开销上不可避免地
需要进行权衡
我们知道我们必须将纹理池的大小
降低几百兆 以便为HLOD和其他系统
腾出空间

English: 
everywhere on Gears 4
from a directional light,
and Gears 5,
we just had cascades,
and then we'd fall back
to ray-traced distance field
Shadows beyond the cascades,
and this was inspired, actually,
by some talks that Epic
gave about Fortnite.
So basically, the whole game
is static lights
and movable lights,
and then we had
a stationary Skylight
for the real-time Skylight,
but that doesn't produce
shadow maps, so that's okay.
And the final thing we did is,
we added the ability
for movable lights to output
GI similar
to a stationary light,
so this gave us sort of
the real-time shadows
inside a movable light
still outputting GI,
which produces lightmaps,
so it was all with the goal
of removing shadow maps.
We need to get rid
of these things.
Let's go more real-time shadows
but bake out the GI.
So there's definitely a
lighting-performance equilibrium
that has to happen.
We knew that we had
to shrink our Texture pool
by a few hundred Mb
to make room for HLODs
and other systems.

Chinese: 
在《战争机器4》中 最多时
光照贴图和阴影贴图大约有400兆的数据
这已经非常高了
我查看了这些数据
我在想：“为什么这么高？”
这通常是因为某个美术师制作了一张
分辨率很高的阴影贴图
所以我们决定：“好吧 不应该这样”
因为阴影烘焙出来不应该是这样的
在《战争机器5》中 我们决定
纹理池的光照贴图数据不应该超过50兆
有一点起到了很大帮助 那就是将最近
某个引擎版本的可缓存移动光源整合进来
我不记得是哪个版本了
在座的可能有人知道
引擎提供了缓存可移动光源位置的能力
这对我们优化性能真的很有帮助
我们测量了多个角色在不同聚光源下的
流畅程度
对比了可移动聚光源和固定聚光源
可移动光源的效果更加流畅
而且总体上看起来更好
最重要的是 去除固定光源
还能减少着色器的变换且

English: 
So on Gears 4,
at peak points,
lightmaps and shadow maps
would be about 400 Mb of data,
and that was just
getting really high,
and I went back
and looked at it,
and I was like,
"Why was it so high?"
and it usually was because
an artist was trying to get
a really crisp shadow
on something.
So we're like, "Okay, that's not
going to happen anymore,"
because our shadows
aren't baked like that.
So on Gears 5,
we average, I say,
about 50 Mb of lightmap data
in the pool at any given time.
One thing that really helped
was integrating the cache-able,
movable lights from one of the
more recent versions of Unreal.
I don't remember which one.
Someone in this room
probably does,
but there was an ability
to cache the position
of a movable light that really
helped us for performance.
So when we started measuring
that performance
of a few Characters
in a spotlight,
in a movable spotlight
versus a stationary spotlight,
it was a lot faster
to go with the movable,
and it generally looked better.
And then on top of that,
removing the stationary lights
also reduced shader permutations
and removed

English: 
a G-buffer that we didn't
have to worry about anymore,
so our base pass
started getting faster,
so this was overall a nice win.
Distance Field
Ray Traced Shadows:
so all directional lights
in Gears 5
output these even in multiplayer
on Xbox One.
This really worked out
really well for us
at the end of the day
because we ended up
leaning into HLODs.
As you guys heard about earlier,
HLODs are pretty key
to achieving performance.
We leaned into HLODs a lot,
and it was really helpful
to have real-time shadows
everywhere
instead of baked shadows.
Baking out shadows with HLODs
is not usually a great idea,
and so this ended up
being a pretty big win.
And then one thing
that was interesting, I found,
was the balancing act of GPU
versus draw thread performance
because basically, as you push
out the shadow cascades further,
you're incurring more of a draw
thread performance impact
because there's more objects
getting a cascade,
but your ray trace
cost goes down on the GPU
because the ray traced shadows
are pushed further back.

Chinese: 
移除无需我们关心的G缓冲区
所以我们的基础通道变快了
总的来说 我们取得了不错的效果
距离场光线跟踪阴影：
《战争机器5》中的所有定向光源
都用到了它
甚至在Xbox One的多人模式中也是如此
最后证明这对我们来说
真的很有帮助
因为我们最后使用了很多HLOD
你们之前可能听说过
HLOD对于优化性能很重要
我们很喜欢HLOD
它有助于我们到处使用实时阴影
而不是烘焙阴影
在开启HLOD时烘焙阴影通常不是一个好主意
所以这是一个很大的进步
然后我发现很有意思的一点
那就是GPU和绘制线程性能的平衡
因为基本上 阴影级联越远
线程绘制的负担越重
因为有更多的对象会获得级联贴图
但是光线追踪在GPU上的成本降低了
因为光线追踪的阴影更远了

Chinese: 
所以我们一直在努力平衡
哪里结束级联贴图
然后哪里开始光线追踪阴影
当然 我们还要优化有向距离场
网格体分辨率 避免占用过多磁盘空间
或产生过多内存影响 “Swift粒子”：
这是我们用材质编辑器为《战争机器5》
创建的粒子系统 我们的想法是
尽快移除粒子对CPU产生的负担
这些效果会让CPU不堪重负
所以我们会尽可能让GPU完成这些任务
我们最终得出的结论是 这些粒子最适合
一些场景中持续出现的特效
不适合一些命中特效
这些特效通常有一个生命周期
这类特效更适合那种常见的
需要生成的特效
我们还在级联中创建了一个GPU生成通道
灵感来自于Rare的成果

English: 
So we were always trying
to get that balancing act
of where should the cascade end
and then the ray traced shadows
begin.
And we also had to, of course,
optimize signed distance field
mesh resolution to not incur
too much of a disk space
or memory impact.
Swift Particles:
So this was a particle system
that we created for Gears 5
using the Material Editor,
and basically the idea was,
get particle costs off the CPU
as quick as possible.
These things are just really
hurting us on the CPU,
so anything we can do
on the GPU is great.
We eventually kind of concluded
these particles are best
for things like
environmental persistent effects
and are not as good for things
like impact effect,
something that has timing
associated with it.
Something that's more
just a constant spawn
is best for these
sort of effects.
And we also created a GPU spawn
pass in Cascade
inspired by what Rare had done,
actually,

Chinese: 
所以我们也提供了这种效果 例如命中类特效
我们会确保让GPU粒子在GPU上生成
然后场景中的特效
例如你在视频中看到的
则会用“Swift粒子”生成
尽可能避免使用CPU
尽可能达到每秒60帧的速度
本世代主机的GPU都很强大
但是CPU则相对一般
所以这就是背后的逻辑
最后一点是 “Swift粒子”是在材质遮罩系统的
基础上研发出来的 我稍后会讲到
你可以看到 这里有一张UI界面的图片
美术师可以用材质编辑器
新建“Swift粒子”模块
像这样把它输入到材质中
引擎会显示并构建一个材质
很多人都对Niagara很感兴趣
希望能多多用到它
但在当时 我们别无他法
这是早期录制的一段视频
是早期的毒液效果
在游戏的“撤离”模式中
过了一段时间后
会引爆一个毒液炸弹
这是一个多人合作模式
这个毒液炸弹

English: 
so we also had this option, too.
So something like impact effect,
we would make sure to have
a GPU particle for GPU spawn,
and then something like
an environmental effect
like you see in the video
would be more
of a Swift Particle,
and so getting as much off
the CPU as possible,
really trying to hit
60 frames per second,
the current-gen consoles
have great GPUs,
but the CPUs aren't as powerful,
and that's sort of the logic
behind that.
And one last thing is,
the Swift Particles were built
on the Material Masking System
that I'll talk about shortly.
You can see there's a picture
of the UI there where any artist
could create
a new Swift Particle
module
using the Material Editor
and input it into the Material
like that,
and it would just graph,
build out a Material for you.
Obviously, a lot were very
interested in Niagara
and looking at
that moving forward,
but at the time,
it's just sort of what we had.
Yeah, and this is an early
prototype video we did
when we had to do
the venom effect.
So in Escape Mode in our game,
after a certain amount
of time has passed,
there's a venom bomb
that's detonated.
This is a multiplayer
cooperative mode,
and this venom bomb

English: 
will basically
traverse through the level
and kill you if you don't get
out of the venom,
so we knew we had to,
on Xbox One,
in Escape Mode,
at 60 frames per second,
have thousands
of these particles on screen
and this feeling of a creeping
fog going through the level.
So this is a large collaboration
between engineering and tech art
and VFX to basically do this.
So we had
basically Swift Particles
doing all the motes here,
and then we have
Volume Fog system here, as well,
that we're animating
the volume fog
through the level
to fill it out,
and then, finally, we're tinting
a lot of our Swift Particles
with the frame buffer to kind of
make them look integrated.
You can see, as the particles
pass in front of lights,
they're lighting up.
That's because
they're being tinted
by the frame buffer there.
So this is all
just early prototype,
it ended up kind of
looking a bit better than this,
but just wanted to show you
the prototype video.
So taking that further,
Swift Destruction: We were like,
"Okay, cool,
we made a particle system
using Material Editor.
Could we build
a destruction system

Chinese: 
会逐渐覆盖整个关卡
如果你没有及时撤离 就会杀了你
在Xbox One上我们知道我们必须
确保撤离模式达到每秒60帧
屏幕上会有成千上百个这样的粒子
会有一种雾气弥漫的感觉
所以这需要编程人员、技术美术师
以及特效师进行通力合作
所以我们基本上让“Swift粒子”
实现这里的所有烟雾效果
此外还有体积雾系统
我们为体积雾添加了动画
在关卡中填充它
最后 我们用帧缓冲给很多Swift粒子着色
让它们看起来更完整
你可以看到 当粒子在光线前通过时
它们会被照亮
因为它们在那里
被帧缓冲着色了
这只是早期原型的效果
最终效果要比这个更好看
我只是想给大家看一下原型视频
接着是“Swift破坏”系统 我们觉得：
“好吧 我们用材质编辑器
做了一个粒子系统
有办法用材质编辑器再创建

Chinese: 
一个破坏系统吗？” 所以是的
我们创建了一个基于顶点偏移的破坏系统
这和我之前提到的Houdini引擎的
破坏工具有关
你在可以被破坏的对象周围
放置一个体积 这个体积会在周围生成
一张高分辨率贴图
所有GPU粒子都会和这张高度图
发生碰撞
我们有四个破裂点
一个对象最多有四个破裂点
只要破裂点的GPU开销没有变得
难以承受 所有这些
包括破裂点和所有效果都在Maya中
通过Houdini引擎工具被烘焙进UV信息
然后再导出到虚幻引擎中
这让我们得以实现一些非常炫的破坏效果
这里有一些游戏中的破坏效果示例
全都是基于顶点偏移的破坏
我们的材质遮罩系统：简单介绍一下
我们在SIGGRAPH 2017上
和Ian Wong对此作了介绍
它允许我们使用类似于
Substance Painter的图层

English: 
using the Material Editor?"
So, yeah,
we built a vertex-offset-based
destruction system.
This was tied into
our Houdini Engine Destruction
Tool
that I talked about earlier,
and so you would put
a volume around the object
that was going to fracture,
and that volume would generate
a high-res heightmap
around the area,
so all the GPU particles would
basically go down and collide
with this heightmap.
We could have
four fracture points,
up to four fracture points,
on an object before the GPU
overhead of the fracture points
kind of became prohibitive,
but all this was baked out,
the fracture points
and everything, again,
into that UV information using
the Houdini Engine Tool on Maya
and then exported to Unreal.
So this allowed us to do
some pretty cool destruction.
Here's some examples in-game of
some of the destructible cover,
so that's all vertex-offset
destruction.
Our Material Masking System:
just briefly touch on this.
We presented this at SIGGRAPH
2017, myself and Ian Wong.
So this basically allows us
to build Materials

Chinese: 
构建材质
只不过在虚幻引擎内就能完成
我们习惯尽可能用虚幻引擎
完成所有工作
基本上就是 你创建图层 点击保存
它会决定哪些图层是动态的
哪些图层需要烘焙
它会在后台为你烘焙
所有需要烘焙的图层
所有图层都有混合模式 诸如此类
它和目前虚幻4中的图层系统
很相似
只不过有一个烘焙步骤
我们在《战争机器5》中添加了很多内容
比如美术师的可视化工具等等
以帮助美术师确定哪部分开销很大
哪部分开销较小
因为有时候要了解这点可能很困难
所以它很实用
最后一件事 我很高兴
我们能够创建一个统一的材质库
在《战争机器4》中 仅仅是铜材质
外包公司就创建了50种版本 但在《战争机器5》
虚幻4中我们只有一个铜材质
然后用它派生出所有其它材质
它们全都使用同一个基类铜材质

English: 
using layers similar
to Substance Painter
but just inside Unreal.
We like to kind of
bring everything as much into
Unreal as possible.
Basically, you would create
these layers, hit save,
and it would determine
which layers would be live
and which layers
could be cooked,
and it would bake out Textures
for you behind the scenes
for whatever could be baked out.
So each layer had blend modes,
things like that.
So, yeah, it's similar
to the layering system
that's in Unreal 4 now,
just that it has
a bake-out cook step.
So we added a lot of things
like artist visualization tools
and things like that
in Gears 5
to help the artist determine
what was expensive
and what wasn't
because sometimes it could be
a little bit tricky to know,
but, yeah,
this was a great thing.
And one final thing is,
I'm really happy
with how we moved
to a unified Material library.
So in Gears 4, there was
50 versions of copper created
by all the outsource vendors,
but on Gears 5,
we had one copper
and one Material in Unreal 4,
and then we would just propagate
that to all of our Materials,
and they would all use
that base copper.

Chinese: 
有趣的是 我们这样做之后
我们发现外包公司创建资源的时间
一开始上升了10%
但是有了共享材质库后
迭代时间大幅度下降了
所以我们决定继续这样做
雪与沙：如果你玩过《战争机器5》
游戏中有大量的积雪和沙尘
为它们建模和添加材质十分棘手
这些都是非常复杂的材质
而且它们必须很好地适应变形系统
让沙子和积雪变形会显示底部的材质层
并且会在变形的边缘
出现“异常”的材质效果
当然 还有闪烁函数
调整了积雪和沙尘的菲涅尔值
我们还可以在任何对象上动态绘制
在它的上面添加沙子和积雪效果
我们还增加了将游戏中所有沙子和积雪
清空的功能 这样测试员
就能查看哪些植被是漂浮的
然后我们会重新添加沙子和积雪
重新检查一下
因为出现漂浮对象的位置
如果你以一种意想不到的方式行走
沙子和积雪的变形效果

English: 
So interesting fact is,
we did that.
We found that our outsource time
to create Assets
initially went up
by about 10 percent,
but iteration time went way down
so much less iterations with
the shared Material library,
so we're going to continue
doing that moving forward.
Snow and sand:
If you've played Gears 5,
there's a ton of snow
and a ton of sand,
which are trickier things
to model and put Materials on.
So these were pretty complex
Materials,
and they had to work well
for deformation system.
Deforming the sand and snow
would reveal a Material layer
underneath as well
as have a perturbed Material
along the edge
of the deformation,
and there was also,
of course, glitter functions
and tuned Fresnel values
for the snow and the sand,
and we could also dynamically
paint on top of any object,
put sand or snow on top of it,
and we also added this ability
to flood flatten all the sand
and snow down
for the entire game so QA
could look around
for floating plants,
and then we could just
bring it back up again
just to kind of take a look
because there would be
bugs generated
where you would have
floating objects
that somewhat deform something
in a way

Chinese: 
容易出现错误
所以很多时候我们必须非常小心
当然 我们在地面上
使用了异步曲面细分
以便让细节更丰富
现在我详细说明一下
最初当我们在《战争机器5》中尝试实现变形效果时
我们试着以粒子为基础
我们把粒子生成进缓冲区
基本上用这种方法来推动沙子和积雪
但是使用这些粒子变得
非常昂贵
哪怕你只是在地面中行走了两分钟
而我们的目标是60FPS 因此我们觉得
这行不通 于是就放弃了
我们采用了另一种系统
它本质上是一个新系统
可以保存大量的路面踪迹数据
全都保存在纹理图集中
并且使用了间接图层以提升效率
想想看超大纹理
系统会输出一个深度值
以及一张蒙版 可以让技术美术
在周围实现材质变形效果

English: 
by walking in a way
you've never seen before,
so it was definitely something
that we had to be pretty mindful
of a lot of the time.
And then, of course, we ran
Async tessellation
on this ground,
as well,
to get the detail up close.
So I'll talk about
that right here.
Initially, when we tried to do
a deformation in Gears 5,
we tried to do it based
on a particle basis,
so we spawned particles
into a buffer
that would basically push
the sand and snow around
but became really expensive
to have these particles
sitting around
for maybe even 2 minutes
to have trails behind you,
and we were trying
to hit 60 fps, and we're like,
"This isn't going to work",
so we scrapped it,
and we went with
a different system
where it's
basically a new system
that could store trails
for a large data set.
It's all stored
in the Texture Atlas
with an indirection layer
for efficiency.
Think megatexturing.
And the system
would output a depth value
and a mask that Tech Art
could then build
the Material deformation around,

Chinese: 
然后就像我提到过的
在地面上使用异步曲面细分
以实现近距离的视觉效果
我们为《战争机器5》创建的异步曲面细分
在Xbox Onx X上大概需要0.3毫秒
非常快
然后在PC上 我们可以继续放大
我们添加的另外一个强大功能：
我们在《战争机器5》中添加了松散式锥形步进映射
这源于英伟达以前发表的一篇文章
我们发现它产生的效果
比视差贴图更明显
而且在GPU上的计算速度更快
你只需预先计算锥形步进映射
它由高度图生成
这对我们来说很合适
因为我们已经有了材质遮罩系统
你点击保存
它就会根据需要烘焙纹理
如果你点击锥形步进的复选框
它会为你生成圆锥形步进映射
这是一段关于室内砖墙的视频
你可以选择用这个通道处理深度缓冲区

English: 
and then we'd,
like I mentioned, run
async tessellation
on this to achieve
the visual quality up close,
and the
async tessellation we created
for Gears 5
would take about 0.3
milliseconds on an Xbox
One X, so it was quite fast.
And then on PC,
we could scale it way up.
Another cool thing we added:
We added a relaxed cone step
mapping in Gears 5.
This is based on an old
Nvidia paper, actually,
and so we found this produced
stronger results
than Parallax Occlusion
Mapping,
and it's faster
to compute on the GPU.
So you just basically
precompute this cone step map,
and it's generated
from a heightmap,
and this worked out well for us
because we already had
the Material masking system
where you hit save,
and it's baking out Textures
as it needs anyway,
so if you had
the cone step checkbox hit,
it would generate
the cone step map for you.
There's a video of it in one
of the rooms of some bricks.
You could optionally poke
the depth buffer with this pass

English: 
and output shadows from the cone
step map or AO,
SSAO, from the cone step map,
but
we didn't do that super often
because it was
already expensive enough
to run these cone step maps.
But, yeah, this really gave us
a nice sense of depth
to our Materials at 60 fps
and didn't have to incur all the
costs of the Parallax Occlusion
Mapping, and you don't really
see the stepping
that Parallax Occlusion
Mapping has.
So this is how
it sort of looked on Xbox One.
The Overworlds: We had large
outdoor spaces that were
7 kilometers by 5 kilometers
was the largest, the sand one.
We had a Skiff vehicle
that could move extremely fast.
I believe it was like a few
hundred kilometers an hour.
So what we did:
We authored these
landscapes in World Machine,
imported them into UE4,
UE4's Landscape system.
We used the World Composition
for streaming.
We broke our levels into large,
medium, and small categories
to kind of stream
at different granularities.
This was a large exercise
in memory management

Chinese: 
然后通过锥形步进映射、AO
SSAO输出阴影
但我们很少这样做
因为运行这些锥形步进映射
已经非常昂贵了
但这确实让我们在60FPS的速度下
获得了很好的材质深度效果
而且不会产生视差贴图的开销
你也看不到视差贴图的
步进效果
这就是它在Xbox One上的效果
域外世界：我们有很大的室外场景
最大的是沙漠场景 有7公里乘5公里那么大
我们有一艘帆船 它的速度非常快
大概是每小时几百公里
为此：
我们用World Machine生成了这些地形
将它们导入UE4的地形系统中
我们使用World Composition流送地形
我们将关卡分为大、中、小几种
以不同的粒度流送
这对于内存管理有很高的要求

English: 
just keeping these things
from crashing in Xbox
in terms of LOD counts,
triangle counts,
HLOD usage, Texture memory.
For example, we had --
At one point, we were like,
"Okay, performance
is a big problem.
We'll do HLODs of HLODs,
hierarchical HLODs, yes,"
and then we did that, and then
we just ran out of memory
and crashed immediately,
and we're like,
"Okay, take it all out.
Take it out,"
and then we just did one
HLOD pass,
and then we'll just
massage the LODs.
So it was a lot of
back-and-forth like that.
We used every type of HLOD
you could imagine:
HLOD Proxy, Epic Merge,
aggregate techniques,
all these things, Simplygon.
Sometimes, actually,
we'd get so fed up
with the popping we would see
that we would just create
an Epic Merge HLOD,
and then you would
see it up close, as well.
So we would just not retexture
Atlas.
We'd use the Materials
that were already there,
and you could get right up
close to it and go far away,
and it was the same Mesh.
This worked well in a lot
of areas like the Ice Overworld,
so if you go through
the Overworlds,
you'll see
there's very little popping,
and that's because of that
high-quality HLODs.

Chinese: 
因为必须防止游戏在Xbox中
由于LOD数量、三角形数量
HLOD使用情况以及纹理内存而崩溃
例如 我们曾经觉得：
“好吧 性能是个大问题
我们要实现HLOD的HLOD
层级HLOD 没错”
我们也尝试了这种办法 最终发现内存不够用
游戏马上就崩溃了 于是我们想
“好吧 那就取消这种办法”
然后我们只用了一个HLOD通道
并在之后调整了LOD
所以有很多反复调整
我们用到了你能想到的所有HLOD类型：
HLOD代理、Epic合并、聚合技术
Simplygon 诸如此类 有时实际上
我们会因为对象的突然加载感到厌烦
我们就会创建一个Epic合并HLOD
然后你也能近距离观察它
所以我们不会制作图集纹理
我们会使用已经存在的材质
你可以靠近它 然后走远一点
那是同一种网格体
这种方法在很多地图中都很有效 比如冰上世界
所以如果在你跨越不同的域外世界时
你几乎不会看到对象突然出现
这得益于高质量的HLOD

Chinese: 
最后 我们使用Impostor来减少GPU
在植被上的负担
有时 需要使用八面体Impostor
此外 当然还需要
曲面细分着色器和动态阴影
来显示大量的近距离的细节
角色的眼睛：
我们对《战争机器5》中的
角色改进非常满意
我们为虹膜添加了《虚幻争霸》中的凹凸偏移
我们为眼睛设置了适当的屏幕空间
次表面散射效果 《战争机器4》没有实现这一点
我们添加了眼部分泌物、泪腺和眼部AO几何体
我们添加了眉毛的几何形状
我们的虹膜焦散系统
能够生成动态的虹膜焦散效果
灵感来自于2013年GDC的一次演讲
我们还添加了自定义的立方体反射支持
因为我们发现美术师常常希望
尽可能细化眼睛中的反射效果
皮肤：我们特别为过场动画中的皮肤
创建了一种新的着色模型

English: 
Finally, we used impostors
to reduce the GPU load
on the vegetation.
Sometimes, octahedral impostors
were necessary,
and then, of course,
the tessellation
shaders and dynamic shadows
to bring a lot of detail
up close.
So Characters' eyes:
So, yeah, we were really happy
with the improvements
we did to our Characters
in Gears 5.
So we added things like the
Paragon bump offset to the iris.
We set the eyes to properly use
Screen-Space
Subsurface Scattering.
Gears 4 did not do this.
We added eye water,
tear duct and eye AO geometry.
We added eyebrow geometry.
Our Iris Caustic system
that we generated,
this generates
dynamic iris caustics,
was inspired by a GDC 2013 talk.
And we also added a custom
Cubemap reflection support
because we found the artist
wanted to refine how
the reflections
were seen in the eyes a lot.
Skin: We created
a new shading model
specifically for cinematic skin.

English: 
This really improved
the backscattering
compared to Gears 4.
We added dual-lobe specular.
Epic, shortly after we did this,
implemented it into UE4,
which is great.
You can see some animated
GIF files here.
We added detail normals
for skin pores,
so the bottom right
is detail normals,
and top right is dual-lobe spec.
And then we added
a much improved blood
flushing to the face,
simulated regional blood
flow under the skin,
and the blood flushing regions
were tied to expansion
and compression wrinkle maps
in about 19 different areas
of the face.
So that's really --
If you start up Gears 5,
and you see the "Last time
on Gears of War,"
and there's all the clips
from Gears of War 4,
and then it transitions right
into the cinematic of Gears 5,
it's quite a shocking
visual-quality improvement,
and I think it's a lot
of these passes.
The hair:
We basically identified
that we liked the hair shader
in Gears 4,
but we needed to improve
the AO map generation.
So we built a custom tool
for this using Houdini Engine.

Chinese: 
这有效提升了《战争机器4》中的
后散射效果 我们增加了双镜叶高光
在我们实现后不久 Epic就把它添加到了UE4中
非常棒
你可以在这里看到一些GIF动画
我们为皮肤毛孔添加了细节法线
右下角是细节法线的效果
右上角是双镜叶高光的效果
然后我们改善了脸部的
红晕效果
模拟了皮下局部血流效果
面部红晕效果与脸部
19个不同区域的
皱纹扩张和压缩贴图有关
如果你刚开始玩《战争机器5》
在欣赏《战争机器》剧情回顾时
看到的全是《战争机器4》的片段
然后游戏切换到《战争机器5》的过场动画
你能明显感觉到视觉质量的提升
我想这很大程度上与这些改善有关
头发：我们基本上明确了
我们会沿用《战争机器4》中的头发着色器
但我们需要改进环境光遮蔽贴图的生成方式
因此 我们用Houdini引擎
创建了一个自定义工具

English: 
This is Geoff Lester,
one of our senior tech artists.
So it's a ray tracer
for AO in Houdini,
and it allows lots of controls.
It's things like partially
penetrating rays through cards
to simulate transmittance,
read the alpha hair Texture
and lets rays through areas,
multiple levels
of quality presets.
But, yeah, we're basically
using the Disney Marschner
shading model for our hair
in Gears 5,
but the improved
AO really helped in
also probably improving
our hair authoring techniques.
We implemented Bent Normals,
spot-integrated that from Epic.
Yep, it is what it is.
It basically really helps out
in terms of specular leaking,
so this plugged a lot of
our specular and diffuse leaks,
so we had a Texture map
that had the Bent Normal
and the AO in the same Texture
that we use only
on our hero Characters.
Character face rig:
So let's step through it.
So we had 103 face blend shapes,
were primarily blend-shaped base
with joint tunables.

Chinese: 
这要归功于Geoff Lester
我们其中一位资深技术美术师
它主要用于Houdini中的环境光遮蔽光线追踪
它可以控制很多内容
这就像部分穿透纸牌的光线
来模拟透光率
读取Alpha头发纹理 让光线穿过区域
有多级质量预设
我们在《战争机器5》中用的主要是
迪斯尼的Marschner头发着色模型
但改进后环境光遮蔽效果同样起到了帮助
并且改善了我们的头发创建技巧
我们实现了弯曲法线
它整合自Epic公布的其它引擎版本
是的 就是这样
它基本上能够解决高光漏光问题
避免了很多高光和漫反射的漏光
我们有一张纹理贴图 同时保存了弯曲法线
和环境光遮蔽
我们只在主角上使用这种纹理
角色脸部动画：让我们逐个来看下
我们有103种面部融合变形
主要是关节可调的基础融合变形

Chinese: 
我们有28种眉毛形状
睫毛、眼部分泌物、泪腺分别有26种形状
这就是我之前提到的
为《战争机器5》新添加的几何体
新的几何体 新的EyeAO 我们有75个完整的胡须形状
总共有298种脸部形状
然后我们有67块动画骨骼
其中43个有蒙皮 有93个角色动画
转移骨骼 用于面部红晕等
我之前提到的效果
你可以看到
这就是扩展法线贴图
这是压缩法线贴图
这就是我们的19个不同的融合区域
瞳孔扩张 这个不可缺少
有很多内容 我们邀请FaceWare
制作了过场动画的面部动画捕捉
我们使用原始视频来跟踪面部运动
并映射到我们的自定义面部控制中
我们在动作捕捉环节和配音间
用到了这一技术 然后动画团队
会处理这些数据 让效果看起来非常出众
HDR：这个功能在《战争机器5》的制作

English: 
So we had 28 eyebrow shapes.
We had 26 eyelash/eye
water/tear duct shapes.
That's the new Geo
I was talking about earlier
that we added for Gears 5.
That's new Geo, the IAO.
We had 75 full beard shapes,
so total,
we had 298 face shapes,
and then we had
67 animated bones,
43 that are skinned,
and 93 Character animation
transfer bones for things
like the blood flushing
and things I was
talking about earlier,
and you can see,
yeah, here's the --
That's the expansion
normal map.
That's the compression
normal map,
and that's the thing we blended
in 19 different regions.
Pupil dilation:
got to have that.
Lots of good stuff.
We went to FaceWare
for cinematic
face-animation capture.
We used raw video
to track face movements
and maps to our custom
face controls,
and we used it in the
Performance Capture Sessions
and the Voice Acting Booth.
And then the animation team
would take this data and massage
it and make it look awesome.
HDR: This is something
that came online

English: 
near the end of Gears 5,
but I just wanted to mention it.
Digital Foundry, again,
flattering quote:
"Gears 5 takes the crown
as perhaps
the best implementation
of high-dynamic-range
rendering
I've experienced to date."
What we did was,
we did a blended HDR buffer:
50 percent a machine-learning
algorithm
from the Redmond ATG group.
The machine learning was used
to train an inverse tone mapper.
We set it
on first-party Xbox games.
So it would train
an inverse tone mapper
for color space conversion,
and then we blended that with
the 50 percent Reinhard buffer.
Of course, there's lots of
Material tuning, visual effects,
lighting, skyboxes,
as well, to achieve this.
This was a large collaboration.
We did not author Assets
in Wide Color Gamut
at the end of the day.
It was just too much memory
at the time,
and it was just coming online
a little bit late,
and we already built quite a bit
of the art at this point,
so it's something
we're definitely interested
in the future
but not at this time.
And then the HDR Calibration
screen is just as important as,
I'd say,
the HDR implementation itself,

Chinese: 
临近尾声时才推出 不过我还是想说一下
Digital Foundry再次
给出了很高的评价：
“《战争机器5》中的HDR渲染可能是我
迄今为止见过的
最好的”
我们的做法是 创建一个混合HDR缓冲区：
50%源于Redmond ATG的
机器学习算法
机器学习被用来训练翻转色调映射器
我们把它用于Xbox的第一方游戏上
它会训练一个翻色调映射器
以便转换色彩空间
然后我们把它与另外50%的
Reinhard缓冲区混合
当然 需要调整很多材质、视觉效果
光照、天空盒来实现这一点
这需要大量的合作
我们最后没有用广色域
处理资源
当时内存已经很满了
而且想到它时已经有点晚了
当时我们已经创建了很多美术资源
未来我们很有可能会添加
这个功能 但现在还没有
此外 HDR屏幕校准几乎和
HDR功能本身一样重要

Chinese: 
它能确保用户把屏幕调整到正确设置
我们花了很多时间开发HDR屏幕校准功能
实时过场动画：
我主要需要优化实时过场动画
让它在本时代硬件上能以30FPS的速度运行
这是个很重要的任务
我记得Xbox One上所有的过场动画
加起来大概有1小时40分钟
GPU的性能预算很吃紧 CPU通常还好
显然 我们必须调整可延展性
在Xbox One上禁用某些效果
另一个棘手的技术挑战是
我们在整个游戏中没有加载界面
每次播放过场动画时
我们都必须要加载下一张地图
为此我们的工程师花了不少心血
此外 游戏中的过场动画 虽说不是全部
但是大多数都是和游戏本身
无缝过渡的
最后 它们全都是用Matinee制作的
当时的引擎版本是4.11
我们尝试过局部整合Sequencer
但工作量太大了

English: 
making sure the user
has tuned their TV properly.
So we spent a lot of time
on the HDR calibration screen.
So real-time cinematics:
We basically had to optimize
a real-time feature film
to run at 30 frames per second
on current-gen hardware.
It's this nontrivial task,
and I was like --
I think overall, it's
an hour-and-40-minute runtime
or something of cinematics
all running on an Xbox One.
So we had strict GPU budgets.
CPU was usually okay.
We had to obviously
do scalability,
turn some things off
for Xbox One.
The other tricky
technical challenge was,
we have no loading screens
throughout the game,
so we had to be streaming
in the next area
every time a cinematic
is playing,
so we had concerted
engineering effort towards that.
And then we also had seamless
transitions from gameplay
into cinematics
and back most of the time,
not all the time.
And then, finally is, they were
all done using Matinee.
It was 4.11 base.
We looked at Spot
Integrating Sequencer,
and it was just terrifying,

Chinese: 
我们决定等到下一次再考虑
所以动画全都是用Matinee完成的
这里有一段过场动画
显示的是Xbox One上实时动画的效果
我先播放一会
你可以看到Epic的光圈效果
以及景深效果

English: 
and we just decided
to just wait for the next one,
so it's all done
using Matinee.
So here's a cinematic
just to show
what we could do
in real time on Xbox One.
I'll just let it play
for a minute here.
You can see Epic's diaphragm
DoF, as well.

English: 
I'll keep going.
So you get an idea
how hitting that quality
real-time,
we're pretty proud of that.
That was one of the few
cinematics that had CPU issues.
There was so much going on.
The draw thread
was sort of struggling.
Cool. So performance:
60 frames per second.
One thing I don't mention
in the bullet points was,
this was a push from the very
early days of Gears 5,
something I was personally
passionate about.
We basically grabbed
a Gears 4 level
and made it run
at 60 frames per second
and kind of started there
and was like,
"Okay, I think we can do this."
So we ultimately went 60 frames
per second on Xbox
One X for Campaign.
Xbox One is 30.

Chinese: 
让我继续 所以你看到了
能够实现如此的实时画面效果
我们对此感到非常自豪
这是少数几段让CPU不堪重负的过场动画
画面中的内容实在太多了
渲染线程有点吃紧
好的 性能：60帧每秒
我在提纲中有一点没有提到
这个目标在《战争机器5》早期就定下来了
我对此十分热衷
我们先选取了《战争机器4》中的某个关卡
试着让它达到每秒60帧的速度
然后以此为基础得出结论：
“好的 我想我们能实现这个目标”
所以最终战役模式在Xbox
Onx X上达到了每秒60帧
Xbox One是每秒30帧

Chinese: 
但我们不想像《战争机器4》
那样在4K和60FPS之间
二选一
《战争机器5》中其它性能优先的
模式还有“持久战”模式
我们在Xbox One上将它提高到了60FPS
“撤离”模式是60FPS 三玩家分屏：
我们此前从未有过三玩家分屏模式
达到30FPS
我们的理念是 说起来很简单
但我们确实做到了 那就是
不要为了达到60FPS而过分降低画面质量
相反 想办法改善它
《战争机器5》中的性能工具：
Xbox One X是战役模式的主要性能测试平台
因为它必须达到60FPS
Xbox One是多人模式的主要性能测试平台
测试员会体验所有关卡
性能结果显示在
我们内部的统计页面“Watchtower”中
我们会跟踪百分之多少的画面能达到60FPS
还会跟踪平均分辨率
我们会分别跟踪大、中、小卡顿的出现频率
我们有一个单独的工程师团队
专门调查这些卡顿

English: 
But we didn't want to do
that compromise of 4K or 60,
which Gears 4 had.
So other performance first for
Gears 5 was Horde Mode.
We pushed it to 60 frames
per second on Xbox One.
Escape Mode is 60.
Three-player split screen:
We never had three-player
before,
getting that to run at 30,
and the philosophy,
which is nice to say,
but I think we were able
to hold the line on this is,
don't compromise visual quality
in any noticeable way to hit 60.
In fact, improve it.
So performance tools
in Gears 5:
So Xbox One X was the lead
performance platform
for Campaign
because of the 60,
and Xbox One was the performance
lead platform for MP modes.
QA would basically play
through the levels,
and the performance results
would populate
our internal stats page
called Watchtower.
We would track in our levels our
percent at 60 frames per second
and also look at things
like average resolution.
We had spike tracking stats for
large, medium and small spikes,
and we had a separate
sort of engineering group
that would look into those,

English: 
and we also tracked
what thread we were bound
by what percent of the time.
Example is draw thread bound
six percent of the time.
And then we set
performance targets
for various visual levels,
so we have visuals one,
two, three,
and Blitz at The Coalition
for art passes,
so visuals one, we said 70pp,
which is Grey box.
Visuals two: partial art,
80 percent. Visuals three --
So you can see as the art
actually goes in,
we actually start turning
the screws tighter
and tighter
on performance, as well.
At Blitz, we would go
99 percent at 60 fps.
So this process combined
with our up-front real-time
performance stats,
which you can see
in the screenshot there,
was quite effective,
so these are kind
of our real-time GPU stats
we would look at
on the right there.
You could see in each pass
real-time
how slow or fast everything is.
We integrated UE4's
Temporal Upscaling into 4.11.
This allowed us to lean
into resolution scaling

Chinese: 
我们还会跟踪哪些线程在限制我们
以及它的持续时间
例如绘制线程占到了6%的时间
然后我们会为不同的画面水平
设置性能目标
在The Coalition
我们有“画面1”、“画面2”
“画面3”以及“Blitz”等美术通道
“画面1”是70% 只有灰色盒体模型
“画面2”：加入部分美术
有80% “画面3”--
所以可以看到 随着美术内容不断增多
我们对性能的要求
也越来越严格
在“Blitz”中
99%的画面需要达到60FPS
通过将这些手段
与我们前期的实时性能统计相结合
效果十分显著 你可以在屏幕截图中
看到这些统计数据
右侧看到的都是我们的
实时GPU统计数据
你可以实时查看所有通道
了解它们的速度
我们把UE4的临时上采样功能集成到了4.11中
这使得我们可以缩放分辨率

Chinese: 
而不必担心柔化图像
如果比例低于66%
你会看到一些异样
但总体质量仍然非常高
有一点内容可能会引起争议
但我想说将1440p临时上采样到4K
看起来比标准的1800p
放大到4K要好多了
我们还做了一件事 我们在
《战争机器5》中实现了异步后期处理通道
这样做是有原因的 因为我们--
由于临时上采样的关系
我们始终会输出原生分辨率
所以后期处理总是4K
所以我们觉得：“开销太大了
但如果我们能在下一帧中异步运行它
就能极大提升性能”
我们花了几年的时间
转换并计算所有的后期处理通道
根据当前时间细化
异步后期处理渲染管线
开发团队完成得非常出色

English: 
without concern of the image
becoming soft.
If you go below
66 percent scale,
you'll start seeing
a bit of sizzle,
but overall,
the quality is incredible.
One thing I would say
would maybe be controversial,
but I'd say 1440p Temporal
Upscaled to 4K,
it looks a lot better
than an 800p with
just a standard upscale to 4K.
So one thing we also did is,
we implemented
an Async Post-Processing
pass on Gears 5.
So this made sense
because we were looking at --
We're always outputting
native resolution
because of the Temporal
Upscaling going in,
so the PostProcess
was always at 4K.
And so we were like,
"This is really expensive,
but if we could run this
Async over our next frame,
this would really help
accelerate performance."
So this was a few man-years
of work to convert
all the PostProcess
passes to compute
and then refine the
Async PostProcess pipeline
in terms of present times.
The engineering team
did an amazing job here.

English: 
But this got us back
roughly 1.3 milliseconds,
a bit more, a bit
less on certain platforms,
but this gave us enough back
to really pump more art,
more content, more visual
effects into the game.
So stepping through
some of the threads
and some of the things we did,
so game thread:
This was largely
an engineering-led effort
with some Tech Art support.
We did extensive threading work
on various systems,
extensive animation-system
optimizations,
dozens of secondary systems
optimized,
things like Death and Spawn.
Tech Art, we basically did
a lot of reduction
of max particle counts,
a lot of particle
LODs as you sort of heard
from the earlier talks.
This is a really good way to go,
and we would convert particles
into subparticles
or GPU spawn wherever we could.
Of course, Collision Mesh
is important for game thread.
We'd optimize that,
and the engineers would codify
any Blueprints
that were noticeable
cost or extensively used,

Chinese: 
这大约加快了1.3毫秒时间
不同平台可能稍有出入
但为我们节省出了足够时间在游戏中添加
更多美术效果 、更多内容以及更多视觉效果
来看一下这些线程
我们做了几点 游戏线程：
主要由工程团队主导
技术美术提供了部分支持
我们在不同的系统上做了大量线程工作
进行了大量的动画系统优化
优化了数十个二级系统
例如死亡和重生
技术美术 我们主要是大幅度降低了
粒子的最大数量
大量的粒子LOD 就像之前介绍的那样
这个方法很实用
我们把粒子转化成“Swift粒子”
或者尽可能转化成“GPU生成物”
当然 碰撞网格体对于游戏线程非常重要
我们会优化它 工程师会对那些
开销很大或者频繁使用的蓝图
进行优化和处理

English: 
and then things also that
kind of caught us off guard was,
the Texture Streamer was pinging
the game thread a lot,
and we'd kind of tune
the Texture Streamer
per game mode to maybe
throttle it back or whatnot.
Draw thread: This was kind of
the silent killer on Gears 5,
the scariest thread, I'd say.
So we did a lot
or as much as we could here.
So we set up shadow casting
draw call budgets.
Things like shadow cost fall
in the draw thread.
This is also called
the render thread.
We implemented a few things.
So we implemented a shadow in
shadow computation pass
that would occur when
a lightmass bake would happen
that would disable shadows
casting inside of a shadow
from the directional light,
so you don't have to incur
the costs
of that little fire hydrant
that's in the shadow
of a big building.
It doesn't make sense,
so we would
get rid of that shadow cost.
Things I didn't really
pay attention to as much on
Gears 4 that I started paying
a lot more attention to
on Gears 5
was particle emitter counts.
So you have your
particle system,
and artists would love to have
15 particle emitters
inside that system
to create a spark,
and you're like,
"No, no, no, no, no,

Chinese: 
此外 还有一点让我们措手不及
纹理流送器经常会影响游戏
所以我们按照游戏模式逐个调整
纹理流送器 来解决问题
绘制线程：它简直是《战争机器5》的“沉默杀手”
在我看来 它是最可怕的线程
我们在这里做了很多工作
我们设置了阴影投射绘制调用的预算
阴影投射需要绘制线程完成
它也称为渲染线程
我们实现了几点内容
我们实现了一种“阴影中的阴影”计算通道
它会在Lightmass烘焙时出现
会禁用定向光源阴影内部投射的阴影
这样你就无需额外渲染
某栋大楼的阴影中的
某个消火栓的阴影
没必要重复渲染
这样就能减低阴影开销
我在《战争机器4》中忽略了一点
直到《战争机器5》才开始重视
那就是粒子发射器的数量
假设有一个粒子系统
美术师希望在这个系统中添加
15个粒子发射器 用于制作火花效果
而你觉得：“ 不、不、不

Chinese: 
我们必须把数量降到2”
所以我们做了很多优化工作
每当Epic更新HLOD时 我们都会更新最新内容
我记得游戏发售时HLOD已经更新到了4.22版本
HLOD是技术美术在《战争机器5》中
最棘手的挑战之一
此外还有一点起到了很大帮助
我们使用HLOD网格体作为阴影投射源
即使HLOD并没有被渲染
所以在近处 你会看到HLOD阴影
在90%的情况下都很好
如果出现了画面瑕疵
我们会把资源
从HLOD集群中移除 或者完全禁用
那个集群中的HLOD阴影投射
这样又能为我们
在绘制线程上节省2毫秒时间
我们将HLOD用于遮蔽检测
我们为“撤离”模式实现了一个基于地图网格的
自定义遮蔽系统
可以说是为“撤离”模式量身定制的
正是因为它
我们才能保证“撤离”模式在游戏发售时

English: 
we got to get this down to two,"
so we did a lot of optimizations
like that. We just --
Any time Epic did any change
to HLOD, we'd grab the latest.
I think we're up to 4.22
for HLOD tech when we shipped.
HLOD's became
one of the trickiest
Tech Art challenges on
Gears 5, I'd say.
And then one thing that we did
that really helped was,
we used the HLOD mesh
as a shadow caster
even if the
HLOD wasn't being rendered.
So right up close,
you'd have HLOD shadows,
and this worked really well
90 percent of the time.
If it didn't,
if it created a visual artifact,
we would just either take
that Asset
out of the HLOD cluster
or disable
HLOD shadow casting
from that cluster entirely,
but this gave us back
another millisecond or 2
on the draw thread.
Reduce HLOD
for occlusion testing.
We implemented a custom
tile-based occlusion system
for Escape Mode that was a bit
more bespoke for Escape,
but that's how we essentially
shipped Escape at 60,

English: 
was because of that tech.
It was amazing.
And then implemented on-screen
draw call counts with categories
for running in the game
in real-time,
and then all the Characters had
Proxy LODs for their lowest LOD.
So we threw everything we could
at the draw thread
over the period of 3 years,
just trying to make
this thing run at 60.
GPU: Tech Art owned the GPU
budgets and draw calls
and enforced
per-game-mode budgets.
So we had a different GPU budget
for each game mode.
We implemented in-game on-screen
budgets that were live.
So we factored numerous base
Materials and Material functions
from Gears 4
to be more efficient
like the Height Lerp blend.
We moved as much to the
vertex shader as possible.
Artists tend to just make
something run
on the pixel shader by default,
but you could grab a lot of that
and move that
to the protect shader,
especially for visual effects.
We leveraged a rendering team
for numerous GPU optimizations,
lots there.
We cherry-picked lots
of optimizations from Epic.

Chinese: 
达到60FPS 太神奇了
然后实现了在游戏实时运行时 在屏幕上显示
各个方面的绘制调次数
所有角色的最低LOD都使用“代理LOD”
所以 在过去3年中 我们一直在竭尽全力
优化绘制线程
以便游戏达到60FPS的标准
GPU：技术美术负责GPU预算和绘制调用
并强制设定各个游戏模式的预算
所以不同游戏模式有着不同的GPU预算
我们在游戏中实现了实时显示预算数据
我们重构了《战争机器4》中大量的基础材质
和材质函数
让它们更有效率 例如“高度插值混合”
我们尽可能将功能转移到顶点着色器中
美术师习惯在像素着色器中
实现许多有趣功能 但你可以把许多内容
移动到顶点着色器中完成
尤其是在视觉效果方面 我们有一支渲染团队
专门负责大量的GPU优化工作
我们从Epic的引擎中挑选出了很多优化内容

English: 
We added things like the ability
to enable/disable RCAs and Skylight
reflections
in a PostProcessVolume.
We found in the outdoor areas,
we didn't really need
a lot of RCAs,
and just having one RCA incurs
a large kind of GPU cost,
so we would just shut down
the RCA system,
just have the Skylight
reflection
when you're outside,
and then you'd come back.
Then we'd,
with the PostProcessVolume,
blend in the RCAs back
and then a constant balance
for all of these systems.
Split screen: Basically,
we didn't have to do a lot
on Xbox One X,
but on Xbox One, because --
We didn't have to do a lot
on Xbox One X
because we went to 30 frames
per second for split screen.
But on Xbox One, we had to drop
the cascade count.
We disabled all vegetation
when you got to the three-player
split screen,
and we did a detail
object-tagging pass.
But one thing I realized
at the end of the project was,
if we hadn't targeted
60 frames per second
for Campaign on Xbox One X,

Chinese: 
并添加了一些功能 例如在后期处理体积中
启用/禁用RCA和天空光源反射
我们发现在室外区域中
并不需要很多RCA
一个RCA就会产生很大的GPU开销
所以还好我们关闭了RCA系统
在室外场景只使用天空光源反射
然后当你重返室内后
我们会让后期处理体积
重新打开RCA
然后是持续平衡所有这些系统
分屏：基本上 在Xbox One X上我们
没有做很多工作
但是在Xbox One上 因为--
我们在Xbox One X上没有做很多工作
因为分屏只需要达到30FPS
但在Xbox One上 我们必须降低级联数量
我们禁用了三人分屏的
所有植被
我们实现了一个“细节对象”标签通道
在项目结束时 我意识到一点
如果我们没有试着
在Xbox One X上让战役模式达到60FPS

Chinese: 
我可能就无法在Xbox上实现
三人分屏模式
因为三人同屏的绘制开销很大
正是因为我们尝试达到60FPS
我们才为分屏留出了性能空间
PC：《战争机器5》 也会登陆PC平台
它的可延展性比《战争机器4》更好
有更多的动态实时阴影
有曲面细分着色器、HLOD、体积雾
屏幕空间反射
很多内柔都在PC上延展得很好
我们第一次登陆了Steam
这使得我们遇到了很多此前在微软商城
发售《战争机器4》时
没有遇到过的PC配置
这得到了大量工程师的支持
然后我们还做了一件事 我们创建了
一个特殊的纹理组 专为中低端PC创建
许多都是低分辨率的纹理
适用于那些无法顺利将所有纹理
加载到纹理池中的中低端PC

English: 
I don't know how we would've
delivered three-player
split screen on Xbox
just with the draw thread
overhead of those
three-player view.
We had a bit of headroom
because of that 60-fps push,
so that really worked out.
PC: Yep, we had a PC skew
for Gears 5,
much more scalable than
Gears 4,
more dynamic real-time shadows.
We had tessellation shaders,
HLODs, volume fog,
Screen Space Reflections,
a lot of things you
could scale quite well on PC.
We shipped on Steam
for the very first time.
This exposed us to a larger
variety of PC configurations
than we'd ever seen
before compared to the Windows
Store on Gears 4,
so that was a lot of engineering
bandwidth to support that.
And then one thing we did was,
we created
a special Texture group
just for low and medium-end
PCs that --
a lot of soft-res Textures
for kind of a low, medium-end
PC that was having trouble
fitting everything
into the Texture pool.

Chinese: 
关于性能和内存的最后一张幻灯片：资源内存
我们的总体目标是把《战争机器5》的纹理池
降低350兆 这是一个艰巨的任务
《战争机器4》的纹理池是1500兆
《战争机器5》是1150兆
为什么要压缩纹理池呢？
《战争机器5》渲染的几何体更多
我们压缩了150兆无需提供支持的HLOD
压缩了30兆体积光照贴图
20兆光线追踪距离场阴影
50兆异步曲面细分系统
然后压缩了用于额外资源密度以及
角色多边形数量的100兆纹理
就像我之前说的 我们是怎么做到的呢？
我们想了很多办法 但最实用的方法是
我们改进了纹理打包的方法 在《战争机器4》中
光滑度、金属和环境光遮蔽分别使用单独的纹理
在《战争机器5》中 我们去除了这些纹理
将它们整合到了法线贴图中
所以我们只有一张BC7纹理
包含“法线X”、“法线Y”、“光滑度”

English: 
So final slide on perf and
memory here: so content memory.
We had an overall goal
of compressing the Texture pool
in Gears 5 by 350 Mb.
This was a tall order.
So Gears 4
had a 1,500-Mb Texture pool.
Gears 5 has 1,150.
Why did we need to compress
the Texture pool?
We were drawing a lot more Geo
in Gears 5,
so we had 150 Mb of HLODs that
we never had to support before.
We had 30 Mb of Volumetric
Lightmaps,
20 Mb of ray-traced
Distance Field Shadows,
50 Mb of
Async tessellation system
and then just 100 Mb needed
for additional Asset density
and variety such as the higher
polygon count of Characters
I was talking about before.
So how did we do this?
We did a lot of things, but one
of the more useful things was,
we improved our Texture packing,
so on Gears 4,
we had a separate Texture for
smoothness, metalness, and AO.
On Gears 5,
we eliminated this Texture
and incorporated it
into our normal map,
so we had one BC7 Texture
that was normal X,
normal Y smoothness.

Chinese: 
是的 我们用“光滑度”替代了“粗糙度”
“光滑度”和“金属”  然后将它
与我们的漫反射纹理相结合
这样做之后 材质的纹理大小全都
降低了10%到40%左右
从而减轻了很多压力
另外提供很大帮助的一点是
我们移除了阴影贴图
就像我之前说的 我们此前有400兆的光照
光照贴图和阴影贴图
现在只有大约50兆 我们去除了阴影贴图
这极大地清空了材质池
以便增加其它资源的几何体密度
此外 很重要的一点是
我们必须想办法保存细节贴图
《战争机器5》的场景和角色有着各种各样的
细节贴图 《战争机器4》则没有
所以我们必须想办法把它们保存在纹理池中
为此我们新增了一些实时内存跟踪系统
其中一个叫“Malloc跟踪器”
这对我们管理资源内存很有帮助
结论：
我们成功避免了游戏在帧率
和画面效果上打折扣
我们一开始就定下了一些指标

English: 
Yes, we use "smoothness"
instead of "roughness" --
smoothness and metalness.
So that was sort of --
That combined with our diffuse.
So doing this reduced
our Texture footprint by 10
to 40 percent
per Material depending.
So this took
a lot of pressure off,
and the other thing
that really helped
was the removal
of the shadow maps.
Like I said before, we had up to
400 Mb of lighting,
lightmaps
and shadow maps before.
Now we only had about 50 Mb.
We removed the shadow maps.
That really helped
free up the Texture pool
for that additional Asset
Geo density.
And then on top of all this,
we had to absorb things
like detail maps.
We had detail maps across all of
our environments and Characters
on Gears 5 that we did
not have on Gears 4,
so we had to absorb that
into the pool, and, yeah,
so we added some real-time
memory-tracking systems,
one called Malloc Tracker.
That really helped us
for content memory.
So conclusions:
Yeah, we were able to maintain
a no-compromise approach
to the frame rate
and visuals all the way through,
made some educated
bets early on.

Chinese: 
60FPS是我们新指标
也是我们前期定下的底线 智能优化
关注真正会引起玩家注意的方面
投入具备产出效益的画面效果
我认为我们在《战争机器4》开发完之后
有了更清醒的认识
我们吸取了《战争机器4》
在Xbox One X上的
许多经验 例如我们需要增加
细节贴图的像素密度
我们对于Xbox One X的优缺点
更加清楚了 也学到了很多关于HDR的知识
我们在为Xbox One X
开发《战争机器4》时
了解了有关如何实现60FPS的知识
最后 我们的运气也不错
Epic实现的时序放大功能帮助太大了
这极大提升了《战争机器5》的画面质量
Xbox One X性能卓越
它仍然是一台非常强悍的主机
我们发挥了它的性能
Epic同时也在不断升级UE4
这一帮助非常大 我们对产品感到非常自豪
这项团队工作得到了十几个工作室

English: 
Sixty frames per second
is the new baseline with a line
in the sand early,
smart optimizations
in terms of what does
the game actually notice,
visual investments
that paid off,
and I think we had
a bit of a clarity of vision
after Gears 4 was completed.
We took our learnings
from Gears 4
on Xbox One X
such as we need to increase
the pixel density
with detail maps.
We kind of knew a lot more
about the Xbox
One X strengths and weaknesses.
We learned a lot about HDR,
and we learned a bit
about 60 frames per second
with Gears 4 on Xbox One X.
And then, finally,
we had a little bit of luck.
Epic implementing
Temporal Upscaling was huge.
That really helped
Gears 5's visual quality.
The power of the Xbox One X,
it's still
a pretty fast machine,
so just being able
to leverage that power,
and then Epic continuing
to upgrade UE4
in parallel really helped,
so very proud of the product.
It was a team effort across
over a dozen support studios

Chinese: 
以及数百人的支持 所以 非常感谢大家
我的演讲结束

English: 
and hundreds of people,
so, yeah, thank you.
That is all.
