在揭秘《死者之书》的系列文章中,我们已经分享了:

揭秘《死者之书》之概念艺术
揭秘《死者之书》之角色资源创作
揭秘《死者之书》之环境资源及特效创作

本篇文章将由Unity Demo团队环境艺术家Julien Heijmans从内容创作者和环境艺术家的角度,为我们提供一些关于《死者之书》制作过程的深入解读。本篇文章我们将关注点放在风系统、场景地形和内容优化技巧。

Unity与Quixel的合作

我们不仅仅让《死者之书》只供人欣赏,我们还提供了这个项目中的环境资源,前往Asset Store资源商店搜索“Book Of The Dead: Environment“,即可免费下载。

在此资源文件中,我们在使用了摄影制图法进行创作。而其中一些资源来自Quixel公司Megascans库的扫描环境艺术资源,Unity与Quixel在这个项目的制作上达成了紧密的合作。

140303h8umvppjc88lvs47.png

  • 顶点颜色的绿色通道数值为0时,表示这个部分是树干。
  • 数值在0和1之间则是A级树枝。
  • 数值为1则是B级树枝。


这部分任务使用了Maya完成,通过使用一些小脚本,可以在10-15分钟内设置好一个资源的所有LOD。

除此之外,我们还使用了“Flutter Mask”(抖动遮罩)。抖动遮罩是纹理遮罩,能够帮助确定在几何上树枝的轴心位置。下图是这个遮罩的图示。

140305dy4yytxw4kl447du.png
该脚本首先会在变换位置周围生成指定数量的零散对象,然后为它们模拟落到地面的物理效果,它们落下后会与地形、资源岩石、枯萎树干等相互碰撞。然后按下按钮“Bake”,小树枝的碰撞体会被移除,合并为单个对象,然后指定给一个带有特定剔除距离的LODGroup。


此脚本在场景中被应用于名为“UberTreeSpawner”的对象,你可以根据需要随意使用它。

关于此工具的附注:为了使零散对象适当落在地面和资源上,在场景中的所有资源上需要有较高密度的网格碰撞体。同时在游戏运行时,这些大型碰撞体不能被使用。 出于这个原因,场景中的多数资源带有二个不同的碰撞体:一个是轻量的,会被PlayerController用在运行模式的实时环境中,指定为默认图层。另一个则用于小树枝的物理效果模拟上,指定为GroundScatter图层。

光照

《死者之书》项目使用了带有实时方向光的已烘焙间接全局光照。

来自太阳的间接光照和来自天空的直接加间接光照都被烘焙到光照贴图和光照探针中。反射探针、遮蔽探针和遮蔽源也会被烘焙。另一方面,直接太阳光阳光直射贡献也是实时光照。在使用实时直接光照时,在HD渲染管线中的着色效果最好,它也能让我们给运行时方向光的旋转、强度和色温设置动画。

140307rff7751idi51mcai.png
注意:我们添加了额外的滑块来分别控制直接和间接透光,从而能够让最终结果有更好的可控性。但这个改动并不遵循PBR原则,所以不会将它加入HD渲染管线。

Area Volumes

Area Volumes被构建在由SRP提供的核心系统上,与Post Process Volumes非常相似。它们的功能根据主摄像机对象的位置修改对象属性。

包括方向光照、大气散射、自动聚焦和WindControl在内的多个对象都有受Area Volumes控制自带属性,因此,如果想要修改当前的光照设置,则需要在对应Area Volumes中进行操作。那些Area Volume对象在主场景中,位于_SceneSettings > _AREASETTINGS目录下,带有后缀“_AV”。

调试窗口

针对使用HD渲染管线不多的用户,现在有一个特定的SRP调试窗口,你可以通过菜单Window > General > Render Pipeline Debug打开它。

140307dve3ttzwbp6t4sr1.png
140308mdd6wp6rdsz7siy8.png
通过这种方式,你可以看到独立的GBuffer图层、光照组件或是材质中的特定纹理贴图,或甚至是重写反照率/平滑度/法线。当一些对象没正确渲染或是有视觉bug时,这是个非常有用的工具。它会帮助你更快标出问题的源头。

这些调试视图是从着色器自动生成的,编码器能够非常轻松地创建新的调试视图。

140308omzbhmb84mfpk0tv.jpg
有一些调试视图能够从渲染管线调试窗口打开

我们使用这些调试视图来创建在场景背景中使用的树状广告牌。过程很简单,仅需把自定义资源放到空白场景中,然后捕获带有可见反照率、粗糙度和法线Gbuffer图层等属性的截图,然后将它们用来创建自定义的纹理贴图。

优化

虽然优化的大部分内容属于代码部分,但如果你想要拥有合适的帧率,合理设置好资源和场景也很重要。

下面是一些为项目优化内容的方法:

 

 

  • 所有的材质都使用了GPU实例化(GPU Instancing)。
  • 我们对场景中的多数资源使用了LOD。
  • LOD交叉淡入淡出(The LOD Crossfade)功能很棒,它能够给不同细节等级的对象带来好看又平滑的混合效果。但这个功能消耗性能,而且会提升项目中的绘图调用。所以尽可能在大量资源上禁用这个功能。
  • 为了避免LOD之间的可见过渡区域,我们在大型石块和峭壁资源上使用对象空间(Object Space)法线贴图。

none.gif
none.gif
注意:这里使用的是对象空间法线贴图,而不是切线空间(Tangent Space)法线贴图,这样做会降低法线贴图的精度。实际上,这在我们那些粗糙的资源上并不明显,但你或许不想要把它用在硬表面资源上。

 

 

  • 尽管通过构建场景和遮蔽剔除限制视野距离很重要,但你也要知道,这其中的不少用于渲染场景的绘图调用实际上来自渲染每个阴影的联级地图。
  • 我们有大量来自散落在地形的小型植被资源的绘图调用,有些位置会有成百个绘图调用。通过创建草和植物资源的大型补丁,我们减少了大量绘图调用,现在没有数百个,只有15-20个。
  • 请注意:这会对视效质量有影响,如此庞大的资源,很难避免岩石和地上的资源不与草相互切分。
  • 我们使用了图层剔除功能,这是Unity中已有的功能,但却没有任何UI。此功能允许你根据对象与摄像机之间的距离,剔除被指定为特定图层的对象。

Torbjorn拓展了这个功能,使之能够剔除这些对象在不同距离的阴影投射。例如:我们的大部分小型植被资源会在15米左右停止投射阴影,由于有地面上的草丛和植物,这个效果并不明显,在25米左右的对象会被完全剔除,不管它们的LODGroup如何设置。

参考资源

《死者之书》环境资源下载:

https://www.assetstore.unity3d.com/en/?stay#!/content/121175

Quixel Megascans资源下载:

https://assetstore.unity.com/publishers/26035

小结

我们将继续分享《死者之书》的创作过程,在下篇文章中我们将探索《死者之书》中创建着色、光照和后期处理等内容,尽情关注。 更多Unity项目创作经验尽在Unity官方中文技术论坛(UnityChina.cn) !

via: Unity官方平台

锐亚教育

锐亚教育,游戏开发论坛|游戏制作人|游戏策划|游戏开发|独立游戏|游戏产业|游戏研发|游戏运营| unity|unity3d|unity3d官网|unity3d 教程|金融帝国3|8k8k8k|mcafee8.5i|游戏蛮牛|蛮牛 unity|蛮牛