发明名称 一种基于SPH的运动物体与水交互的仿真建模方法
摘要 本发明涉及一种基于SPH的运动物体与水交互的仿真建模方法,属于计算机图形学与虚拟现实领域。本发明的方法包括以下步骤:一、对仿真进行初始化,包括粒子属性的初始配置和建立粒子的相邻粒子列表;二、对水粒子的相邻粒子列表进行更新;三、计算水粒子在下一步时间步的位置和运动状态;四、计算物体粒子在下一步时间步的位置和运动状态;五、判断粒子与障碍物是否发生碰撞,如果发生碰撞,则改变粒子的运动速率和方向,否则直接执行第六步;六、基于marching cubes算法构建水面拓朴结构;七、采用图形绘制语言,进行水面和物体的绘制和显示;八、判断仿真是否停止运行。使用本发明所述方法可以模拟运动物体与水的交互现象,获得比较真实的仿真结果。
申请公布号 CN101329772A 申请公布日期 2008.12.24
申请号 CN200810116898.3 申请日期 2008.07.21
申请人 北京理工大学 发明人 李凤霞;赵欣;黄天羽;李立杰;陈宇峰
分类号 G06T17/00(2006.01);G06T17/20(2006.01) 主分类号 G06T17/00(2006.01)
代理机构 北京理工大学专利中心 代理人 张利萍
主权项 1、一种基于SPH的运动物体与水交互的仿真建模方法,包括以下步骤:一、对仿真进行初始化,包括粒子属性的初始配置和建立粒子的相邻粒子列表,首先将物体和水进行粒子化,即将物体和水用粒子的形式来表达,建立包含物体粒子和水粒子的粒子集合,同时对集合中的粒子属性进行初始配置:1)确定物体粒子和水粒子的数量;2)建立粒子集合的位置数组和速度数组;3)初始时按照物体和水的形状等间隔分布粒子,并将每个物体粒子和水粒子的初始位置保存到位置数组中,同时将每个物体粒子和水粒子的初始速度设置为零;4)设置每个粒子的质量、密度、压强等常数属性,同时为所有粒子设定统一的粒子支持域半径,即光滑核半径;5)仿真的初始时间设置为t=0,并定义时间步常量TIME_STEP;对粒子集合进行初始配置后,为每个粒子建立粒子的相邻粒子列表,即为每个粒子寻找位于其支持域内的所有粒子,列表中包含位于粒子支持域内的所有粒子的索引值;二、仿真时间步向前推进一步,对水粒子的相邻粒子列表进行更新;三、计算水粒子在下一步时间步的位置和运动状态;四、计算物体粒子在下一步时间步的位置和运动状态,具体步骤为:1)计算物体粒子j所受浮力fj float 2)计算物体粒子j的重力fj gravity 3)计算物体粒子所受合力Fj 4)计算Fj作用下的平移加速度aj 5)计算物体粒子的平移速度velj+1 6)计算物体粒子的旋转速度vel′j+1 7)计算物体粒子在下一刻的速度vj+1=vel′j+1+velj+1 8)计算物体粒子在下一刻的位置xj+1=xj+vj+1Δt五、根据计算得到的粒子位置判断粒子与障碍物是否发生碰撞,如果发生碰撞,则改变粒子的运动速率和方向,否则直接执行第六步;六、基于marching cubes算法构建水面拓朴结构,具体步骤为:1)由非规则分布的粒子数据产生出规则分布的水流密度场数据,即生成规则分布的标量(密度)数据场,具体做法是:将网格节点作为流场中的规则采样点,节点的采样值通过SPH插值来计算;2)确定水面的密度值,作为等值面的阈值;3)基于Marching Cubes算法进行水面抽取,即从水体密度场中抽取出水体表面的密度等值面,进而构建出水体表面的拓朴结构,完成水面绘制;七、采用图形绘制语言,如OPENGL或DIRECTX,将第六步所生成的三角形网格传输到显卡进行水面的绘制和显示;同时,以物体的重心位置为基准,以三角面片的形式绘制出物体;八、判断是否有人为关闭仿真进程的行为或仿真结束时间到,如果有,则仿真停止运行;否则仿真继续,重复执行二~七步。
地址 100081北京市海淀区中关村南大街5号
您可能感兴趣的专利