粒子映射方法和装置
技术领域
本发明涉及计算机技术领域,特别涉及一种粒子映射方法和装置。
背景技术
随着计算机技术的发展,终端可以在统一计算设备架构(Compute UnifiedDevice Architecture,CUDA)运算平台中求解流体的平流运动,从而实现对流体运动的模拟,比如,火焰、水流等。而终端在CUDA运算平台中求解流体的平流运动时,往往先需要对流体中的粒子进行映射处理,即,通过确定三维空间中每个网格承受的周围粒子的影响力,从而将流体中的粒子映射到三维空间的网格中。
现有技术中,终端的内存空间中存储流体中的每个粒子的粒子数据,粒子数据包括位置信息和预设物理量。其中,预设物理量包括密度、速度和温度中的至少一个。在对流体中的粒子进行映射处理时,终端将当前的三维空间划分为多个立方体,每个立方体包括27个网格,每个网格为以单位长度为边长的单位立方体。终端中同时运行多个线程,通过一个线程对一个立方体中的粒子进行映射处理。
对于每个立方体中的每个网格,终端通过一个线程从内存空间中读取粒子集合中的每个粒子的粒子数据,粒子集合包括该网格包括的粒子以及该网格周围的26个网格包括的粒子。终端根据该粒子集合中的每个粒子的位置信息,将该粒子集合中的粒子映射到该网格中,根据该粒子集合包括的每个粒子的位置信息和该网格的位置信息,分别计算该粒子集合包括的每个粒子与该网格之间的权重。终端根据该粒子集合包括的每个粒子与该网格之间的权重,以及,该粒子集合包括的每个粒子的预设物理量,通过以下公式一计算该粒子集合包括的每个粒子的预设物理量对该网格的影响力之和。终端计算该粒子集合包括的每个粒子与该网格之间的权重之和,将该影响力之和与该权重之和之间的比值确定为该粒子集合包括的每个粒子的预设物理量对该网格的平均影响力,将该网格的预设物理量的影响力设置为该平均影响力。
公式一:Φ=ΣWiΦi,其中,i表示该粒子集合中的第i个粒子,Wi表示第i个粒子与该网格之间的权重,Φi表示第i个粒子的预设物理量,Φ表示该粒子集合包括的每个粒子的预设物理量对该网格的影响力之和。对于当前的三维空间中的每个立方体都通过一个线程按以上方法进行粒子映射处理。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
上述方法中,由于计算该网格的平均影响力时,需要通过一个线程从内存空间中读取周围网格中的粒子的粒子数据;同样,在计算周围网格的平均影响力时,通过另一个线程从内存空间中读取该网格的粒子的粒子数据;由此可见,不同的线程会重复从内存空间中读取同一个粒子的粒子数据,不仅浪费带宽,还降低了映射效率。
发明内容
为了解决现有技术的问题,本发明提供了一种粒子映射方法方法和装置。技术方案如下:
第一方面,本发明实施例提供了一种粒子映射方法,所述方法包括:
对于三维空间中的第一区域的第一子区域,读取所述第一子区域包括的每个第一粒子的粒子数据,并根据所述每个第一粒子的粒子数据和所述第一子区域的第一中心网格的位置信息,确定所述每个第一粒子对所述第一中心网格的第一影响力之和以及第一权重之和,任一第一粒子的粒子数据包括所述任一第一粒子的位置信息和预设物理量,所述第一区域为所述三维空间中的任一区域,所述第一子区域为所述第一区域中的任一子区域,所述第一子区域包括第一预设数目个网格;
从第二存储空间中获取第二子区域中的每个第二粒子对所述第一中心网格的第二影响力之和以及第二权重之和,以及,从第三存储空间中获取第三子区域中的每个第三粒子对所述第一中心网格的第三影响力之和以及第三权重之和,所述第二子区域为所述第一子区域的前一个子区域,所述第三子区域为所述第一子区域的后一个子区域;
根据所述第一影响力之和、所述第一权重之和、所述第二影响力之和、所述第二权重之和、所述第三影响力之和以及所述第三权重之和,确定所述第一中心网格的平均影响力;
根据所述每个第一粒子的位置信息,将所述每个第一粒子映射到所述第一中心网格中,将所述第一中心网格的影响力设置为所述平均影响力。
可选的,所述对于三维空间中的第一区域的第一子区域,读取所述第一子区域包括的每个第一粒子的粒子数据,并根据所述每个第一粒子的粒子数据和所述第一子区域的第一中心网格的位置信息,确定所述每个第一粒子对所述第一中心网格的第一影响力之和以及第一权重之和,包括:
从所述第一区域对应的第一存储空间中读取所述第一区域包括的每个粒子的粒子数据;
对于所述第一子区域中的第一中心网格,通过第一线程,执行以下步骤:
根据所述每个第一粒子的位置信息和所述第一中心网格的位置信息,计算所述每个第一粒子与所述第一中心网格之间的权重;
对所述每个第一粒子与所述第一中心网格之间的权重进行求和,得到所述第一权重之和;
将所述每个第一粒子与所述第一中心网格之间的权重与所述每个第一粒子的预设物理量进行乘积,得到所述每个第一粒子对所述第一中心网格的影响力;
将所述每个第一粒子对所述第一中心网格的影响力进行求和,得到所述第一影响力之和。
可选的,所述从所述第一区域对应的第一存储空间中读取所述第一区域包括的每个粒子的粒子数据之前,所述方法还包括:
根据本端设备包括的每个存储空间的大小,将所述三维空间划分为多个柱状体,每个柱状体包括多个网格;
将所述每个柱状体划分为多个区域;
为所述第一区域分配所述第一存储空间,将所述第一区域包括的粒子的粒子数据存储到所述第一存储空间中。
可选的,所述将所述第一区域包括的粒子的粒子数据存储到所述第一存储空间中,包括:
根据所述第一存储空间的大小,从内存空间中读取所述第一区域包括的粒子的粒子数据;
将读取的粒子数据存储到所述第一存储空间中。
可选的,所述第一存储空间为显卡缓存shared memory。
可选的,所述方法还包括:
将所述第一影响力之和,以及所述第一权重之和存储到所述第一区域对应的第四存储空间中。
可选的,所述从第二存储空间中获取第二子区域中的每个第二粒子对所述第一中心网格的第二影响力之和以及第二权重之和,以及,从第三存储空间中获取第三子区域中的每个第三粒子对所述第一中心网格的第三影响力之和以及第三权重之和之前,所述方法还包括:
读取所述第二子区域包括的每个第二粒子的粒子数据,根据所述每个第二粒子的粒子数据和所述第一中心网格的位置信息,确定所述每个第二粒子对所述第一中心网格的第二影响力之和以及第二权重之和,将所述第二影响力之和与所述第二权重之和存储至所述第二存储空间中;
读取所述第三子区域包括的每个第三粒子的粒子数据,根据所述每个第三粒子的粒子数据和所述第一中心网格的位置信息,确定所述每个第三粒子对所述第一中心网格的第三影响力之和以及第三权重之和,将所述第三影响力之和与所述第三权重之和存储至所述第三存储空间中。
可选的,所述根据所述第一影响力之和、所述第一权重之和、所述第二影响力之和、所述第二权重之和、所述第三影响力之和以及所述第三权重之和,确定所述第一中心网格的平均影响力,包括:
对所述第一影响力之和、所述第二影响力之和以及所述第三影响力之和进行求和,得到第一数值;
对所述第一权重之和、所述第二权重之和以及所述第三权重之和进行求和,得到第二数值;
将所述第一数值与所述第二数值之间的比值确定为所述第一中心网格的平均影响力。
第二方面,本发明实施例提供了一种粒子映射装置,所述装置包括:
读取模块,用于对于三维空间中的第一区域的第一子区域,读取所述第一子区域包括的每个第一粒子的粒子数据,并根据所述每个第一粒子的粒子数据和所述第一子区域的第一中心网格的位置信息,确定所述每个第一粒子对所述第一中心网格的第一影响力之和以及第一权重之和,任一第一粒子的粒子数据包括所述任一第一粒子的位置信息和预设物理量,所述第一区域为所述三维空间中的任一区域,所述第一子区域为所述第一区域中的任一子区域,所述第一子区域包括第一预设数目个网格;
获取模块,用于从第二存储空间中获取第二子区域中的每个第二粒子对所述第一中心网格的第二影响力之和以及第二权重之和,以及,从第三存储空间中获取第三子区域中的每个第三粒子对所述第一中心网格的第三影响力之和以及第三权重之和,所述第二子区域为所述第一子区域的前一个子区域,所述第三子区域为所述第一子区域的后一个子区域;
第一确定模块,用于根据所述第一影响力之和、所述第一权重之和、所述第二影响力之和、所述第二权重之和、所述第三影响力之和以及所述第三权重之和,确定所述第一中心网格的平均影响力;
映射模块,用于根据所述每个第一粒子的位置信息,将所述每个第一粒子映射到所述第一中心网格中,将所述第一中心网格的影响力设置为所述平均影响力。
可选的,所述读取模块,还用于从所述第一区域对应的第一存储空间中读取所述第一区域包括的每个粒子的粒子数据;
对于所述第一子区域中的第一中心网格,所述读取模块,还用于通过第一线程,根据所述每个第一粒子的位置信息和所述第一中心网格的位置信息,计算所述每个第一粒子与所述第一中心网格之间的权重;对所述每个第一粒子与所述第一中心网格之间的权重进行求和,得到所述第一权重之和;将所述每个第一粒子与所述第一中心网格之间的权重与所述每个第一粒子的预设物理量进行乘积,得到所述每个第一粒子对所述第一中心网格的影响力;将所述每个第一粒子对所述第一中心网格的影响力进行求和,得到所述第一影响力之和。
可选的,所述装置还包括:
第一划分模块,用于根据本端设备包括的每个存储空间的大小,将所述三维空间划分为多个柱状体,每个柱状体包括多个网格;
第二划分模块,用于将所述每个柱状体划分为多个区域;
第一存储模块,用于为所述第一区域分配所述第一存储空间,将所述第一区域包括的粒子的粒子数据存储到所述第一存储空间中。
可选的,所述第一存储模块,还用于根据所述第一存储空间的大小,从内存空间中读取所述第一区域包括的粒子的粒子数据;将读取的粒子数据存储到所述第一存储空间中。
可选的,所述第一存储空间为显卡缓存shared memory。
可选的,所述装置还包括:
第二存储模块,用于将所述第一影响力之和,以及所述第一权重之和存储到所述第一区域对应的第四存储空间中。
可选的,所述装置还包括:
第二确定模块,用于读取所述第二子区域包括的每个第二粒子的粒子数据,根据所述每个第二粒子的粒子数据和所述第一中心网格的位置信息,确定所述每个第二粒子对所述第一中心网格的第二影响力之和以及第二权重之和,将所述第二影响力之和与所述第二权重之和存储至所述第二存储空间中;
第三确定模块,用于读取所述第三子区域包括的每个第三粒子的粒子数据,根据所述每个第三粒子的粒子数据和所述第一中心网格的位置信息,确定所述每个第三粒子对所述第一中心网格的第三影响力之和以及第三权重之和,将所述第三影响力之和与所述第三权重之和存储至所述第三存储空间中。
可选的,所述第一确定模块,包括:
第一求和单元,用于对所述第一影响力之和、所述第二影响力之和以及所述第三影响力之和进行求和,得到第一数值;
第二求和单元,用于对所述第一权重之和、所述第二权重之和以及所述第三权重之和进行求和,得到第二数值;
确定单元,用于将所述第一数值与所述第二数值之间的比值确定为所述第一中心网格的平均影响力。
本发明实施例中,终端根据读取的每个第一粒子的粒子数据和该第一子区域的第一中心网格的位置信息,确定该每个第一粒子对该第一中心网格的第一影响力之和以及第一权重之和。然后,终端从第二存储空间中获取第二子区域中的每个第二粒子对该第一中心网格的第二影响力之和以及第二权重之和,以及,从第三存储空间中获取第三子区域中的每个第三粒子对该第一中心网格的第三影响力之和以及第三权重之和。终端根据该第一影响力之和、该第一权重之和、该第二影响力之和、该第二权重之和、该第三影响力之和以及该第三权重之和,确定该第一中心网格的平均影响力;并将该第一中心网格的影响力设置为该平均影响力,从而将第一中心网格周围的第一粒子、第二粒子、第三粒子的预设物理量映射到该第一中心网格中。由于终端可以分别计算每个第一中心网格对应的第一影响力之和、第一权重之和,并直接获取第二影响力之和、第二权重之和,第三影响力之和,第三权重之和,确定出第一中心网格的影响力,从而无需重复读取第一粒子、第二粒子以及第三粒子的粒子数据,节省了带宽,提高了粒子映射的效率。
附图说明
图1是本发明实施例提供的一种粒子映射的方法流程图;
图2是本发明实施例提供的一种粒子映射的方法流程图;
图3是本发明实施例提供的一种粒子映射的装置结构示意图;
图4是本发明实施例提供的一种粒子映射的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种粒子映射方法,该方法的执行主体可以为终端或服务器,本发明实施例对此不做具体限定,本发明实施例仅以终端为例进行说明,如图1所示,该方法包括:
步骤101:对于三维空间中的第一区域的第一子区域,读取该第一子区域包括的每个第一粒子的粒子数据,并根据该每个第一粒子的粒子数据和该第一子区域的第一中心网格的位置信息,确定该每个第一粒子对该第一中心网格的第一影响力之和以及第一权重之和。
需要说明的是,任一第一粒子的粒子数据包括该任一第一粒子的位置信息和预设物理量,该第一区域为该三维空间中的任一区域,该第一子区域为该第一区域中的任一子区域,该第一子区域包括第一预设数目个网格。
步骤102:从第二存储空间中获取第二子区域中的每个第二粒子对该第一中心网格的第二影响力之和以及第二权重之和,以及,从第三存储空间中获取第三子区域中的每个第三粒子对该第一中心网格的第三影响力之和以及第三权重之和。
需要说明的是,该第二子区域为该第一子区域的前一个子区域,该第三子区域为该第一子区域的后一个子区域。
步骤103:根据该第一影响力之和、该第一权重之和、该第二影响力之和、该第二权重之和、该第三影响力之和以及该第三权重之和,确定该第一中心网格的平均影响力。
步骤104:根据该每个第一粒子的位置信息,将该每个第一中心网格映射到该第一中心网格中,将该第一中心网格的影响力设置为该平均影响力。
在一种可能的设计中,对于三维空间中的第一区域的第一子区域,读取该第一子区域包括的每个第一粒子的粒子数据,并根据该每个第一粒子的粒子数据和该第一子区域的第一中心网格的位置信息,确定该每个第一粒子对该第一中心网格的第一影响力之和以及第一权重之和,包括:
从该第一区域对应的第一存储空间中读取该第一区域包括的每个粒子的粒子数据;
对于该第一子区域中的第一中心网格,通过第一线程,执行以下步骤:
根据该每个第一粒子的位置信息和该第一中心网格的位置信息,计算该每个第一粒子与该第一中心网格之间的权重;
对该每个第一粒子与该第一中心网格之间的权重进行求和,得到该第一权重之和;
将该每个第一粒子与该第一中心网格之间的权重与该每个第一粒子的预设物理量进行乘积,得到该每个第一粒子对该第一中心网格的影响力;
将该每个第一粒子对该第一中心网格的影响力进行求和,得到该第一影响力之和。
在一种可能的设计中,从该第一区域对应的第一存储空间中读取该第一区域包括的每个粒子的粒子数据之前,该方法还包括:
根据本端设备包括的每个存储空间的大小,将该三维空间划分为多个柱状体,每个柱状体包括多个网格;
将该每个柱状体划分为多个区域;
为该第一区域分配该第一存储空间,将该第一区域包括的粒子的粒子数据存储到该第一存储空间中。
在一种可能的设计中,将该第一区域包括的粒子的粒子数据存储到该第一存储空间中,包括:
根据该第一存储空间的大小,从内存空间中读取该第一区域包括的粒子的粒子数据;
将读取的粒子数据存储到该第一存储空间中。
在一种可能的设计中,该第一存储空间为显卡缓存shared memory。
在一种可能的设计中,该方法还包括:
将该第一影响力之和,以及该第一权重之和存储到该第一区域对应的第四存储空间中。
在一种可能的设计中,从第二存储空间中获取第二子区域中的每个第二粒子对该第一中心网格的第二影响力之和以及第二权重之和,以及,从第三存储空间中获取第三子区域中的每个第三粒子对该第一中心网格的第三影响力之和以及第三权重之和之前,该方法还包括:
读取该第二子区域包括的每个第二粒子的粒子数据,根据该每个第二粒子的粒子数据和该第一中心网格的位置信息,确定该每个第二粒子对该第一中心网格的第二影响力之和以及第二权重之和,将该第二影响力之和与该第二权重之和存储至该第二存储空间中;
读取该第三子区域包括的每个第三粒子的粒子数据,根据该每个第三粒子的粒子数据和该第一中心网格的位置信息,确定该每个第三粒子对该第一中心网格的第三影响力之和以及第三权重之和,将该第三影响力之和与该第三权重之和存储至该第三存储空间中。
在一种可能的设计中,根据该第一影响力之和、该第一权重之和、该第二影响力之和、该第二权重之和、该第三影响力之和以及该第三权重之和,确定该第一中心网格的平均影响力,包括:
对该第一影响力之和、该第二影响力之和以及该第三影响力之和进行求和,得到第一数值;
对该第一权重之和、该第二权重之和以及该第三权重之和进行求和,得到第二数值;
将该第一数值与该第二数值之间的比值确定为该第一中心网格的平均影响力。
本发明实施例中,终端根据读取的每个第一粒子的粒子数据和该第一子区域的第一中心网格的位置信息,确定该每个第一粒子对该第一中心网格的第一影响力之和以及第一权重之和。然后,终端直接从第二存储空间中获取第二子区域中的每个第二粒子对该第一中心网格的第二影响力之和以及第二权重之和,以及,直接从第三存储空间中获取第三子区域中的每个第三粒子对该第一中心网格的第三影响力之和以及第三权重之和。终端根据该第一影响力之和、该第一权重之和、该第二影响力之和、该第二权重之和、该第三影响力之和以及该第三权重之和,确定该第一中心网格的平均影响力;并将该第一中心网格的影响力设置为该平均影响力,从而将第一中心网格周围的第一粒子、第二粒子、第三粒子的预设物理量映射到该第一中心网格中。由于终端可以分别计算每个第一中心网格对应的第一影响力之和、第一权重之和,并直接获取第二影响力之和、第二权重之和,第三影响力之和,第三权重之和,确定出第一中心网格的影响力,从而无需重复读取第一粒子、第二粒子以及第三粒子的粒子数据,节省了带宽,提高了粒子映射的效率。
本发明实施例提供了一种粒子映射方法,该方法的执行主体可以为终端或服务器,本发明实施例对此不做具体限定,本发明实施例仅以终端为例进行说明,如图2所示,该方法包括:
步骤201:对于三维空间中的第一区域的第一子区域,终端读取该第一子区域包括的每个第一粒子的粒子数据,并根据该每个第一粒子的粒子数据和该第一子区域的第一中心网格的位置信息,确定该每个第一粒子对该第一中心网格的第一影响力之和以及第一权重之和。
需要说明的是,该任一第一粒子的粒子数据包括该任一第一粒子的位置信息和预设物理量,该第一区域为该三维空间中的任一区域,该第一子区域为该第一区域中的任一子区域,该第一子区域包括第一预设数目个网格。
其中,该粒子的位置信息可以为该粒子在三维空间中的位置坐标。该粒子的预设物理量可以根据需要设置并更改,本发明实施例对此不做具体限定。例如,该预设物理量可以包括该粒子的速度、密度、温度中的至少一个。
该网格为三维空间中预先划分的边长为单位长度的正方形网格。该第一预设数目可以根据需要进行设置并更改,在本发明实施例中对此不做具体限定。例如,第一预设数目可以为9、25或者49等。在本发明实施例中以第一预设数目为9为例进行说明,则该第一子区域可以为由3*3个小网格组成的小正方形。
本发明实施例中,终端可以在该三维空间中预先建立三维直角坐标系xyz,其中,x轴为平行于地面水平向右的方向,y轴为垂直于地面竖直向上的方向,z轴为垂直于纸面的向外的方向,z轴垂直于x轴和y轴构成的区域。粒子的位置信息可以用该粒子在该三维直角坐标系xyz中的位置坐标表示。
本步骤可以通过以下步骤2011-2013实现。
步骤2011:终端从该第一区域对应的第一存储空间中读取该第一区域包括的每个粒子的粒子数据。
本发明实施例中,该第一区域为终端预先对三维空间进行划分得到的区域,具体的,终端从第一存储空间中读取该第一区域包括的每个粒子的粒子数据之前,终端预先按照以下步骤a-b中的划分方式,对该三维空间进行划分,得到多个区域,并基于该划分方式,对三维空间中粒子的粒子数据进行存储,从而将第一区域包括的粒子数据存储到第一存储空间中。
步骤a:终端根据本端设备包括的每个存储空间的大小,将该三维空间划分为多个柱状体,每个柱状体包括多个网格。
本步骤中,该柱状体可以为z轴方向上长度与三维空间的长度相等,x、y轴方向上为预设形状的截面的柱状体。
其中,终端根据每个存储空间的大小,确定该柱状体在x、y轴方向上的预设形状的截面的大小。该每个存储空间用于存储一个预设形状的截面包括的粒子的粒子数据。具体的,步骤a可以为:终端将该三维空间在z轴方向上的长度确定为该柱状体的长度;终端获取每个存储空间的大小,根据每个存储空间的大小,按照第一预设规则,划分每个柱状体的预设形状的截面的大小,以使每个存储空间可以存储每个预设形状的截面包括的粒子的粒子数据。
其中,该第一预设规则可以根据用户需要设置并更改,本发明实施例对此不做具体限定。例如,该第一预设规则可以为:每个柱状体的截面中包括的全部粒子的粒子数据所占的空间大小不超过每个存储空间的大小。对应的,每个存储空间可以存储一个预设形状的截面包括的全部粒子的粒子数据。
或者,该第一预设规则还可以为:每个柱状体的截面中包括的50%的粒子的粒子数据所占的空间大小不超过每个存储空间的大小。对应的,每个存储空间可以存储一个预设形状的截面包括的50%的粒子的粒子数据。
该预设形状的截面可以根据需要设置并更改,本发明实施例对此不做具体限定。例如,该预设形状的截面可以为正方形的截面、矩形的截面或者圆形的截面等。
步骤b:终端将该每个柱状体划分为多个区域;为该第一区域分配该第一存储空间,将该第一区域包括的粒子的粒子数据存储到该第一存储空间中。
其中,终端将每个柱状体划分为多个区域的步骤可以为:终端按照第二预设规则,在z轴方向上对该柱状体进行切割,得到多个在x、y轴方向上的预设形状的截面,将每个预设形状的截面作为一个区域。
其中,该第一区域可以为该每个柱状体的多个区域中的任一区域。
例如,终端可以将三维空间A划分为m个柱状体,每个柱状体划分为n个区域,该第一区域可以表示为aij,其中,i为m个柱状体中第i个柱状体,j为第i个柱状体的n个区域中,第j个区域。
本发明实施例中,终端可以将每个柱状体划分为多个区域,由于每个区域中存在多个粒子,终端为每个区域对应分配一个存储空间,每个存储空间用于存储该存储空间对应的区域中包括的粒子的粒子数据。终端存储该柱状体中区域和存储空间的对应关系。
可选的,终端也可以为第二预设数目个区域对应分配一个存储空间,每个存储空间每次只存储一个区域的粒子的粒子数据,当终端通过步骤201,根据该区域的粒子的粒子数据,确定该区域的粒子对于本区域的影响力之和以及权重之和、该区域的粒子对于前一个区域的影响力之和以及权重之和、该区域的粒子对于后一个区域的影响力之和以及权重之和之后,终端将该区域的粒子的粒子数据从该存储空间中删除。终端将下一个区域的粒子的粒子数据继续存储在该存储空间中,并通过步骤201,对该下一个区域的粒子的粒子数据进行计算。从而节省了粒子数据占用的存储空间。
其中,该第二预设数目个区域可以根据需要设置并更改,本发明实施例对此不做具体限定。例如,该预设数目个区域可以为5个区域,或者,该预设数目个区域还可以为一个柱状体中包括的所有区域。
其中,终端为第一区域分配第一存储空间的步骤可以为:终端为第一区域分配第一存储空间,并将第一区域和第一存储空间的对应关系存储在区域和存储空间的对应关系中。相应的,步骤2011可以为:终端根据该第一区域,从区域和存储空间的对应关系中,确定该第一区域对应的第一存储空间,从第一存储空间中读取第一区域包括的每个粒子的粒子数据。
需要说明的是,该多个存储空间的大小可以相等,也可以不相等,该第一区域可以为该柱状体包括的多个区域中的任一区域。该第一存储空间可以为多个存储空间中的任一存储空间。本发明实施例对此不做具体限定。
其中,终端将该第一区域包括的粒子的粒子数据存储到该第一存储空间中的步骤可以为:终端根据该第一存储空间的大小,按照第二预设规则,从内存空间中读取该第一区域包括的粒子的粒子数据。将读取的粒子数据存储到该第一存储空间中。
其中,该第二预设规则可以根据用户需要设置并更改,本发明实施例对此不做具体限定。例如,该第二预设规则可以为:终端一次读取第一区域包括的所有粒子的粒子数据。对应的,终端将该第一区域包括的所有粒子的粒子数据存储到第一存储空间中。
该第二预设规则还可以为:每次从内存空间中读取第一区域包括的50%的粒子的粒子数据。对应的,终端将第一次读取的50%的粒子的粒子数据存储到第一存储空间中;然后,将第二次读取的剩余50%的粒子的粒子数据存储到第一存储空间中。
该第二预设规则还可以为:每次从内存空间中读取第一区域包括的一个粒子的粒子数据。对应的,终端将每次读取的一个粒子的粒子数据存储到第一存储空间中,直到将第一区域包括的所有粒子的粒子数据存储到第一存储空间中。
需要说明的是,该第一存储空间为显卡缓存(shared memory)。
本发明实施例中,将CUDA运算平台中的share memory作为第一存储空间,由于shared memory的读取速率和写入速率较高,远高于内存的读取和写入的速率,因此,本发明实施例中,将shared memory作为第一存储空间,从而提高了粒子数据的存储速率和读取速率。并且,终端从内存空间中读取第一区域包括的粒子,并将第一区域包括的所有粒子的粒子数据存储到第一存储空间中,因此,终端可以直接从该第一存储空间中读取第一区域包括的粒子的粒子数据,无需从内存空间中重复读取粒子数据,从而节省了带宽,提高了带宽利用率。
其中,该多个区域的数量可以根据需要设置并更改,本发明实施例对此不做具体限定。例如,终端可以将每个柱状体划分为1000个区域。
本发明实施例中,终端通过利用GPU(Graphics Processing Unit,图形处理器)的SIMT(Single Instruction Multiple Threads,单指令多线程)的架构模式,为每个柱状体分配一个线程块(thread block),每个线程块包括多个线程,终端通过一个线程对应计算一个中心网格的影响力,该多个线程块可以同时运行。从而提高了并行度,进而提高了粒子映射的效率。
其中,对于该第一子区域的第一中心网格,终端通过第一线程,执行以下步骤2012-2014。
步骤2012:终端根据该每个第一粒子的位置信息和该第一中心网格的位置信息,计算该每个第一粒子与该第一中心网格之间的权重。
本发明实施例中,该第一子区域为3*3个网格组成的正方形的子区域。第一区域中包括多个网格,因此,该第一子区域为第一区域中任意3*3个网格组成的正方形区域。
该第一中心网格为该3*3个网格组成的正方形区域的中心点所在的网格。该第一粒子为第一子区域中的任一粒子。该第一粒子与该第一中心网格之间的权重可以为该第一粒子与该正方形区域的中心点之间的权重。
因此,本步骤可以为:终端获取第一子区域中每个第一粒子的位置信息和该第一中心网格的位置信息,根据该第一中心网格的位置信息,确定该第一中心网格的中心点的位置信息。终端根据第一子区域中每个第一粒子的位置信息和该第一中心网格的中心点的位置信息,计算每个第一粒子和该第一中心网格的中心点之间的距离,并通过预设算法,确定每个第一粒子和该第一中心网格的中心点之间的权重,将该权重作为该第一粒子与第一中心网格之间的权重。
其中,该预设算法可以根据需要设置并更改,本发明实施例对此不做具体限定。例如,该预设算法可以为:第一粒子与第一中心网格之间的权重为第一粒子与第一中心网格之间的距离的倒数。即,第一粒子与第一中心网格之间的距离越大,第一粒子与第一中心网格之间的权重越小。
该第一粒子的位置信息,该第一网格的位置信息,以及该第一中心网格的位置信息可以用三维直角坐标系xyz中的位置坐标表示。本发明实施例对此不做具体限定。
步骤2013:终端对该每个第一粒子与该第一中心网格之间的权重进行求和,得到该第一权重之和。
本步骤中,终端对第一子区域中每个第一粒子与该第一中心网格之间的权重进行求和,将得到的结果作为第一权重之和。
本发明实施例中,终端可以将该第一权重之和存储到第一区域对应的第四存储空间中,以便于终端后续确定第一中心网格的影响力时,可以直接从该第四存储空间读取该第一权重之和,从而提高了粒子映射的效率。
其中,该第四存储空间可以为寄存器。由于寄存器具有高速读取和高速写入的性能,本发明实施例通过将该第一权重之和存储在该寄存器中,提高了终端存储该第一权重之和的存储速率,以及,后续终端读取该第一权重之和的读取速率。
另外,如果终端为每个区域对应分配一个存储空间,该第四存储空间还可以为每个子区域所在的区域对应的存储空间,即,本步骤中,第四存储空间为第一区域对应的shared memory。由于shared memory也具有高速读取和高速写入的性能,因此,本步骤中,终端将第一存储空间作为第四存储空间,同样可提高该第一权重之和的存储速率和读取速率。
步骤2014:终端将该每个第一粒子与该第一中心网格之间的权重与该每个第一粒子的预设物理量进行乘积,得到该每个第一粒子对该第一中心网格的影响力,并将该每个第一粒子对该第一中心网格的影响力进行求和,得到该第一影响力之和。
本步骤中,对于每个第一子区域中的每个第一粒子,终端获取该粒子与第一中心网格之间的权重,并计算该权重与该第一粒子的预设物理量的乘积,将该乘积做为该第一粒子对第一中心网格的影响力。对于每个第一子区域,终端计算该第一子区域包括的每个粒子对该第一中心网格的影响力之和,将得到结果作为第一影响力之和。
具体的,对于每个第一子区域,终端可以将该第一子区域中每个粒子与第一中心网格之间的权重,以及该第一粒子的预设物理量通过以下公式一确定第一影响力之和:
公式一:Φ=ΣWiΦi
其中,i表示该第一子区域中的第i个粒子,Wi表示第i个粒子与该第一中心网格之间的权重,Φi表示第i个粒子的预设物理量,Φ表示该第一影响力之和。
本步骤中,终端还可以将该第一影响力之和也存储在第一区域对应的第四存储空间中,即,终端将该第一影响力之和,以及该第一权重之和存储到该第一区域对应的第四存储空间中。从而提高了该第一影响力之和的存储速率与读取速率,进而提高了粒子映射的效率。
本发明实施例提供的一种可能的设计中,对于步骤2012-2014,终端可以每次只对该第一子区域中预设数量的第一粒子进行计算,分多次计算得到步骤2012-2014中的结果,对应的,该步骤2012-2014可以为:终端每次根据该第一子区域中预设数量的第一粒子的位置信息和该第一中心网格的位置信息,通过第一线程,计算该预设数量的第一粒子与该第一中心网格之间的权重,并将该预设数量的第一粒子与该第一中心网格之间的权重与该第一粒子的预设物理量进行乘积,得到该预设数量的第一粒子对该第一中心网格的影响力。直到确定出第一子区域中每个第一粒子与该第一中心网格之间的权重,以及,第一子区域中每个第一粒子对该第一中心网格的影响力。终端对该第一子区域包括的每个第一粒子与该第一中心网格之间的权重进行求和,得到该第一权重之和。终端将该每个第一粒子对该第一中心网格的影响力进行求和,得到该第一影响力之和。
其中,该预设数量的第一粒子可以根据需要设置并更改,本发明实施例对此不做具体限定。例如,该第一预设数量的第一粒子可以为该第一子区域中第三预设数目个网格中包括的第一粒子。或者,按照第一粒子在坐标系中的位置坐标,该第一预设数量的第一粒子为x坐标由小到大的前50%的第一粒子。其中,该第三预设数目可以为1、3等小于9的任意正整数。
本发明实施例通过分次计算第一子区域中的每个第一粒子与该第一中心网格之间的权重,从而使得终端中一个流处理器(Steaming Processor)中同时运行的线程块增多,提高了并行度。
本发明实施例中,终端确定每个第一子区域中每个第一粒子对第一中心网格的第一影响力之和以及第一权重之和之后,终端还需确定第一粒子分别对于第二区域的第二中心网格的第四影响力之和以及第四权重之和,以及对于第三区域的第三中心网格的第五影响力之和以及第五权重之和。具体该过程可以为:终端根据该每个第一粒子的粒子数据和该第二子区域的第二中心网格的位置信息,确定该每个第一粒子对该第二中心网格的第四影响力之和以及第四权重之和;终端根据该每个第一粒子的粒子数据和该第三子区域的第三中心网格的位置信息,确定该每个第一粒子对该第三中心网格的第五影响力之和以及第五权重之和。
终端将该第四影响力之和、第四权重之和、第五影响力之和、第五权重之和存储到第四存储空间中。从而终端确定第二中心网格的影响力时,可以直接从该第四存储空间中获取该第四影响力之和以及第四权重之和,以及,终端确定第三中心网格的影响力时,可以直接从该第四存储空间中获取该第五影响力之和以及第五权重之和。
其中,终端确定该第四影响力之和、第四权重之和、第五影响力之和、第五权重之和的实现方式与上述步骤201中确定第一影响力之和、第一权重之和实现方式一致,此处不再一一赘述。
步骤202:终端从第二存储空间中获取第二子区域中的每个第二粒子对该第一中心网格的第二影响力之和以及第二权重之和,以及,从第三存储空间中获取该第三子区域中的每个第三粒子对该第一中心网格的第三影响力之和以及第三权重之和。
需要说明的是,该第二子区域为该第一子区域的前一个子区域,该第三子区域为该第一子区域的后一个子区域。
例如,如果将该第一区域表示为aij,则第二子区域可以表示为ai,j-1,第三子区域可以表示为ai,j+1。其中,i为m个柱状体中第i个柱状体,j为第i个柱状体的n个区域中,第j个区域。
本发明实施例中,对于柱状体中每个区域中的子区域,终端均计算并存储该子区域中的每个粒子对于该子区域的中心网格的影响力之和以及权重之和,以及,该子区域中的每个粒子对于相邻子区域的中心网格的影响力之和以及权重之和。
因此,本步骤之前,终端可以通过以下步骤2021-2022,预先确定并存储该第二影响力之和、第二权重之和、第三影响力之和以及第三权重之和。
步骤2021:终端读取该第二子区域包括的每个第二粒子的粒子数据,根据该每个第二粒子的粒子数据和该第一中心网格的位置信息,确定该每个第二粒子对该第一中心网格的第二影响力之和以及第二权重之和,将该第二影响力之和与该第二权重之和存储至该第二存储空间中。
其中,终端从该第二区域对应的第五存储空间中读取第二子区域包括的每个第二粒子的粒子数据。终端确定第二影响力之和以及第二权重之和的实现方式同步骤201中确定第一影响力之和以及第一权重之和的实现方式一致,此处不再一一赘述。
其中,如果终端为每个区域对应分配一个存储空间,该第二区域对应的第五存储空间可以为终端为该第二区域分配的存储空间,用于存储该第二区域包括的粒子的粒子数据。本发明实施例中,终端可以为该第二区域分配一个share memory,将该share memory作为第五存储空间。如果终端为第二预设数目个区域对应分配一个存储空间,该第二区域对应的第五存储空间可以为第一存储空间,即,第一存储空间与第五存储空间为同一个存储空间。
需要说明的是,该第二存储空间可以为寄存器。或者,如果终端为每个区域对应分配一个存储空间,该第二存储空间也可以为该第二区域对应的第五存储空间。
步骤2022:终端读取该第三子区域包括的每个第三粒子的粒子数据,根据该每个第三粒子的粒子数据和该第一中心网格的位置信息,确定该每个第三粒子对该第一中心网格的第三影响力之和以及第三权重之和,将该第三影响力之和与该第三权重之和存储至该第三存储空间中。
其中,终端从该第三区域对应的第六存储空间中读取第三子区域包括的每个第三粒子的粒子数据。终端确定第三影响力之和以及第三权重之和的实现方式同步骤201中确定第一影响力之和以及第一权重之和的实现方式一致,此处不再一一赘述。
其中,如果终端为每个区域对应分配一个存储空间,该第三区域对应的第六存储空间可以为终端为该第三区域分配的存储空间,用于存储该第三区域包括的粒子的粒子数据。本发明实施例中,终端可以为该第三区域分配一个share memory,将该share memory作为第六存储空间。如果终端为第二预设数目个区域对应分配一个存储空间,该第三区域对应的第六存储空间可以为第一存储空间,即,第一存储空间与第六存储空间为同一个存储空间。
需要说明的是,该第三存储空间可以为寄存器。或者,如果终端为每个区域对应分配一个存储空间,该第三存储空间也可以为该第三区域对应的第六存储空间。
进一步的,终端可以将第一影响力之和、第一权重之和、第二影响力之和、第二权重之和、第三影响力之和以及第三权重之和存储至同一个寄存器中,即,该第二存储空间、第三存储空间以及第四存储空间均相同,为同一个寄存器。或者,终端也可以为每个区域分配一个寄存器,将第一影响力之和、第一权重之和存储在第一区域对应的寄存器中,将第二影响力之和、第二权重之和存储在第二区域对应的寄存器中,将第三影响力之和、第三权重之和存储在第三区域对应的寄存器中。
步骤203:终端根据该第一影响力之和、该第一权重之和、该第二影响力之和、该第二权重之和、该第三影响力之和以及该第三权重之和,确定该第一中心网格的平均影响力。
本步骤可以为:终端对该第一影响力之和、该第二影响力之和以及该第三影响力之和进行求和,得到第一数值,并对该第一权重之和、该第二权重之和以及该第三权重之和进行求和,得到第二数值。终端将该第一数值与该第二数值之间的比值确定为该第一中心网格的平均影响力。
步骤204:终端根据该每个第一粒子的位置信息,将该每个第一粒子映射到该第一中心网格中,将该第一中心网格的影响力设置为该平均影响力。
本发明实施例中,该第一影响力之和、该第二影响力之和以及该第三影响力之和分别为该第一粒子、第二粒子以及第三粒子的预设物理量对该第一中心网格的影响力之和。终端根据每个第一粒子的位置信息,将每个第一粒子的预设物理量映射到第一中心网格中,同时,终端根据每个第一粒子的位置信息,将该第一粒子对应的第一子区域的相邻子区域中的粒子,即第二子区域中的第二粒子以及第三子区域中的第三粒子,将每个第二粒子以及第三粒子的预设物理量映射到第一中心网格中。终端将该第一中心网格的影响力设置为该平均影响力,从而确定出该第一中心网格的影响力。
本发明实施例中,终端根据读取的每个第一粒子的粒子数据和该第一子区域的第一中心网格的位置信息,确定该每个第一粒子对该第一中心网格的第一影响力之和以及第一权重之和。然后,终端获取第二子区域中的每个第二粒子对该第一中心网格的第二影响力之和以及第二权重之和,以及,该第三子区域中的每个第三粒子对该第一中心网格的第三影响力之和以及第三权重之和。终端根据该第一影响力之和、该第一权重之和、该第二影响力之和、该第二权重之和、该第三影响力之和以及该第三权重之和,确定该第一中心网格的平均影响力;并将该第一中心网格的影响力设置为该平均影响力,从而将第一中心网格周围的第一粒子、第二粒子、第三粒子的预设物理量映射到该第一中心网格中。由于终端可以分别计算每个第一中心网格对应的第一影响力之和、第一权重之和,并直接获取第二影响力之和、第二权重之和,第三影响力之和,第三权重之和,确定出第一中心网格的影响力,从而无需重复读取第一粒子、第二粒子以及第三粒子的粒子数据,节省了带宽,提高了粒子映射的效率。
本发明实施例提供了一种粒子映射装置,如图3所示,该装置包括:
读取模块301,用于对于三维空间中的第一区域的第一子区域,读取该第一子区域包括的每个第一粒子的粒子数据,并根据该每个第一粒子的粒子数据和该第一子区域的第一中心网格的位置信息,确定该每个第一粒子对该第一中心网格的第一影响力之和以及第一权重之和,任一第一粒子的粒子数据包括该任一第一粒子的位置信息和预设物理量,该第一区域为该三维空间中的任一区域,该第一子区域为该第一区域中的任一子区域,该第一子区域包括第一预设数目个网格;
获取模块302,用于从第二存储空间中获取第二子区域中的每个第二粒子对该第一中心网格的第二影响力之和以及第二权重之和,以及,从第三存储空间中获取第三子区域中的每个第三粒子对该第一中心网格的第三影响力之和以及第三权重之和,该第二子区域为该第一子区域的前一个子区域,该第三子区域为该第一子区域的后一个子区域;
第一确定模块303,用于根据该第一影响力之和、该第一权重之和、该第二影响力之和、该第二权重之和、该第三影响力之和以及该第三权重之和,确定该第一中心网格的平均影响力;
映射模块304,用于根据该每个第一粒子的位置信息,将该每个第一粒子映射到该第一中心网格中,将该第一中心网格的影响力设置为该平均影响力。
可选的,该读取模块301,还用于从该第一区域对应的第一存储空间中读取该第一区域包括的每个粒子的粒子数据;
对于该第一子区域中的第一中心网格,该读取模块301,还用于通过第一线程,根据该每个第一粒子的位置信息和该第一中心网格的位置信息,计算该每个第一粒子与该第一中心网格之间的权重;对该每个第一粒子与该第一中心网格之间的权重进行求和,得到该第一权重之和;将该每个第一粒子与该第一中心网格之间的权重与该每个第一粒子的预设物理量进行乘积,得到该每个第一粒子对该第一中心网格的影响力;将该每个第一粒子对该第一中心网格的影响力进行求和,得到该第一影响力之和。
可选的,该装置还包括:
第一划分模块,用于根据本端设备包括的每个存储空间的大小,将该三维空间划分为多个柱状体,每个柱状体包括多个网格;
第二划分模块,用于将该每个柱状体划分为多个区域;
第一存储模块,用于为该第一区域分配该第一存储空间,将该第一区域包括的粒子的粒子数据存储到该第一存储空间中。
可选的,该第一存储模块,还用于根据该第一存储空间的大小,从内存空间中读取该第一区域包括的粒子的粒子数据;将读取的粒子数据存储到该第一存储空间中。
可选的,该第一存储空间为显卡缓存shared memory。
可选的,该装置还包括:
第二存储模块,用于将该第一影响力之和,以及该第一权重之和存储到该第一区域对应的第四存储空间中。
可选的,该装置还包括:
第二确定模块,用于读取该第二子区域包括的每个第二粒子的粒子数据,根据该每个第二粒子的粒子数据和该第一中心网格的位置信息,确定该每个第二粒子对该第一中心网格的第二影响力之和以及第二权重之和,将该第二影响力之和与该第二权重之和存储至该第二存储空间中;
第三确定模块,用于读取该第三子区域包括的每个第三粒子的粒子数据,根据该每个第三粒子的粒子数据和该第一中心网格的位置信息,确定该每个第三粒子对该第一中心网格的第三影响力之和以及第三权重之和,将该第三影响力之和与该第三权重之和存储至该第三存储空间中。
可选的,该第一确定模块303,包括:
第一求和单元,用于对该第一影响力之和、该第二影响力之和以及该第三影响力之和进行求和,得到第一数值;
第二求和单元,用于对该第一权重之和、该第二权重之和以及该第三权重之和进行求和,得到第二数值;
确定单元,用于将该第一数值与该第二数值之间的比值确定为该第一中心网格的平均影响力。
本发明实施例中,终端根据读取的每个第一粒子的粒子数据和该第一子区域的第一中心网格的位置信息,确定该每个第一粒子对该第一中心网格的第一影响力之和以及第一权重之和。然后,终端从第二存储空间中获取第二子区域中的每个第二粒子对该第一中心网格的第二影响力之和以及第二权重之和,以及,从第三存储空间中获取第三子区域中的每个第三粒子对该第一中心网格的第三影响力之和以及第三权重之和。终端根据该第一影响力之和、该第一权重之和、该第二影响力之和、该第二权重之和、该第三影响力之和以及该第三权重之和,确定该第一中心网格的平均影响力;并将该第一中心网格的影响力设置为该平均影响力,从而将第一中心网格周围的第一粒子、第二粒子、第三粒子的预设物理量映射到该第一中心网格中。由于终端可以分别计算每个第一中心网格对应的第一影响力之和、第一权重之和,并直接获取第二影响力之和、第二权重之和,第三影响力之和,第三权重之和,确定出第一中心网格的影响力,从而无需重复读取第一粒子、第二粒子以及第三粒子的粒子数据,节省了带宽,提高了粒子映射的效率。
需要说明的是:上述实施例提供的粒子映射装置在粒子映射时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的粒子映射装置与粒子映射方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
参见图4,其示出了本发明实施例所涉及的粒子映射的装置的结构示意图,该终端可以用于实施上述实施例中提供的粒子映射方法。具体来讲:
终端400可以包括RF(Radio Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、WiFi(Wireless Fidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图4中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(CodeDivision Multiple Access,码分多址)、WCDMA(Wideband Code Division MultipleAccess,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(ShortMessaging Service,短消息服务)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端400的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。
输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端400的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图4中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。
终端400还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端400移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端400还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,传声器162可提供用户与终端400之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端400的通信。
WiFi属于短权重无线传输技术,终端400通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图4示出了WiFi模块170,但是可以理解的是,其并不属于终端400的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器180是终端400的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端400的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;可选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
终端400还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端400还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端400的显示单元是触摸屏显示器,终端400还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。所述一个或者一个以上程序包含用于执行确定粒子映射的指令。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。该计算机可读存储介质存储有一个或者一个以上程序,该一个或者一个以上程序被一个或者一个以上的处理器用来执行粒子映射方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。