平博PINNACLE博士自学GPU编程开发流体软件不挑剔硬件配置8K水飞溅模拟只用8小时!
画面中的流体不管从哪个角度来看都非常逼真,十分符合物理规律,大家都知道现在在影视特效领域使用传统的技术制作超写实的各种流水并不是问题,唯一的问题是需要大量的时间来模拟解算!用Realflow简单解算个水冲咖啡都需要解算个几十分钟,那像这样的流体得花费多久呢?
准确的回答是:整个模拟过程大约花了8个小时完成,生成8K高清图像的光线个小时!等等,先别急着惊呆!
这是使用具有2个Intel Xeon 6979P处理器的电脑模拟了雨滴溅起的情景。这个过程中,电脑处理了43亿个单元,占用了大约380GB的内存空间(无FP16内存压缩)。
8K分辨率意味着每一帧都有3300万像素,在模拟中,每个像素点最多会计算10条光线,包括两次反射和折射效果,整个模拟场景中的每个水滴都会影响光线的路径。最终生成的PNG图片文件加起来就有48GB这么大。处理这么高分辨率的图片和视频非常困难,因为大多数免费的视频编辑软件都不支持这种高分辨率,只有FFmpeg软件可以免费处理。
现在的GPU虽然强大,但它们的显存容量有限。相比之下,CPU就没有这样的限制。比如,使用两个Intel Xeon 平博 平博PINNACLE 体育6979P处理器的计算机,可以支持高达6TB的MRDIMM内存,带宽可达1.7TB/s,全部都在统一内存中运行。这对于无法划分为多个内存域的算法尤其有益,比如FluidX3D软件中用到的那种快速光线追踪技术。
这位博士为了解决了用传统的商业CFD软件来做流体模拟,计算时间拖得很长,甚至达到几十年的问题!学会了GPU编程,自己动手制作了一个流体模拟软件,并且把这个过程的时间缩短到了几天。
现在,他开发的这款名为FluidX3D的软件,可以让大家快速地进行模拟,而且这个软件可以在各种不同的电脑上运行,帮助人们解决很多视觉上的难题。当然,或许对于我们视效制作来平博 平博PINNACLE 体育说用处不大,但是对于各种工业级的测试很有用,比如飞机和汽车的风洞测试,阻力测试等等。
并且它使用了最尖端的技术来模拟液体的流动和表面张力,这样可以非常精确地展现水等液体的自然行为,实现高精度自由表面模拟。与自定义OpenCL图形引擎配合使用,可以实时生成高质量的图像,图像的清晰度可以达到电脑内存所能支持的最大水平。这样生成的水波、水花等效果会十分逼真。
FluidX3D允许直接在RAM中渲染原始模拟数据,因此不需要将大型体积文件导出到硬盘。
光栅化和光线追踪都是通过OpenCL完成的,并且适用于所有GPU,即使是那些没有RTX/DXR光线追踪核心或任何渲染硬件的GPU(如A100、MI200等)。
如果没有显示器(比如在远程Linux服务器上),还有一种ASCII渲染模式可以在终端中交互式地可视化模拟(即使是在WSL和/或通过SSH的情况下)。
当禁用交互图形模式时,图像分辨率可以根据RAM的容量设置得非常高(4K/8K/16K及以上)。
标志线框/实心表面(以及如果使用扩展,则固体单元或表面压力上的力矢量);速度场(带切片模式);流线(带切片模式);速度着色的Q准则等值面;基于Marching-Cubes算法的自由表面光栅化;基于快速光线网格遍历和Marching-Cubes算法的自由表面光线条光线。
另外,FluidX3D是用 OpenCL 1.2 编写的,因此它可以在所有供应商的所有硬件上运行(Nvidia、AMD、Intel 等)!用过这款软件的同志们,基本上都是清一色的好评!
译文:我刚在自己4年前的中等配置电脑上(有GTX 1660 Super显卡,用的是这里展示的河流演示)试了一下,结果几乎能实时运行!(大概15帧每秒,我没仔细数)。真想不到要让这么复杂的流体模拟跑得这么快,你们真是太厉害了!而且你们的说明也写得很好,我不到5分钟就装好跑起来了。
译文:我真不知道你为了做出这些好看的动画,写程序用了多久、有多麻烦!我对物理不懂,但我知道编程很复杂,你做的这些东西真的太厉害了!
译文:作为一名航空航天工程专业的学生,这真是太不可思议了,谢谢你制作了这个工具!
扫一扫关注微信公众帐号