[音乐]
据说上帝在 7 天内创造了我们美丽的
世界，甚至让星期天
休息
，游击队花了 7 年时间
创造了地平线的世界，我们经常
不得不在星期天工作，这是这里唯一
的笑话，剩下的就是 只是
技术交流，欢迎大家 很
高兴看到房子满了 我被
要求提醒大家
关掉手机，所以如果你可以这样做
，如果你还没有这样做，
非常感谢欢迎大家很高兴在
这里见到你们允许 我
自我介绍一下，
我的名字是 Gilbert Saunders，我是
游击队游戏的首席艺术家，
与其他两位艺术家一起，我们
负责创造
地平线零黎明的植被我
自 2006 年以来一直在游击队游戏
工作 在杀戮地带 2 作为
环境艺术家，然后杀戮地带 3
作为着色器纹理艺术家，
在 2011 年初的这两场比赛之后，
我被要求加入
工作室中的一个小团队，开始
testi ng 和原型设计后来
成为地平线零黎明也做了
一些关于阴影坠落的工作，但
你会在稍后看到，从
2014 年开始全面生产
地平线零黎明现在请
举手多少 你玩过
地平线零黎明很好很好很
高兴看到玩得很好你
可能没有那么关注植被
因为你专注于
世界的危险所以我们在这里
谈论植被所以让我
开始 用一个小剪辑向你展示
我们最终创造的东西
没有任何声音 所以你通常会
得到类似的东西 我想打扰
你所以
没关系 今天你们都聚集在这里
听我谈论
我们为游戏创建的植被 在创建模拟和渲染自然资产时，你们中的大多数人都
遇到过相同或相似的挑战
自然资产
仍然在这一代
硬件上，充其量只是令人讨厌的
过度简单化 现实世界的阳离子
除了令人讨厌之外，还有什么
让这个主题如此有趣
少花钱多
办事的哲学现在肯定适用于屏幕
上的主题是我今天将一起讨论的主题
它们代表了创作的
艺术和技术挑战
并
在我们的 decima 引擎中渲染大量植被，但
首先让我从一些整体
信息历史开始，然后我将
快速开始处理这些主题，
首先是关于我们的 decima
引擎和渲染器的一些信息，我们可能
在这方面并不完全独特，但在 decima 范围内
作为一名艺术家，我当然能够创建
和维护自己的着色器，
这只有
在通过 Maya
自己的着色器注释以及我们提供的
大量自定义着色器注释在 Maya 中进行
通过我们的图形
程序员分析
这些着色器的性能取决于
艺术家 我自己
在我们的技术团队的指导下，但是
当谈到着色器的质量时，我有一种真正的主人翁感，
资产以及
我的工作性能是 decima 引擎
使用第一个着色，我们将
地平线零黎明定位到
在 ps4 上以 1080p 每秒运行 30 帧，在 pro 上运行 4k
时我们开始开发
后来被命名为地平线零黎明的
这个新 IP 我们正在塑造的这个新 IP 将
包含你现在在屏幕上看到的所有内容
从
我们大多数人听到这个新 IP 的推销的那一刻起，我们
尤其是我，
尤其是当谈到 BBC 的
性质时，七年后
我站在你们面前
谈论它并谈论它 什么已经
成为地平线的支柱之一，
而我们正在慢慢制定和
创造地平线世界工作室的其他
人正忙于
在这个游戏中在新的 ps4 上建立杀手杀戮地带 Shadowfall Alliance 头衔在
敌人后面 线条
一个自然平整 杀戮地带 暗影坠落
可以看作是地平线试验台 这
是处理生产的第一次真正的测试
植被的外观和运动 我们很快发现，由于
植被资产不是静态资产，
而是具有分离层的资产
顶级外包和维护它们
被证明有点困难我们也
很好地了解了
这个自然级别的性能并学到了，这
让我们知道，创造 Foley 它是
杀戮地带的方式在
我们真正需要重新思考的开放世界中是行不通的
多边形着色器和纹理
预算这个级别也标志着放置系统的第一个
卑微的开端，
我们
以最简单的形式在敌后运行，但它
告诉我们，如果没有放置
系统，我们将无法
创建世界 地平线
不是我们真正设想的世界
强调我想
指出我的同事 yap 的谈话
y 去年也在 GDC 上发表
过论文，你可以在 gorillas 网站上找到这篇论文
，当然你可以
在 GDC 故障中观看它，但简短的版本
是我们创建了一个系统，
艺术家可以在其中描述各种
有趣和可信的
可以在世界任何地方应用的
环境 我们希望系统
高度直接并
与手动放置的艺术无缝集成 它
需要完全由数据驱动
确定性 本地稳定 它不仅可以帮助我们
快速填充世界，
还可以帮助我们进行测试 例如，阶段和测试
新资产的规模和性能，
所以我建议查看
欧洲的演讲，我将
在最后一张幻灯片中这些演示文稿的末尾提供一个链接
好的，让
我们从我们知道的一开始就开始我们的树叶运动
对自然的模拟
需要与
我们为游戏设计的天气系统联系起来 它需要
是游戏驱动和
可控的艺术 它需要驱动
v 我们的植被
着色器的 erdicts 程序，因此在我们的模拟基础上
，全球风力场很抱歉，
在我们称之为水平力场或风
箱之前，它们主要
用于驱动粒子的运动，它们
在本地使用它们是手工放置的，
并且 比
我们在地平线世界所需的风更小的规模
我们称之为全球风力场是这些风箱的扩展，
但经过一些更改，
我们的全球风力场是一
台运行在
每帧的开始，模拟
力对
四类弹簧设置的影响并
更新作为着色器的 3d 纹理可以
采样那是一个长句子
模拟始终处于
最接近玩家的最高分辨率，
我们逐渐
以更大的比例和更低的分辨率对 3d 纹理进行采样，
所以让我们 游戏中
全局风力场的快速小型可视化，
因此在玩家周围如此局部
，一旦低位停止，我会
缩小一点，你会看到这
是第二个级联，我们还有
另一个级联用于其他缩放
与这个有点不同，但我想
这种方式向您展示了我们所做的
设置您刚刚看到的设置使我们
能够模拟四种不同类别的
弹簧设置而无需任何额外的
着色器逻辑这使我们能够设置
独特的不同运动 对于三种
类型的资产，我们将这些
资产分为
三类，我告诉过你我们
最多可以模拟四种，所以我们最终称它为
特殊，但最后我们使用最后一个
样本来驱动我们的横幅和 防水布，
但对于所有意图和目的的渲染和着色来说，这是一个完全不同的故事
我们只使用了两个
着色器虽然我们实际上开始了我
真的很想要这个但我无法
让它工作我们实际上
只开始了 e 着色器来处理所有事情，但
随着时间的推移，我们发现草需要
更专业的方法，因此我们
为它构建了一个更专用的着色器。
稍后我会讨论草，
但我想先
看看判决程序
驱动我们的树木和计划的着色器，
因此我们有一种模拟风的方法，
但这仍然需要转化为
我们屏幕上资产的移动才能做到
这一点，我们采用了与
GPU Jemez 3 中描述的类似方法，其中
皮肤近似是
2011 年
存储在她网格
的
顶点颜色
中 随着时间的推移，我们改变了一些其他的
东西，但是这个设置被
证明适用于所有大小的资产
让我向你展示我们做了什么来
试验我们的风并观察
现实生活中的树叶我们
发现要令人信服地
模仿，因为我们仍在模仿，我们
需要三个细节层次的
大型运动或
整个资产的完整弯曲，中等规模运动
将处理树枝和小
运动，将首先处理部分
树枝或树叶 我们
想让整个资产对风做出反应
我们希望它弯曲，因为这些资产
在顶部的刚性低于
底部，所以我们使用资产的高度
作为
下一级大规模运动的梯度 运动是树枝的运动
，
从树干开始附着在它上面的所有东西我们
给资产一个梯度，
梯度是蓝色的，以近似
刚性这些树枝只是简单地把
恢复距离树干现在我们要
到达最后一个级别 叶子或
任何小而薄的足以
像叶子一样的东西我们在
红色通道中所做的是存储到分支的距离
我们也使用绿色通道并将
它用作我们这样做的索引 很抱歉，
这样我们可以
在着色器中偏移我们的分支动画 将其视为
时间偏移 我们还在 Alpha 通道中存储了一个预先计算的
环境光遮蔽
，我们稍后会在着色器中使用它来进行一些不同的
调整
有了顶点颜色，我们的
植被着色器就可以开始工作了，
我们所有的资产都需要通过
这个顶点着色器来驱动，所以我们最终
打开了几个变量，
允许我们在资产基础上调整动画，
这些变量
是 用橙色标记，这五个
足以处理
我们在游戏中拥有的全部变化量 刚性
很容易不是所有的树木都摇摆
得如此之多，所以某些树木需要拨
下或抽出树枝我们有
两个控件对不起 三个控件 我们
有 Bend 这是
沿风矢量的运动 我们有摇摆我们
可以缩放
垂直于风因子的运动量
并且我们有升力是升 盟友
是我们上下运动的标量，
我们可以向上或向下移动，因此我们
实际上允许
树枝在三个轴上的运动标量最后一个
是我们基于风的强度的微动或叶片运动
在对象空间中移动一个微小的 3d 噪波纹理
，我用它来移动我
指定为我的叶子的东西，所以你
刚刚在红色通道中看到的
一切都很好，因为我们游戏中的计划
与树木具有完全相同的着色器，但
通常更小 我们有能力
完全
从着色器中消除整体弯曲，从而降低成本以及
可能不希望的弯曲
到地形
中我们着色器中的另一个很大帮助
是斜坡函数的这个小公式，我们将其乘以
获胜游戏的最大值，我们
有能力增加
风对不同
资产的影响，例如，我可以回忆起我们
关于
白杨树叶需要
在较低风速下提前移动的方向反馈，所以 这个
公式是真正
区分该资产与其他
草的快速方法，我们对草有如此雄心勃勃的计划
，当我们开始
地平线时，我们并没有真正
动摇这一点，古纳草
需要无处不在，但我们想要
我们的草是几何形状的，没有阿尔法平原
它是我们最早原型的一部分，
那个十字架的渲染
占据了整个框架，所以我们
开始了一段旅程
，一点一点地简化我们的草，找出需要
做些什么才能用更少的钱赚更多的钱，这
就是我们最终的结果 使用尽可能少或
尽可能少的三角形专用
草着色器和一些巧妙
的纹理艺术选择让
我现在也在屏幕上的列表中指出
有时我会谈论高
和 从现在开始，低着色器
意味着我们有能力
在每个网格或每个负载的基础上加载我们的着色器中的某些功能，
这意味着
这里的地块 3 在那个距离不会有动画顶点
程序，而且 对于
那个例子，我不再简单的普通
纹理，但我有点飘了
让我们去顶点程序，我们
从对象中心的力场中采样我们的风
，我们使用
草的高度作为梯度来模拟
刚性 在网格中，我们开始置换
草的顶点，这将
是我们的基本运动，但正如您所看到的
，仅此一项并不总能给我们
带来壮观的效果，我们需要的
不仅仅是这个，我还想
避免的是拥有草 倾斜到
一个特定的方向或
长时间静止在一个位置，
这给了我们不需要的伪影，
所以我们在顶部分层一些额外的运动，
由力场的长度驱动
我添加了 som 将周期函数的大规模运动
结合起来制作
小八字形
，这是非常舒缓的动画
一个周期性
函数沿
其法线置换顶点 大大小小的环境动画
加起来
约占总动画的 80%
其余来自风样本 两张
幻灯片前 在我们的模拟之上是
草 还需要做更多
真的很想避免玩家
低头看平面并
感觉
当俯视我们的网格时几何体消失了，所以
我们像这样将网格平面倾斜远离相机
，所以当相机
向上移动时，我们稍微推动顶点 稍
远一点，以避免让
草看起来像卡片，因为出
牌我的意思是我们的草网格有大约
一米半的脚印
和 placi 在
不查看地形的情况下将它们放到世界中会
导致一些不需要的裁剪或
浮动问题，所有顶点都
跟随地形解决了所有这些问题，因此
基于我们地形的高度图，
我们在对象空间中置换了我们草的顶点
最后我们也这样做了 有两
件小事可以帮助加载，我们
将动画按距离缩小，
这样我们就可以
从最后一个印迹中完全删除该动画，并且
缩小整个网格
使资产与地形的混合
更容易，并且它对
所有这些小的性能都有一点提升 程序一起
组成了完整的判决程序
判决程序在草地上所以让我们
继续进行着色所以我们对我们的网格
进行排序让我们继续我们的着色
设置游戏中的透明度即使
经过 alpha 测试的透明度也很昂贵而且
我们没有很多经验
在我们的杀戮地带年代渲染 alpha 测试资产，
并且植被
过于简单，因为它在很大程度上
依赖于 alpha t 估计所以问题是
我们如何处理
我们知道地平线世界
将需要的植被数量
我们这样做了我们所做的是我们
首先在两个通道中渲染所有经过 alpha 测试的网格，
作为早期的遮挡物 我们
在这个初始深度中正常渲染它们只
通过我们进行 alpha 测试，首先渲染这个
pass 会给我们所有的深度
信息，之后我们只需要在
没有 alpha 测试的情况下渲染我们的几何体时进行比较，这
很重要，因为 alpha 测试
非常昂贵，但是这样我们
在一个非常便宜的仅深度
着色器上运行几何着色器要
昂贵得多，但现在通过一个
非常有效的固定函数深度测试来加速
所以让我们分析我们的游戏帧，
看看这对渲染意味着什么 x
在 GPU 上，您可以
在游戏中看到我们的 GPU 分析器的捕获，我正在过滤
如果您在右上角查看
位置，我正在对位置进行过滤，
所以 t 你在这里看到的百分比
亲爱的处理
我们的放置系统放置的所有资产在
技术上不是我们所有的 alpha 测试
资产，而是因为我们使用
放置系统的
不仅仅是 alpha 测试的资产，而是在这样的森林
位置，你可以 打赌 95%
是 alpha 测试的，但
我们感兴趣的数字是我们的深度素数
通过几乎 10% 的帧，我们的
几何通过大约
11.5 点所以总共是 21 点 3 4 5 现在让我们
看看 在
没有我们的深度的情况下渲染所有这些的成本只通过这是一个
巨大的差异，所以在早期注意到这一点时
，很明显
只通过的深度产生了多么巨大的差异，所以
只需将 Alpha 测试部分需要
在最便宜的着色器上运行，
这样我们的 alpha 纹理我们从地平线
零黎明开始，带有符号距离 alpha
纹理，可以让艺术家
控制着色器中 alpha 的大小
我们可以
在着色器中放大和缩小我们的 alpha，我们是
enl 在距离上调整我们的 Alpha，我们这样做是
为了对抗
当纹理
只是降低中间贴图时发生的质量下降，在某些
时候，我们的着色器中有动态雪
，也可以在运行中调整
Alpha，但是作为世界
地平线变得越来越大，人口越来越多，
我们一直在寻求
提高性能，我们发现
调整着色器中的 Alpha 被
证明是一项代价高昂的操作，我们真的
在寻找要削减的百分比，
所以让我们看看我们的 GPU
分析器 再一次，这里有一点
免责声明，
当项目过程中发生如此大的变化时，有时很难复制某些情况，
所以这是我建立的一个小测试，
希望能模仿这种效果，
但这里是 GPU 分析器，也是
要查看的两个数字 这里
再次是 Det 素数，但阴影
通道也受到着色器中处理 Alpha 纹理方式的影响，
阴影几乎占帧素数的 9%
在 6 处，这就是我们
将其更改为阴影下降了近 2
%，而深度素数深度下降了
大约 1% 那么我们如何才能
获得这些结果以找出将
alpha 调整为
着色器的成本 我们删除了该功能并
通过生成自定义贴图
链来替换它这是有道理的，因为我们
已经在着色器中对其进行了采样，因此
我们可以从中获得的任何东西都是
免费的 我们构建了一个离线工具来处理这个
森林，这个工具在
幻灯片在这里，简而言之就是这样
做的过程计算
alpha测试图像的覆盖率并
构建正常的唇链然后我们对
每张地图进行采样我们通过线性对每张地图进行采样
构建直方图并在该
直方图中找到点 与
我们的原始覆盖范围相匹配，
我们在游戏中的 alpha 测试值是 0.5，因此
将 0.5 除以找到
的值将给出我们
需要缩放该地图以最终
得到原始覆盖范围的数量听起来合乎逻辑
r 没错，这是我们的
中间链及其在 0.5 剪辑后的覆盖范围的
表示，出现的底部两行表示
由我们自己的自定义覆盖 alpha
算法创建的按比例放大的 alpha 及其在 0.5 剪辑后的覆盖范围，
所以所有的工作
由着色器完成 现在驻留在单个纹理
样本中 好吧
让您的 alpha 在视觉上尽可能小
总是好的做法，但
另一件需要注意的事情，
特别是对于您知道您
将绘制大量的资产的任何地方
都可以 使您的 alpha 足够小，
以使其适合缓存，特别是
对于我们的草这个简单的更改是
巨大的胜利 a b c a b c 对于压缩
纹理那里的纹理 - 5 6 x
1 - 8 进入 16 KB 没有
唇贴图 21 KB 有中间贴图 我
真的开始使用
没有中间贴图的版本，
直到正在开发我们
的抗锯齿解决方案的图形程序员看到我的检查
并且对此不太满意 o 我们
选择了包含中间贴图的更大版本，
但是是的，您确实
需要一个好的抗锯齿解决方案来
使这看起来很棒，所以请
大喊我们的图形程序员去年
与一名 kijima
一名程序员在香烟上所做的论文
简而言之
，我们现在再次在游戏中运行的抗锯齿解决方案我将
在我最后一张幻灯片中的演讲之后提供一个链接好吧让
我们看看我们的像素程序的其余部分，
因此我们的十进制引擎使用
第一个着色 我们的植被着色器
直接到这些 g 缓冲区，这些
是我们提供给着色器的纹理，
除了从不具有环境遮挡纹理的草之外，
当我们在幻灯片上渲染大多数树皮时，我们也会忽略半透明
你会看到我们拥有的一个工具，
它是我们的纹理设置工具，这
是一个可爱的、神奇的工具，可以让
我们加载 Photoshop 文件，
只需按一下按钮，就可以将这些文件打包成
压缩的 DDS 文件 准备好在
游戏和编辑器中使用，您在这里看到的
是典型的植被纹理设置，
所以 2b c 7s 和 a b c 4 正常，
如果我们正在处理
像这张幻灯片上的植物这样的适当几何形状，我们
不必做更多 与使用
任何其他 3d 资产相比，我们只需要
考虑我们需要将其渲染
为双面，因此基于检查
我们是否正在渲染正面或背面
三角形，我们相应地翻转
法线但是当 我们的资产
严重依赖于
不正确地翻转法线的 alpha 平面或三角形，这
对于将推车
像大自然一样隐藏在草丛中的檐篷上非常有用
我们所做的是调整顶点的法线
并取
视图空间法线的绝对值 为了确保我们
永远不会将法线渲染为背离
我们的相机，我们使用等值面
来生成我们的法线，这是
一个网格如何在
我们的顶篷周围看起来的示例，我们将
这些法线转移到顶点和 t 他
是正常缓冲区的样子，
所以让我们比较一下不正确的
和正常的法线，这是一个 G
缓冲区，这就是我们最终
选择的一个高度艺术选择，
因为你在某种程度上破坏了光照和
半透明度，所以 我们没有
在所有东西上都使用它，但是在
处理几何近似时，它可以
帮助隐藏资产的简单性质，
尤其是在草地上，我们
尝试了很多事情来隐藏
它实际上是 32 个三角形的事实，我们
留下了两个几何 正常大小是但我们
仍然在我们的视图空间的设置组件上执行应用程序
正常并且再次
超过反射率 GB
我们游戏中的所有植被都是彩色的，对于
我们整个游戏中的彩色着色，
我们有一个纹理数组，我们在其中
存储 64 个我们称之为生态灰褐色
眼睛的 128 x 8 像素纹理，除了
在幻灯片上放大的植被着色外，这些
纹理还保留了我们
ro 的着色 ck 岩石 地形 灰尘和地衣
资产在世界中的位置决定了
要采样的纹理，因此 W
分量 不同类型的我们
称之为世界数据的数据被捕获在一个
驱动 V 分量的灰度纹理中，
并且艺术家可以从八个
弯曲中进行选择 并将这些视为着色纹理中
不同类型资产的选择
所有植被
资产为整个对象采集一个样本，
除了我们每个顶点采样的草
以促进所有这些
我们将视频纹理的颜色平均为
中间灰度值 我们还有一个遮罩
纹理，以防我们
不想对内部着色器着色我们
通过具有照明功能的遮罩纹理将样本着色值覆盖在样本反照率纹理的顶部，
结果颜色是与
混合的背景颜色
前景颜色更亮，前景更亮，
而前景更暗
，前景暗，这就是
你将它们组合在一起时得到的 在着色器中，
我们从纹理样本的调节中得出粗糙度和反射率
，在顶点 alpha 中烘焙的环境光遮蔽
和一个变量，
我们将反射率固定为 4% 的电
介质粗糙度，我们仍然需要
一点艺术家控制，所以我们打开
了 变量，我们在其上添加了半透明纹理的级别或
设置范围版本
，作为
区分叶子和树皮之间粗糙度的简单方法，如果它们
存在于草地上的单个纹理中，我们
没有顶点颜色流或
环境遮挡纹理，所以我们使用
半透明纹理来做类似的
事情。第一个半透明
这里屏幕上的前三个项目
可以说是在引擎盖下发生的，这
不是我们可以访问或
能够在着色器中调整的东西，但是 我只是
想把它们放在那里
澄清一下最后三个项目是
开放给我们的
艺术家调整服务厚度
通知abso的数量 表面内部
的 rption 和
破碎锥散射的白度一旦
离开另一侧的服务就消失了，我们将
这些编码为半透明量和
r g
缓冲区的半透明扩散值半透明
量是吸收量，而半透明
扩散是量 散射
我们几乎已经
在某个点将所有植被的扩散量锁定在某个值，我们
通过纹理样本控制半透明量，
我们还在
预先计算的 AO 上添加了一层，它
是我们的 AO 纹理和 再次将
AOS 存储在草的顶点颜色中，
我们使用
半透明量纹理的导数和我们预先
计算的 AO，最后一个是一个大
的，我们摆脱尝试
物理正确性的地方是
在我们有能力的最后阶段 为了
增加散射光的数量，这给了
我们更多的超现实效果，在
视觉上更符合
整体外观 游戏 好吧
那是我们的阴影 解释了
他们 你知道我们需要什么来
模拟风 让我们现在看看
创建植被的管道
当我们开始时再次回答我们是
杀戮地带的人所以我们知道如何构建
这个和东西 像这样，我必须
深入我必须深入挖掘，但我们甚至发现了
这个杀戮地带的植被，
所以我们知道我们已经完成了我们的工作
并稍微伸展一下我们的腿，我们为
自己建立了一个艺术基准，看看
我们能推多远 植被，我
实际上发现了一段视频，我
真的很想分享这就是我们
建造的东西
在我们的森林中生成这个
美女以每秒十帧的速度在游戏中运行，
并且有一些非常
时髦的蘑菇，但因为对于这个
测试，我们仍在构建我们的模型，
就像我们会在任何其他杀戮上
资产对最高领主给予了很多关注，
并希望在距离上处理足够多的
顶点以使其运行
，我们在制作过程中继续这样做了一段
时间，然后在 2015 年 III 中，
我们对地平线的第一次审查
不仅是预告片，而且是可玩的
可玩性，因为游戏需要
让我们的开发人员可以玩，以
展示游戏，我们需要
通过各种软件流程对 LED 进行巨大的优化
，而
不是在最高批次上，而是在其他所有
批次上都需要下降，
所以当 III 出了门，我们试图
弄清楚我们可以做些什么来
提高 LED 的性能和质量，
而不必求助于软件
解决方案来减少
成为创作一部分所需的三角形我们
决定做的是翻转
创作过程 所以我们首先建立我们的最低
损失，如果我们对
外观和性能感到满意，我们
开始添加
我们的
海尔 Misha 所需的细节，所以让我说明一下
这一点好一点，
我们构建了
我们想要处理
树或任何其他资产的最低负载的组件，
通常是三角形或四边形，我们
花了少量时间勾勒
出纹理或轮廓
的外观 就像然后我们开始
用
我们在整个
地平线开发过程中使用的高速公路构建我们的资产，当我们
对结果感到满意时，我们
在游戏中生成这些资产，查看诸如
性能轮廓密度之
类的东西 如果我们
不满意，可以快速进行这些更改，
并且我们仍然可以在此阶段进行很多修改，
因此一旦我们觉得
资产有效，我们就会开始构建创建纹理
所需的高分辨率组件
是我们最终制作的一个分支的一个例子
我认为这是一个分支它
是我的 ISP 树的组合但是这些
高分辨率组件只要
它们匹配纹理和纹理
层 但是你
在开始这个资产时已经勾勒出来，只要
它们匹配
你就可以了，一旦我们
构建并布局了所有高分辨率模型
，我们将它们放入 Maya 进行纹理
烘焙，我们应用我们自己的着色器和
能够将这些网格
和纹理烘焙到我们
需要用于游戏模型的 UV 空间中，现在随着
这些纹理的烘焙和呈现，我们
返回到我们现在
将其视为第 3 批的速度模型，并开始将它们加载
到其他模型中 我们开始详细介绍的话
——第一个
你看到的围绕这些措施的小三角形是
一个小的解决方法，以确保在
快速阅读中 LOD
边界框是相似的，我们使用了
速度 3/6 路线制作，这是一个
我们需要做的一点事情是
确保它们完全对齐
新版本没有这个问题，
但我们不想
在管道或
项目的中途切换软件，我们更换了
速度模型 与我们的新低
链相结合，瞧，我们很高兴
顺便说一句，有人注意到我们
在快速的用户界面中撒了一个谎，
真的很容易做到，但当人们注意到时很有趣，
所以我们从速读中导出了很多
链 骨骼和 AO
到 FBX，然后我们使用
我们内部创建的自定义 Houdini 流程，该流程
采用该网格获取骨骼
和蒙皮数据，并将该数据
转换为我在本演示文稿开头描述的判断颜色
对我们来说，现在是
在 Maya 中设置资产并将其导出到我们的游戏中，
所以这就是典型
的三资产血链的样子，我们再次
使用高负载和低负载着色器
，您会注意到我们有
负载 4 和 5 中涉及的广告牌
我真的很想包含一些
关于广告牌的信息，但后来我
只是看了看，没有
什么特别之处，只是穿过平原，
所以这就是你所得到的，在这里你可以
看到我们的一种典型设置
另一个资产
好的阴影 Caston 我们用于 Cascades
用于隔间中的太阳阴影
Cascades 首先被调用 我们
只渲染 Lloyd，包括她的头发、
衣服和设备，这
意味着它们在
她自己和她的身边投下高质量的阴影
哦，我的植被在这个
Cascade Cascades 0 和 1 中没有供应我们的标准
标准阴影贴图，我们有一个
距离级联，它使用基于高度
场的系统来渲染阴影，
但让我们来谈谈 Cascade 0 和 1
标准阴影贴图，因为这些
在渲染这些阴影贴图时，植被会渲染到
其中吗？我们
做了一些不寻常的
事情 选择 LOD 进行阴影渲染的自然方法
是基于到相机的距离，
这会导致阴影明显弹出，
因为
当它出现时，地块之间没有交叉淡入淡出 阴影贴图
渲染但是我们在我们的级联之间进行交叉淡入淡出
所以我们
决定做的是将对象渲染到这个阴影
贴图中 基于固定距离，
每个级联只有一个对象，因此
渲染到级联 0 的每个对象都不会
选择很多，就好像它距离相机 5 米一样，
渲染到
级联 1 的每个对象都会选择很多，就好像它在
25 米远 从相机这
修复了阴影不弹出的问题，因为
当一个对象处于特定的
级联中时，如果它从一个级联过渡到另一个级联，它将始终使用相同的
阴影批次，
那么级联之间的平滑混合
将确保
在更改期间绝对没有弹出
对于不同的阴影负载，这会
增加渲染成本，但它
几乎完全解决了
阴影弹出的问题，这绝对
值得
，我有一个小电影，它运行得
很快，所以要注意，但我
也让它循环，所以你不要 不必
第一次就捕捉到它，但是
你去那里，所以在这里你可以看到
级联 0 和 1 之间的平滑过渡，
这是我们为植被和一些所做的另一件事
其他资产是我们
从我们的视觉日志
链中分离出我们的阴影投射器，所以虽然我们的视觉网格是
- 所以我们有两个阴影投射
网格，我们有六个视觉网格，
这是一个巨大的开始，
因为你真的可以紧缩
诸如三角形计数之类的东西，正如您
所看到的，我们的第二个加载阴影
投射器不再经过 alpha 测试，不再具有
动画效果，因此它尽可能便宜，
所以我们要
结束了 - 我们的演示即将结束
我希望你至少
喜欢它
来总结一下，让我最终列出一个简短
的东西清单
我提到了 DEP Prime
定制链 整个
打开的链很大 让你的
阴影施法者与你的视觉
网格分开 使用 yobs 放置系统和
帮助我们的一件事
是我们可以 ld 我们能够在内部完成所有工作
，这使得保持
迭代、不断变化和不断
削减性能变得如此容易，
所以这对我来说非常重要，所以我
要感谢你，我答应你一张
幻灯片 使用的参考资料就在
这里 没关系
哦 你的名字 我的名字 Thomas
我几乎欢迎 是的 III 确实有一个
问题你没有谈论雪
或雪对植被的重量的
错觉 灌木丛和另一个
顶部的雪光照射在它上面，所以
我只是想知道你是否经历
过任何类型的物理模拟，
或者没有，我欺骗了我们的雪
从着色器中的动态雪系统开始
，我们实际上会
有点像poccadot 顶部有一点白色的
东西，但它很贵，所以
我们最终创建了一个专用的
雪地资产，我们可以
在大雪地区
真正产卵 设置我们
知道雪很重，所以我们只是
把它往下推，重力让
重力发挥作用
排
好队，你是如何解决这些问题的
我们所做的只是一个近似值，所以
你会惊讶于你能
逃脱多少我的意思是我们的第一个阴影
投射批次是关于三角形计数的，
因为我们的视觉网格上的很多 3
在阴影投射事物中是如此 你知道
在树中它会全部存活它
只是粉碎那些三角形
并且虽然你知道继续检查你的
工作游戏并且
它最终会工作绝对干杯
先生你好我想问你一些
关于放置的问题嗯嗯
所以我 '已经看到并没有真正提到
艺术家的工具，比如你是如何
创作所有这些的，哦，你
在你的位置上迭代得
很好，好吧 III 可以
谈谈我们的位置系统
在我们的编辑器中运行的位置，这是一个 基于节点的
系统，我们结合了各种
世界数据，最终得到的是
密度图，所有这些都
在 GPU 上运行，你应该提到
想象你只是
在纹理上乘以纹理，然后
减去另一个纹理等等 您
知道您的酒店是否是森林，但
您知道之间有一条道路，
那就是您将那条道路乘以该
道路，使其变为黑色，
因此森林的密度仍然
为 1 但 n 在路上，我们将
所有这些东西叠加在所有
其他东西之上，我们通过管线观察诸如坡度
接近水流之类的
东西，所有这些你可以做的事情，你
需要让它以一种现实的方式工作，
并且 实时海绘
我们可以在这里实时绘画，但是我们
有一位艺术家来构建这些
规则集，因此
您知道的不是在道路上而不是在河流中进行分层，
然后建筑物中的其他人都可以
开始绘画 在森林里，或者你知道，
或者现在我们在开放的领域，他们有
能力画那个，但是有一位
艺术家定义了
他们画的时候会得到什么，所以我
不确定这是否回答了这个问题
是的 它回答了这个问题，
因为我还看到了 Ghost Recon
放置技术，而且
它在新的 Jeany 上要复杂得多，
它需要处理 CPU 表单，就像
你也得到了非常好的结果
，而且它几乎是真实的-
你的时间 ide 并且它需要你
在另一边的农场你
认为
你的 Technica 中缺少什么只是因为它是
你的技术而且它在 GPU 上我认为不太
好 III 完全相信我们的
解决方案 在游戏中
运行现在对我们来说很棒 它对我们
有用 在你得到的东西中缺少一些东西
哦是的 我有一个愿望清单
我们不能根据
我们现在拥有的任何数据轮换资产所以我们
想要的是 例如，有树木悬垂在
河流上或森林外面，
我们不能根据
河流的曲率或类似的东西进行旋转，这
是我现在要求的最大的东西之一
你知道
现在想想 好吧 你是否使用了某种
捕捉 某种捕捉来使
你的植被像摄影测量
那里有一棵树
摄影测量还可以
并注意这一棵 你看到
白杨树了吗 q
在 dlc 中使用白杨，我们做了更多的
摄影测量，因为这
也有点像你知道的，
让我们进行实验吧，让我们开始吧，
因为我们真的很疯狂，因为你会看到
就像我们需要刮掉性能，我
想最后说 所以，是的，你好，我
想谢谢你分享精彩的
演讲是的，
我特别想知道树木，
因为
你在树干和树枝的着色器中进行了一些运动
，甚至喜欢树木中最
重要的更坚硬的
部分mm -嗯
，如果我
在顶点着色器中动画的树枝上射击，
如果你正在
拍摄的任何东西都有一个力场，你如何
对待游戏玩法哦，不，我的意思是像我
会碰撞的箭头
例如，您拥有的树枝我会与树枝发生碰撞吗？
没有碰撞
就是碰撞，或者树木通常只是
代表其足迹的圆柱体，
因为我们需要切掉树木周围的导航网格
是的，我们需要一个低点
才不会撞到树上，但我们的
檐篷没有任何碰撞，
所以如果
它有与之相关的力场，它们就会
推开是的，是的，好的，谢谢，谢谢，
所以我 我对风力
场很好奇，它究竟是
如何产生的，比如阵风从哪里来
它只是我们游戏中定义的一个区域，
我们的天气系统使用
了其中的一些混合，
所以最大速度就像 33，所以我们从
0 到 10 的力场开始，然后
在 10 的比例下使用 0 的力场
20 的力场和 30 的力场
，我们将它们融合在一起，它们
就在那里，但它们是的，所以这个
力场具有像 flow in
flow max flow 数学这样的属性，谢谢，它
略高于我的工资等级，但
它就是 完全是他的工资等级，
我给了时间 我还有一个问题，
我的名字是罗宾，我想知道我
说我认为当角色走过它时，草
着色器的抓地力被弄乱了
，
嗯，我想我想知道，我
认为这没有放入任何 在
你提到的其他三个着色器中，
实际上我们没有任何
合金与草的相互作用，但这
是我们想要做的事情，它
再次出现在我的心理愿望清单上，
因为我认为如果你了解更多，那将是彻底和
愉快的 交互
当然会发生哦，在雪的背景下，
在雪地中行走
，同样的类似系统
可能在草的背景下工作，
或者只是你的意思是 DLC 中的雪
，我们是因为在 DLC
我们引入了一个系统，你可以
在雪地中弯曲是的，我们正在
研究在许多其他事情上滥用相同的系统，
非常酷，谢谢你，
好吧，就是这样