打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Unreal 海洋场景构建


导读


Ocean Simulation for Unreal 是一个使用虚幻引擎4制作的海洋模拟项目,较为逼真地模拟了海洋系统,包括焦散、浮力、海浪、暴风、海底鱼群、水下失真、水下焦散等效果。对于这个功能强大的项目,本文重点解析海面场景的构建过程。


效果展示:

高大上效果请戳原项目地址:

https://lab.uwa4d.com/lab/5b855a6702004fb659758add


细节放大后再来感受下波澜壮阔的宏伟之势:


使用方法


使用方法较为简单,作者已经将大部分重要参数可视化,直接在Detail面板中修改数值即可。


例如Heightmap栏中的参数:Scale决定海浪的范围大小,Speed决定流速,Displacement决定水量高度。



实现原理及方法


在计算机图形学中,流体仿真的其中一种做法是基于网格绘制,通过物理模拟(波动方程)来计算网格点位置,达到动态效果。此项目将这种思路简化,根据坐标计算每个点的位置及其渲染所需的参数。


此项目通过蓝图实现,较为重要的资源如下:

BP_Ocean类蓝图:用于初始化参数,并实例化材质。



  • MPC_Ocean材质参数集:保存渲染所需的参数,供多个材质使用。

  • MF_Gerstner_Wave材质函数:根据Gerstner Wave计算公式,计算偏移值和法线,用于模拟出水波尖锐的波峰效果。





  • MF_Gerstner_Wave_Set材质函数:根据MF_Gerstner_Wave材质函数传入不同的数值创造出8中不同的Gerstner Wave波形。

  • MF_Pannner材质函数:用于计算产生一个位移向量,模拟流动。

  • SSS材质函数:用于计算产生一个向量,模拟次表面散射效果。

  • Motion_4WayChaosShared材质函数:用于产生一个混合的材质,模拟海面气泡。


  • Motion_4WayChaos_NormalShared材质函数:用于产生一个混合的法线,用来做线性插值,参与颜色的计算。


不同的材质采用根据需要输入不同的参数,选择材质函数进行计算得到相应的功能。


例如M_Ocean材质的实现:


步骤一:使用Motion_4WayChaos_NormalShared产生两种法线向量:Medium Wave Normal与Detail Wave Normal。



步骤二:使用MF_Gerstner_Wave_Set得到Gerstner Wave Normal与Gerstne Wave Displacement。



步骤三:将三种法线经过运算后作为参数赋予SSS材质函数得到次表面反射效果。



步骤四:依据世界坐标、摄影机位置以及一些自定义参数进行透明度计算。


步骤五:依据次表面反射效果、透明度、海洋自定义基础颜色、自定义折射率等参数进行计算得出当前位置颜色。根据此像素与其后像素之间的距离,在基础颜色与场景颜色之间进行插值。


步骤六:使用此颜色,添加泡沫效果、进行Cubemap Reflection 与Fresnel Reflection计算,得到的颜色作为材质的基础颜色。

     

步骤七:材质的金属度、高光度、多边形细分乘数均为自定义变量。       

       

步骤八:自定义Roughness、DepthTest与粗糙度纹理进过计算进行插值得到材质粗糙度。 


性能测试


本次的性能测试选取使用M_Ocean材质制作的海洋场景进行PC端测试,为了排除其他因素的干扰,测试场景删除了部分Actor、地形,保留了人物与天空盒。

测试场景的海平面Mesh尺寸:

8192m*8192m

得到测试数据如下:       


图1


图2


图3


从测试数据可以看出测试的平均帧率为51.4(图1),考虑到测试场景只绘制了一个海面效果,这个帧率在PC上还是偏低的。


在“各线程总体耗时占比”中可以看到Render Thread耗时占55%(图2),是导致CPU耗时的主要因素,然后我们可以在报告的“代码效率-RenderThread”页面中具体查看渲染线程的具体堆栈信息。


在图3中可以看到,有一个占98%的函数“STAT_D3D11PresentTime”。这个函数表示CPU正在等待GPU的渲染工作完成,从截图中可知这个函数的耗时均值为17.28ms,非常高,由此可见,GPU渲染是一个主要的性能瓶颈。



Draw Call数量较少,面片数量相对PC平台较为合理。


综上所述:

帧率较低的原因是渲染流程过长,参照项目中Material的构建蓝图,可以看出实现越好的模拟效果所需要的渲染时间会大幅增加。

开发者需要在实现效果与性能之间权衡,达到流畅又逼真的模拟效果为佳。


系统信息:


显卡信息:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
软件小讲堂 | 如何快速获取法线贴图
Cinema 4D实例教程(微课版)PPT 第5章
法线贴图工具包及3ds max模型烘焙技巧
17 函数
初识C4D:材质编辑器(材质通道)
比VLOOKUP函数好用十倍的自定义函数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服