投稿
  • 动态
  • 文章
  • 视频
  • 音乐
  • 帖子
    • 中文
    • English
  • 注册
  • 查看作者
    • 实时处理水下焦散

      介绍

      大家好,我叫Timothy Cole,是一名虚幻引擎美术师。我在大学学习了电脑游戏的 3D 艺术,但一直对电影充满热情,所以我试图在这两个领域都有所参与。我最初开始在悉尼的一家动画工作室工作,使用 Unreal 制作游戏过场动画和预告片。从那里我参与了实时动作捕捉,这导致与 Guy Norris(特技导演 Mad Max Fury Road)合作,并且刚刚完成了 Xmen Dark Phoenix。我在 Unreal 中负责实时预览方面的工作,并在 VR 中构建了一个虚拟摄像机设置,以便导演和摄影师可以在场景构建之前拍摄整个序列。除此之外,我还是 SpectreVR 多个 VR 项目的虚幻引擎负责人。

      实时处理水下焦散

      实时处理水下焦散

      我认为对于任何内置的游戏引擎来说,拥有一个真正的流体模拟或物理上准确的东西都太昂贵了,所以挑战就变成了你如何将不同的元素分层以尽可能接近你的参考。首先加载参考以真正可视化您要创建的内容,但选择一个参考作为您的“英雄”。有时,如果您在多个图像中匹配颜色/纹理,很容易迷失方向,并且最终看起来不像任何一个!所以选择一个你试图接近的主要的。

      对于这个项目,我有一个 Pinterest 持续参考板,我的英雄参考是 Sean Howard 的这张照片(instagram:@sean.howard)。

      实时处理水下焦散

      实时处理水下焦散

      在实时材质方面,我尝试使用不透明材质,而不是依赖半透明。半透明很昂贵,并且不像不透明材料那样对照明做出很好的反应,但这实际上归结为水的使用。如果玩家粘在水的一侧(无论是进水还是出水),那么您可以使用不透明的材料,但如果它们能够进出,您可能需要使用半透明材料。

      在这个场景中,唯一的半透明材质位于表面粒子上,即使如此,混合模式也设置为加法。

      实时处理水下焦散

      实时处理水下焦散

      分层

      这都是关于分层。我将其分解为单独的元素:水面、光源和体积粒子。

      对于水面,我在平面上有一个反射的平移水材料。这实际上是不透明的,因为我只想专注于水下,而从下面看时,参考表面可能会令人惊讶地不透明!在此之上,我有一个波纹粒子,它会扭曲表面并赋予它更有机的感觉。水的边缘也有波纹粒子,以假装边缘周围的重叠相互作用。

      我将在接下来讨论的照明设备。

      灯光 

      灯光已经演变成一个有点复杂的装备,但只是从查看我的参考资料并逐层分解它开始。

      它基本上是从表面到深度,从透明到深蓝色散射的渐变。同样在焦散方面,将它们视为靠近表面的焦点,随着深度的加深而逐渐模糊。

      实时处理水下焦散

      实时处理水下焦散

      此外,一些灯关闭了阴影,而那些打开了阴影的阴影分辨率比例为 0.2。这有助于在水下创建柔和的阴影,也有助于提高性能。

      我还在指数高度雾中使用 UE4 中的新体积。对于这个项目,我没有过多地更改雾设置,只是将密度设置为 0.5,将雾内散射颜色设置为黑色并打开体积雾。

      我从焦散的轻材料功能开始。它基本上是 2 个不同比例的平移纹理,被大量柏林噪声扭曲 UV。然后用正弦将这两层相互混合。然后将其乘以 0.8 不透明度的灯光。

      实时处理水下焦散

      实时处理水下焦散

      然后我将其应用到聚光灯下。焦散在表面附近最为清晰,因此我将衰减衰减保持得很短。这开始是一束白光,但我真的很想模仿光谱分裂,所以我作弊并将这盏灯分成 3 盏灯,彼此稍微偏移。每一种都具有相同的材料功能,但颜色为红绿蓝。

      实时处理水下焦散

      实时处理水下焦散

      实时处理水下焦散

      实时处理水下焦散

      然后在顶部的第二个聚光灯具有更大的衰减,因此它更深入到音量中。它也被染成蓝色,因为这是从水中伪装的主要光线。此图层上的阴影已关闭。该灯光使用相同材质函数的实例,但是我更改了纹理的 mip 偏差,使它们变得模糊。如果您喜欢或实际上在 Photoshop 或 Substance 中模糊纹理,您可以在此处使用不同的纹理,但我发现这个小技巧同样有效且成本更低。该光被烘焙以提供间接光。

      实时处理水下焦散

      实时处理水下焦散

      下一层是深度散射,所有光的衰减最大。我还将这盏灯的体积贡献提高到 10。

      实时处理水下焦散

      实时处理水下焦散

      最后,我在顶部添加了一个白光,只是为了中和一点颜色并夸大光源。

      实时处理水下焦散

      实时处理水下焦散

      最后将所有层放在一起:

      实时处理水下焦散

      实时处理水下焦散

      移动

      我对虚幻中的物理领域还很陌生,并且物理引擎已经在最新版本中进行了改进,所以我正在使用这个项目来学习它。当前的设置是使用隐形碰撞器来使角色移动。我关闭了重力并抑制了响应,使其具有更飘逸的感觉。我也在处理动作捕捉数据并在顶部混合物理。我认为这将是我最终使用的路线,因为这意味着模拟更稳定。体积内的 GPU 粒子应用了速度场,这有助于产生水体的错觉。

      这可以在实时环境中使用吗? 

      确实。我构建的任何东西都是在考虑可扩展性的情况下构建的,以这样的分层方式构建环境可以更容易地优化。例如,您可以轻松地使用一层或两层灯光设置和/或关闭阴影,然后立即适用于低规格机器。主焦散层上的 RGB 分割很容易只是一束白光。

    • 0
    • 0
    • 0
    • 123
    • 请登录之后再进行评论

      登录
      • 大版主
      • 小版主

      暂没有数据

      暂没有数据

    • 发表内容
    • 实时动态
    • 偏好设置
    • 到底部
    • 单栏布局 侧栏位置: