本发明属于舰船航行cg动画设计,尤其涉及一种无人艇高速航行尾流的cg动画设计。
背景技术:
1、近年来,传统的大型水面舰艇已经无法满足我国日益增长的发展需要。具备无人化、智能化、体型小、航速高等特点的无人艇,有了越来越广泛的应用。无人艇在低速行驶时,运动方式和大型水面舰艇相似,但是随着航速的增加,无人艇的舰体姿态开始发生改变,舰艏逐渐抬起在水面上航行,舰体与水面的接触逐渐减少,高速的水流即流载荷又会给高速无人艇新的扰动力。同时由于无人艇体型小,重量轻,在海面上行驶时,相比大型水面舰艇更容易受到海风即风载荷扰动的影响,因此高速无人艇与大型水面舰艇之间的航行尾流有较大区别。
2、流体的碰撞模拟一直是海战场环境模拟的重点难题,因为其需要消耗大量的时间和计算机资源,目前主要采用的是sph(smooth particle hydrodynamics)即光滑粒子动力学方法对流体进行模拟。比如,在专利《一种基于sph的真实感湍流模拟方法》(申请号:201911155152.8,申请人北京航空航天大学)、文献《非均匀粒子流体模拟》(谭诗瀚,《计算机工程与设计》2011年第8期)、文献《基于sph的统一流体模拟及细节优化研究》(华磊,江苏大学2021年硕士论文)中,都是通过sph方法对流体进行模拟。
3、sph方法将流体离散化成一系列粒子,通过ns(navier-stokes equations)方程求解得到线性常微分方程odes(ordinary differential equations),将求解的属性插值到粒子上,对粒子属性进行更新,因此sph方法在对流体进行解算时需要处理大量的粒子,导致计算量非常大。由于无人艇航行时流体粒子模拟仅在海洋表面进行,海洋表面以下大量粒子对流体模拟没有任何贡献,因此造成很大的计算资源浪费;现有的对大型水面舰艇的流体模拟方案,还存在未考虑风载荷和流载荷等扰动因素对无人艇高速航行的影响。
技术实现思路
1、鉴于上述现有技术方案的不足,本发明提出了一种无人艇高速航行尾流的cg动画设计方法,采用基于narrow band的flip流体模拟方法,可以高效解决cg动画设计中无人艇高速航行尾流模拟的问题。
2、为了解决上述问题,本发明采用的技术方案概述如下:
3、一种无人艇高速航行尾流的cg动画设计方法,包括:确定无人艇高速航行的运动轨迹、运动速度及碰撞对象;为高速行驶中无人艇添加风载荷和流载荷的随机扰乱速度场;基于narrow band技术进行flip流体碰撞解算模拟;利用自定义的扰乱速度场对流体碰撞解算进行不规则扰乱;使用流体碰撞解算中的涡度数据作为无人艇航行尾流white water的发射源;对无人艇高速航行尾流进行模拟解算。
4、进一步的,获取所述无人艇运动轨迹上的模型数据,利用vdb from polygon把无人艇模型数据由polygon转换为sdf距离场,然后利用sdf距离场数据生成完全闭合的实体模型,利用完全闭合实体模型通过collision source创建与海洋表面碰撞的volume体积采样对象。
5、进一步的,所述风载荷是基于perlin noise函数,p为采样点、k为频率、n为分形迭代次数、a为强度:
6、
7、通过perlin noise函数对无人艇模型点的位置p进行采样,设置频率和迭代次数,在x、y、z三个方向上生成随机数值。
8、进一步的,所述流载荷是通过scatter利用density属性对无人艇模型进行散布点,利用curl noise函数:
9、
10、对散布点位置p属性进行处理生成随机扰乱数据,并和模型中心点位置的p属性进行相减处理,把处理结果进行normalize规格化后,和一个可控的自定义常量参数相乘,最后赋予模型散布点的速度属性v。
11、进一步的,利用vector to float节点随机数值由向量转换成x、y、z三个方向的常量,然后把x和y属性分别和一个可控的自定义常量参数进行相乘用于控制x和y属性的大小,把相乘后的x、y以及z三个常量通过float to vector节点转换成向量,随后和无人艇原航行速度进行相加。
12、本发明的有益效果是:
13、本发明提出了一种基于narrow band的flip海洋流体碰撞模拟方法,通过使用perlin noise函数和curl noise函数随机生成的风载荷和流载荷速度场,可以逼真模拟海战场环境中无人艇航行时受到海风和海浪等扰乱因素影响;通过基于narrow band的flip技术,将流体模拟粒子限定在narrow band中,让无人艇的碰撞模拟仅在海洋表面进行,无需进行水下的粒子交互,减小了对计算机资源的消耗,提高了模拟解算效率。因此本发明模拟速度快、占用资源小、可控性强,能高效模拟更加符合物理真实的高速无人艇航行尾流的cg仿真动画。
1.一种无人艇高速航行尾流的cg动画设计方法,其特征在于:确定无人艇高速航行的运动轨迹、运动速度及碰撞对象;为高速行驶中无人艇添加风载荷和流载荷的随机扰乱速度场;基于narrow band技术进行flip流体碰撞解算模拟;利用自定义的扰乱速度场对流体碰撞解算进行不规则扰乱;使用流体碰撞解算中的涡度数据作为无人艇航行尾流whitewater的发射源;对无人艇高速航行尾流进行模拟解算。
2.根据权利要求1所述的无人艇高速航行尾流的cg动画设计方法,其特征在于:获取所述无人艇运动轨迹上的模型数据,利用vdb from polygon把无人艇模型数据由polygon转换为sdf距离场,然后利用sdf距离场数据生成完全闭合的实体模型,利用完全闭合实体模型通过collision source创建与海洋表面碰撞的volume体积采样对象。
3.根据权利要求1所述的无人艇高速航行尾流的cg动画设计方法,其特征在于:所述风载荷是基于perlin noise函数,p为采样点、k为频率、n为分形迭代次数、a为强度:
4.根据权利要求1所述的无人艇高速航行尾流的cg动画设计方法,其特征在于:所述流载荷是通过scatter利用density属性对无人艇模型进行散布点,利用curl noise函数:
5.根据权利要求3所述的无人艇高速航行尾流的cg动画设计方法,其特征在于:利用vector to float节点随机数值由向量转换成x、y、z三个方向的常量,然后把x和y属性分别和一个可控的自定义常量参数进行相乘用于控制x和y属性的大小,把相乘后的x、y以及z三个常量通过float to vector节点转换成向量,随后和无人艇原航行速度进行相加。
