粒子映射方法和装置制造方法及图纸

技术编号:16347008 阅读:29 留言:0更新日期:2017-10-03 22:42
本发明专利技术公开了一种粒子映射方法和装置,属于计算机技术领域。方法包括:读取第一区域的第一子区域包括的每个第一粒子的粒子数据,确定该每个第一粒子对该第一中心网格的第一影响力之和以及第一权重之和;从第二存储空间中获取第二子区域中的每个第二粒子对该第一中心网格的第二影响力之和以及第二权重之和,从第三存储空间中获取第三子区域中的每个第三粒子对该第一中心网格的第三影响力之和以及第三权重之和;根据该第一影响力之和、该第一权重之和、该第二影响力之和、该第二权重之和、该第三影响力之和以及该第三权重之和,确定该第一中心网格的平均影响力;将该第一中心网格的影响力设置为该平均影响力。提高了粒子映射的效率。

【技术实现步骤摘要】
粒子映射方法和装置
本专利技术涉及计算机
,特别涉及一种粒子映射方法和装置。
技术介绍
随着计算机技术的发展,终端可以在统一计算设备架构(ComputeUnifiedDeviceArchitecture,CUDA)运算平台中求解流体的平流运动,从而实现对流体运动的模拟,比如,火焰、水流等。而终端在CUDA运算平台中求解流体的平流运动时,往往先需要对流体中的粒子进行映射处理,即,通过确定三维空间中每个网格承受的周围粒子的影响力,从而将流体中的粒子映射到三维空间的网格中。现有技术中,终端的内存空间中存储流体中的每个粒子的粒子数据,粒子数据包括位置信息和预设物理量。其中,预设物理量包括密度、速度和温度中的至少一个。在对流体中的粒子进行映射处理时,终端将当前的三维空间划分为多个立方体,每个立方体包括27个网格,每个网格为以单位长度为边长的单位立方体。终端中同时运行多个线程,通过一个线程对一个立方体中的粒子进行映射处理。对于每个立方体中的每个网格,终端通过一个线程从内存空间中读取粒子集合中的每个粒子的粒子数据,粒子集合包括该网格包括的粒子以及该网格周围的26个网格包括的粒子。终端根据该粒子集合中的每个粒子的位置信息,将该粒子集合中的粒子映射到该网格中,根据该粒子集合包括的每个粒子的位置信息和该网格的位置信息,分别计算该粒子集合包括的每个粒子与该网格之间的权重。终端根据该粒子集合包括的每个粒子与该网格之间的权重,以及,该粒子集合包括的每个粒子的预设物理量,通过以下公式一计算该粒子集合包括的每个粒子的预设物理量对该网格的影响力之和。终端计算该粒子集合包括的每个粒子与该网格之间的权重之和,将该影响力之和与该权重之和之间的比值确定为该粒子集合包括的每个粒子的预设物理量对该网格的平均影响力,将该网格的预设物理量的影响力设置为该平均影响力。公式一:Φ=ΣWiΦi,其中,i表示该粒子集合中的第i个粒子,Wi表示第i个粒子与该网格之间的权重,Φi表示第i个粒子的预设物理量,Φ表示该粒子集合包括的每个粒子的预设物理量对该网格的影响力之和。对于当前的三维空间中的每个立方体都通过一个线程按以上方法进行粒子映射处理。在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下问题:上述方法中,由于计算该网格的平均影响力时,需要通过一个线程从内存空间中读取周围网格中的粒子的粒子数据;同样,在计算周围网格的平均影响力时,通过另一个线程从内存空间中读取该网格的粒子的粒子数据;由此可见,不同的线程会重复从内存空间中读取同一个粒子的粒子数据,不仅浪费带宽,还降低了映射效率。
技术实现思路
为了解决现有技术的问题,本专利技术提供了一种粒子映射方法方法和装置。技术方案如下:第一方面,本专利技术实施例提供了一种粒子映射方法,所述方法包括:对于三维空间中的第一区域的第一子区域,读取所述第一子区域包括的每个第一粒子的粒子数据,并根据所述每个第一粒子的粒子数据和所述第一子区域的第一中心网格的位置信息,确定所述每个第一粒子对所述第一中心网格的第一影响力之和以及第一权重之和,任一第一粒子的粒子数据包括所述任一第一粒子的位置信息和预设物理量,所述第一区域为所述三维空间中的任一区域,所述第一子区域为所述第一区域中的任一子区域,所述第一子区域包括第一预设数目个网格;从第二存储空间中获取第二子区域中的每个第二粒子对所述第一中心网格的第二影响力之和以及第二权重之和,以及,从第三存储空间中获取第三子区域中的每个第三粒子对所述第一中心网格的第三影响力之和以及第三权重之和,所述第二子区域为所述第一子区域的前一个子区域,所述第三子区域为所述第一子区域的后一个子区域;根据所述第一影响力之和、所述第一权重之和、所述第二影响力之和、所述第二权重之和、所述第三影响力之和以及所述第三权重之和,确定所述第一中心网格的平均影响力;根据所述每个第一粒子的位置信息,将所述每个第一粒子映射到所述第一中心网格中,将所述第一中心网格的影响力设置为所述平均影响力。可选的,所述对于三维空间中的第一区域的第一子区域,读取所述第一子区域包括的每个第一粒子的粒子数据,并根据所述每个第一粒子的粒子数据和所述第一子区域的第一中心网格的位置信息,确定所述每个第一粒子对所述第一中心网格的第一影响力之和以及第一权重之和,包括:从所述第一区域对应的第一存储空间中读取所述第一区域包括的每个粒子的粒子数据;对于所述第一子区域中的第一中心网格,通过第一线程,执行以下步骤:根据所述每个第一粒子的位置信息和所述第一中心网格的位置信息,计算所述每个第一粒子与所述第一中心网格之间的权重;对所述每个第一粒子与所述第一中心网格之间的权重进行求和,得到所述第一权重之和;将所述每个第一粒子与所述第一中心网格之间的权重与所述每个第一粒子的预设物理量进行乘积,得到所述每个第一粒子对所述第一中心网格的影响力;将所述每个第一粒子对所述第一中心网格的影响力进行求和,得到所述第一影响力之和。可选的,所述从所述第一区域对应的第一存储空间中读取所述第一区域包括的每个粒子的粒子数据之前,所述方法还包括:根据本端设备包括的每个存储空间的大小,将所述三维空间划分为多个柱状体,每个柱状体包括多个网格;将所述每个柱状体划分为多个区域;为所述第一区域分配所述第一存储空间,将所述第一区域包括的粒子的粒子数据存储到所述第一存储空间中。可选的,所述将所述第一区域包括的粒子的粒子数据存储到所述第一存储空间中,包括:根据所述第一存储空间的大小,从内存空间中读取所述第一区域包括的粒子的粒子数据;将读取的粒子数据存储到所述第一存储空间中。可选的,所述第一存储空间为显卡缓存sharedmemory。可选的,所述方法还包括:将所述第一影响力之和,以及所述第一权重之和存储到所述第一区域对应的第四存储空间中。可选的,所述从第二存储空间中获取第二子区域中的每个第二粒子对所述第一中心网格的第二影响力之和以及第二权重之和,以及,从第三存储空间中获取第三子区域中的每个第三粒子对所述第一中心网格的第三影响力之和以及第三权重之和之前,所述方法还包括:读取所述第二子区域包括的每个第二粒子的粒子数据,根据所述每个第二粒子的粒子数据和所述第一中心网格的位置信息,确定所述每个第二粒子对所述第一中心网格的第二影响力之和以及第二权重之和,将所述第二影响力之和与所述第二权重之和存储至所述第二存储空间中;读取所述第三子区域包括的每个第三粒子的粒子数据,根据所述每个第三粒子的粒子数据和所述第一中心网格的位置信息,确定所述每个第三粒子对所述第一中心网格的第三影响力之和以及第三权重之和,将所述第三影响力之和与所述第三权重之和存储至所述第三存储空间中。可选的,所述根据所述第一影响力之和、所述第一权重之和、所述第二影响力之和、所述第二权重之和、所述第三影响力之和以及所述第三权重之和,确定所述第一中心网格的平均影响力,包括:对所述第一影响力之和、所述第二影响力之和以及所述第三影响力之和进行求和,得到第一数值;对所述第一权重之和、所述第二权重之和以及所述第三权重之和进行求和,得到第二数值;将所述第一数值与所述第二数值之间的比值确定为所述第一中心网格的平均影响力。第二方面,本专利技术实施例提供了一种粒子映射装置,所述装置包括:读取模块,用于对于本文档来自技高网
...
粒子映射方法和装置

【技术保护点】
一种粒子映射方法,其特征在于,所述方法包括:对于三维空间中的第一区域的第一子区域,读取所述第一子区域包括的每个第一粒子的粒子数据,并根据所述每个第一粒子的粒子数据和所述第一子区域的第一中心网格的位置信息,确定所述每个第一粒子对所述第一中心网格的第一影响力之和以及第一权重之和,任一第一粒子的粒子数据包括所述任一第一粒子的位置信息和预设物理量,所述第一区域为所述三维空间中的任一区域,所述第一子区域为所述第一区域中的任一子区域,所述第一子区域包括第一预设数目个网格;从第二存储空间中获取第二子区域中的每个第二粒子对所述第一中心网格的第二影响力之和以及第二权重之和,以及,从第三存储空间中获取第三子区域中的每个第三粒子对所述第一中心网格的第三影响力之和以及第三权重之和,所述第二子区域为所述第一子区域的前一个子区域,所述第三子区域为所述第一子区域的后一个子区域;根据所述第一影响力之和、所述第一权重之和、所述第二影响力之和、所述第二权重之和、所述第三影响力之和以及所述第三权重之和,确定所述第一中心网格的平均影响力;根据所述每个第一粒子的位置信息,将所述每个第一粒子映射到所述第一中心网格中,将所述第一中心网格的影响力设置为所述平均影响力。...

【技术特征摘要】
1.一种粒子映射方法,其特征在于,所述方法包括:对于三维空间中的第一区域的第一子区域,读取所述第一子区域包括的每个第一粒子的粒子数据,并根据所述每个第一粒子的粒子数据和所述第一子区域的第一中心网格的位置信息,确定所述每个第一粒子对所述第一中心网格的第一影响力之和以及第一权重之和,任一第一粒子的粒子数据包括所述任一第一粒子的位置信息和预设物理量,所述第一区域为所述三维空间中的任一区域,所述第一子区域为所述第一区域中的任一子区域,所述第一子区域包括第一预设数目个网格;从第二存储空间中获取第二子区域中的每个第二粒子对所述第一中心网格的第二影响力之和以及第二权重之和,以及,从第三存储空间中获取第三子区域中的每个第三粒子对所述第一中心网格的第三影响力之和以及第三权重之和,所述第二子区域为所述第一子区域的前一个子区域,所述第三子区域为所述第一子区域的后一个子区域;根据所述第一影响力之和、所述第一权重之和、所述第二影响力之和、所述第二权重之和、所述第三影响力之和以及所述第三权重之和,确定所述第一中心网格的平均影响力;根据所述每个第一粒子的位置信息,将所述每个第一粒子映射到所述第一中心网格中,将所述第一中心网格的影响力设置为所述平均影响力。2.根据权利要求1所述的方法,其特征在于,所述对于三维空间中的第一区域的第一子区域,读取所述第一子区域包括的每个第一粒子的粒子数据,并根据所述每个第一粒子的粒子数据和所述第一子区域的第一中心网格的位置信息,确定所述每个第一粒子对所述第一中心网格的第一影响力之和以及第一权重之和,包括:从所述第一区域对应的第一存储空间中读取所述第一区域包括的每个粒子的粒子数据;对于所述第一子区域中的第一中心网格,通过第一线程,执行以下步骤:根据所述每个第一粒子的位置信息和所述第一中心网格的位置信息,计算所述每个第一粒子与所述第一中心网格之间的权重;对所述每个第一粒子与所述第一中心网格之间的权重进行求和,得到所述第一权重之和;将所述每个第一粒子与所述第一中心网格之间的权重与所述每个第一粒子的预设物理量进行乘积,得到所述每个第一粒子对所述第一中心网格的影响力;将所述每个第一粒子对所述第一中心网格的影响力进行求和,得到所述第一影响力之和。3.根据权利要求2所述的方法,其特征在于,所述从所述第一区域对应的第一存储空间中读取所述第一区域包括的每个粒子的粒子数据之前,所述方法还包括:根据本端设备包括的每个存储空间的大小,将所述三维空间划分为多个柱状体,每个柱状体包括多个网格;将所述每个柱状体划分为多个区域;为所述第一区域分配所述第一存储空间,将所述第一区域包括的粒子的粒子数据存储到所述第一存储空间中。4.根据权利要求3所述的方法,其特征在于,所述将所述第一区域包括的粒子的粒子数据存储到所述第一存储空间中,包括:根据所述第一存储空间的大小,从内存空间中读取所述第一区域包括的粒子的粒子数据;将读取的粒子数据存储到所述第一存储空间中。5.根据权利要求2-4任一所述的方法,其特征在于,所述第一存储空间为显卡缓存sharedmemory。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:将所述第一影响力之和,以及所述第一权重之和存储到所述第一区域对应的第四存储空间中。7.根据权利要求1所述的方法,其特征在于,所述从第二存储空间中获取第二子区域中的每个第二粒子对所述第一中心网格的第二影响力之和以及第二权重之和,以及,从第三存储空间中获取第三子区域中的每个第三粒子对所述第一中心网格的第三影响力之和以及第三权重之和之前,所述方法还包括:读取所述第二子区域包括的每个第二粒子的粒子数据,根据所述每个第二粒子的粒子数据和所述第一中心网格的位置信息,确定所述每个第二粒子对所述第一中心网格的第二影响力之和以及第二权重之和,将所述第二影响力之和与所述第二权重之和存储至所述第二存储空间中;读取所述第三子区域包括的每个第三粒子的粒子数据,根据所述每个第三粒子的粒子数据和所述第一中心网格的位置信息,确定所述每个第三粒子对所述第一中心网格的第三影响力之和以及第三权重之和,将所述第三影响力之和与所述第三权重之和存储至所述第三存储空间中。8.根据权利要求1所述的方法,其特征在于,所述根据所述第一影响力之和、所述第一权重之和、所述第二影响力之和、所述第二权重之和、所述第三影响力之和以及所述第三权重之和,确定所述第一中心网格的平均影响力,包括:对所述第一影...

【专利技术属性】
技术研发人员:谭健文
申请(专利权)人:广州酷狗计算机科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1