我的订单|我的收藏|我的商城|帮助中心|返回首页
搜维尔[SouVR.com]>服务>案例分享 应用研究>案例分享>游戏动画

使用Unity HDRP创建逼真的体积云

文章来源: 作者:frank 发布时间:2021年11月08日 点击数: 字号:

近几十年来,flat-painted skyboxes和HDRIs一直是天空和云渲染的首选解决方案。而现在,通过HDRP全新的体积云,你可以用动态云填充你的世界。对于系统的第一次迭代,Unity关注的更多是性能和易用性,因此你只需点击几下鼠标,就能以较低的图形处理器成本创建出漂亮的视觉效果。

云渲染的简史

直到上一代游戏机淘汰之前,体积云技术在游戏中应用的情况一直是非常罕见的。立体的云,即占据世界中物理空间的云,通常仅限于飞行模拟器和少数开放世界的游戏。

造成这种情况的主要原因是渲染这种云的成本非常高。具体来说,当依赖于光线跟踪或光线行进时,计算穿过云的光散射是一项费时费力的工作。而另一个原因则是,大多数3D游戏只需在地面(例如,地形或海洋)上进行,因此它们不需要动态天空系统或是飞行在云端上方的相机来推动游戏的进度。

因此,许多3D应用程序就选择使用静态纹理来塑造云朵,如立方体贴图或简单的透明材料作为替换。通常,这些场景都是在离相机无限远的地方进行渲染,因此云朵不会与地面世界完全相连接,这样做的的优点是可以以非常低的成本为静态场景提供足够的质量。

随着实时3D渲染的进步和硬件性能的提高,一个新的动态体积云的时代开始了。这打开了全新视觉体验的大门,这一切都可以通过Unity的高清渲染管道(HDRP)实现。

体积云受Volume Framework’s global wind影响可投下真实的阴影。它们与Volumetric Fog和Physically Based Sky一起创造出令人印象深刻的体积太阳轴和令人瞠目结舌的日落效果。

而天空反射和环境探测,以及局部反射探测和平面反射,可以渲染云。这一过程组成了Unity全新的体积云系统,该系统可以与大多数其他HDRP系统无缝交互。经测试该系统在PlayStation 4(非PS4 Pro)上的延迟约为2ms,在最近的出厂的高端GPU上的延迟远低于0.5ms。

易于设置

Unity中创建体积云只需要简单的几步即可完成。第一,确保启用HDRP资产和HDRP Global Settings,以启用“体积云”。

这只是一个使用材积平分法来控制体积云的方式。如大多数HDRP效果一样,只需选择现有的(全局)卷或创建一个新的卷,并将其分配到一个体积云组件中然后再添加到其配置文件中即可实现。其中有许多参数可以控制云的类型、风、光、阴影以及云的整体质量和成本。

借助简单模式下的四种内置预设,用户可以立即创建多种类型的云场景如:少云,多云,阴雨和暴风雨天气。对于这四种天气类型的调整,可以最大限度地提高云层下、内部和略高于云层部分的细节水平,最高可达10,000米(33,000英尺)。

本地云模式会影响飞入和飞过云的能力,同时也会间接影响性能水平。

当本地云模式被禁用,被渲染的云会离相机非常远。这使用户可以将相机远平面保持在非常合理的距离。但很显然这种模式会让相机远离云层。

当本地云模式被启用,相机可以在云层下方、内部和上方进行导航。但是,为了与地平线有足够高的视距,可能需要将相机远平面增加到100,000米以上,这具体取决于体积雾的密度。

出于这个原因,如果项目不需要摄像机飞入云层并一直保持在云层之上,请将本地云模式禁用。这时你仍将获得相同的照明和阴影质量,同时能够保持较低的相机远平面距离。

如果你需要相机飞上云端,则可以启用本地云模式。至于基于物理的天空,体积云系统模拟了地球的曲率,因此云顶包裹着地球,并在地平线上提供了与陆地或海洋的真实连接。如果进一步弯曲云穹,你可以迫使它与世界相交汇,这意味着你可以大幅降低相机的远平面距离。

另外在场景中风受到了特别的关注,风再现了现实世界中常见的浮力现象。在Unity中对风有四种控制。例如,用户可以创建静态云,但通过侵蚀风,或者可以通过造型风我们可以创造出迷人的远景。

除了简单的模式下提供的四种预设之外,用户还可以使用自定义预置,该功能允许用户使用曲线和滑块控制大多数云的属性。这种模式非常强大,可以在几秒钟内用多层云创建各种各样的云景。

要创建太阳轴,只需切换体积雾属性并设置其最大高度和体积雾距离到几千米。这样,定向光就可以影响大气层,并在云层下产生美丽的阳光散射。

最后是手动模式,该模式支持专业用户创建云覆盖纹理和查找表(LUT),以便手动控制LUT定义的每个垂直云切片的位置。

渲染技术

云体积由2D覆盖贴图和LUT设定的不同高度剖面所驱动,该剖面指定了密度、侵蚀和环境遮挡等属性。使用两个3D噪声纹理来吞噬云体积,以生成不同的云形状:

形状噪声:生成大片云形状的低频噪声

侵蚀噪声:提供云层表面微观细节的高频噪声

在渲染时,HDRP的体积云系统使用光线行进,这是一种依赖于从相机向物体和光源分步投射光线的技术。在案例中,向云体投射初级光线来对云表面进行采样。然后,次级光线被投射到太阳上,以遮挡云层表面的像素。

为了进一步降低成本,同时将视觉降格降至最低,该过程以四分之一分辨率进行,并进行时间重投影和累积。这意味着云系统使用来自先前帧的样本来构建完整的结果。因此,当相机高速移动时,在必须渲染没有任何历史记录的云的部分时,可能会出现一些重影或重建鬼影。尽管如此,Unity仍然提供了一个非常有效的抗重影解决方案,该解决方案支持快速的相机移动和高风速场景。

需要特别注意的是薄的几何形状,如树叶等,不会产生任何明显的伪像,因为相邻云的像素通常很难分辨。

一天中,诸如日出和日落的这些时间对于塑造云来说是一个特殊的挑战,因为景观和天空之间的曝光差异很大,地球的曲率及其产生的阴影;太阳低垂场景中光散射的复杂性,以及光线传播的长距离对云的渲染都是挑战。

当前的限制和未来的改进

像任何系统一样,体积云系统需要在一定范围内表现最佳。目前,Unity针对摄像机位于云卷下方、内部和略高于云卷的情况进行了高度优化。因此,12公里(40,000英尺)以上的空间和位于极高海拔的场景并不特别适合当前的体积云系统,因为侵蚀贴面可能会变得非常假,如下图所示。

此外,Unity目前仅支持一个云卷。这意味着存在于所述体积中的所有云形状共享相同的噪声、风向和照明属性。未来,Unity将考虑支持多个云卷,以便对用户希望创建和制作动画的每一层云提供更精细的控制。

此外Unity还将增加对准点灯光和向云投射阴影对象的支持。这对在太空中或飞行模拟器中模拟带有闪光灯的飞船照射周围的云朵时非常有效。同时,局部体积雾也可以在某些静态场景中使用。

在视觉质量方面,Unity将考虑支持两个以上级别的噪声控制,为高级平台、交互式帧率和离线应用程序提供更高的画面质量。

电话:010-50951355 传真:010-50951352  邮箱:sales@souvr.com ;点击查看区域负责人电话
手机:13811546370 / 13720091697 / 13720096040 / 13811548270 / 13811981522 / 18600440988 /13810279720 /13581546145

  • 暂无资料
  • 暂无资料
  • 暂无资料
  • 暂无资料
  • 暂无资料