CN111932662B - 一种大批量三维贴地尾迹的实时绘制方法及*** - Google Patents
一种大批量三维贴地尾迹的实时绘制方法及*** Download PDFInfo
- Publication number
- CN111932662B CN111932662B CN202010767626.0A CN202010767626A CN111932662B CN 111932662 B CN111932662 B CN 111932662B CN 202010767626 A CN202010767626 A CN 202010767626A CN 111932662 B CN111932662 B CN 111932662B
- Authority
- CN
- China
- Prior art keywords
- terrain
- data
- trail
- line segment
- grid
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供了一种大批量三维贴地尾迹的实时绘制方法及***,所述方法针对战场环境模拟仿真过程中,各类态势目标实时产生的大量尾迹点,通过筛选比较找出需要进行贴地线更新的尾迹,利用多线程技术对尾迹数据和地形网格数据进行组织,再利用cuda并行计算技术,对尾迹线段进行地形网格插值计算,得到贴地尾迹线。本发明可以实现战场环境模拟仿真过程中大批量三维贴地尾迹的实时绘制,与直接使用CPU插值的方式相比,可以在保证贴地效果的基础上减少插值计算,显著提升计算和绘制效率,使战场环境模拟仿真过程更加流畅。
Description
技术领域
本发明属于计算机图形学领域,尤其涉及一种大批量三维贴地尾迹的实时绘制方法及***。
背景技术
在三维战场环境模拟仿真***中,为了表现各类态势目标的运动状态,需要以尾迹作为辅助渲染要素来直观反映态势目标的运动轨迹,并进行目标行动意图的预测等,在战场环境仿真及辅助决策中起到重要的作用。三维态势目标的运动表现为仿真***接收到的一批批的尾迹点数据,在三维场景绘制中对这些尾迹点进行各种修饰处理,以形式各样的尾迹线的方式进行显示。对于地面的态势目标而言,其运动轨迹必然是沿着地形起伏变化而产生的,仅仅通过目标尾迹点的拟合并不能完全保证与地形数据的匹配。因此,为了使三维战场环境模拟仿真***的显示效果更加真实而又美观,在使用地形数据构建基础地形环境的前提下,需要对态势目标的尾迹线进行贴地插值计算,得到其与当前地形网格的交点,构成新的尾迹点集合。以此来进行尾迹线的绘制,可以更好地保证尾迹线与地形起伏状态的匹配。
战场环境模拟仿真***中的态势目标数量可能会比较大,其产生的尾迹点数量会随着模拟过程的进行持续增加,也导致全尾迹模式下需要绘制的尾迹点数量变得很大。在这种情况下,如果采用传统方法,直接使用CPU进行贴地线插值计算,需要花费较多时间,渲染效率很低,即便使用多线程进行计算,受限于CPU核心数,在数据量达到一定程度时仍无法满足实时绘制的需求。
发明内容
发明目的:针对目前三维战场环境模拟仿真***中,渲染大批量态势目标贴地尾迹时出现的诸如卡顿、帧率过低、刷新迟缓等问题,本发明提供一种大批量三维贴地尾迹的实时绘制方法,包括如下步骤:
步骤1,请求筛选及提交:筛选出三维场景中需要进行更新的态势目标,构建更新请求;对当前三维场景中的态势目标尾迹进行遍历,根据当前三维场景中渲染的地形网格的索引,与缓存数据进行比对,筛选出因地形变化需要更新的贴地尾迹;根据尾迹点是否发生变化,筛选出需要进行地形网格插值的贴地尾迹,提交更新请求;
步骤2,对更新请求进行去重,过滤已存在的请求;根据尾迹缓存信息,筛选出需要更新的线段,将线段的尾迹点数据与地形网格数据,处理成数据流,提交给贴地线计算线程;采用多线程技术,将请求处理放在辅助线程中进行,避免对渲染线程造成阻塞影响渲染效率;
步骤3,贴地线插值:基于步骤2得到的数据流,采用cuda并行计算技术进行贴地线插值计算,根据计算需要分配GPU资源,将处理后的数据提交给GPU,让GPU进行插值计算;由步骤2中筛选的线段与地形网格进行求交插值计算,得到插值结果,计算出符合地形起伏规律的贴地尾迹线。
步骤1包括:
步骤1-1,对三维场景中的态势目标进行可见性判断,只需要处理当前可见的目标,不可见的目标不处理;
步骤1-2,获取当前三维场景渲染所使用的地形网格的索引,三维场景地形网格按层级_行_列的形式建立索引,与缓存中的地形网格索引进行比较,判断三维场景中的地形是否发生变化,只在地形变化时进行贴地尾迹更新,地形未发生改变时不需要进行更新;
步骤1-3,判断是否存在尾迹点发生改变的态势目标,对发生改变的态势目标,进行贴地尾迹更新;
步骤1-4,根据步骤1-1~步骤1-3的处理,筛选出需要进行更新的对象,构建更新请求。
步骤2包括:
步骤2-1,维护一个请求队列,用于管理步骤1中构建的更新请求,将步骤1构建的更新请求与保存在请求队列中的请求进行比较,判断是否存在重复请求,将重复请求过滤掉,更新请求队列;
步骤2-2,使用从三维场景获取的当前场景绘制所使用的地形数据来进行后续计算,根据当前地形网格索引得到地形网格数据,将地形网格每个顶点的地理坐标按“经度-纬度-高程值”的形式写入数据流,以三个浮点数存储一个顶点地理坐标,分别为顶点经度、纬度、高程值,将所有顶点坐标存储在数组中,用于提交步骤3计算;
步骤2-3,每次贴点尾迹更新完成后,将线段起点和终点坐标以及与线段相交的地形网格索引保存在尾迹缓存中。在处理请求队列中的更新请求时,根据更新队列中态势目标的尾迹控制点,得到控制点线段集合,得到当前与线段相交的地形网格索引后,与尾迹缓存进行比较,判断线段所涉及的地形网格是否发生变化,如果变化则需要对线段重新进行地形网格插值计算;
步骤2-4,步骤2-3中筛选出的线段顶点按“经度-纬度”的形式写入数据流,以两个浮点数存储一个顶点地理坐标,分别为顶点经度、纬度,将所有顶点坐标存储在数组中,用于提交步骤3计算;
步骤2-5,将地形数据流和尾迹线段数据流提交给步骤3进行计算;
步骤2-6,更新请求队列。
步骤3包括:
步骤3-1,接收到步骤2传入的地形网格数据和尾迹线段数据流中的尾迹线段坐标数据后,根据线段数量,分配GPU计算线程,线程数为n时,设置线程块block大小为1024,线程网格grid大小为(n+1024-1)/1024;n取值为自然数;
步骤3-2,采用cuda并行计算技术,将控制点坐标数据和地形网格数据提交给GPU;
步骤3-3,在GPU中执行计算过程,以每个线段的插值作为一个独立的计算过程,根据线段起点终点地理坐标,构建直线方程(y-y1)/(y1-y2)=(x-x1)/(x1-x2),其中x、y分别表示线段任一点的经度和纬度,x1、y1分别表示线段起点的经度和纬度,x2、y2分别表示线段终点的经度和纬度,计算线段与地形网格中所有三角形的交点,与线段起点和终点共同组成插值坐标集合,构成完整的贴地尾迹,使尾迹线能够充分匹配地形起伏。
本发明还提供了一种大批量三维贴地尾迹的实时绘制***,包括数据调度模块、数据组织模块和贴地线计算模块;
其中,所述数据调度模块由CPU渲染线程执行,用于,筛选出三维场景中需要进行更新的态势目标,构建更新请求,并提交给数据组织模块;
所述数据组织模块由CPU辅助线程执行,用于,对更新请求进行去重,过滤已存在的请求;根据尾迹缓存信息,筛选出需要更新的线段,将地形网格数据和线段控制点信息数据处理成数据流,并提交给贴地线计算模块;
所述贴地线计算模块由CPU辅助线程和GPU执行,基于步骤2得到的数据流,采用cuda并行计算技术进行贴地线插值计算,根据计算需要分配GPU资源,将处理后的数据提交给GPU,让GPU进行插值计算;根据筛选的线段与地形网格进行求交插值计算,得到插值结果,计算出符合地形起伏规律的贴地尾迹线。
所述数据调度模块具体执行如下步骤:
步骤1-1,对三维场景中的态势目标进行可见性判断,只需要处理当前可见的目标,不可见的目标不处理;
步骤1-2,获取当前三维场景渲染所使用的地形网格的索引,三维场景地形网格按层级_行_列的形式建立索引,与缓存中的地形网格索引进行比较,判断三维场景中的地形是否发生变化,只在地形变化时进行贴地尾迹更新,地形未发生改变时不需要进行更新;
步骤1-3,判断是否存在尾迹点发生改变的态势目标,对发生改变的态势目标,进行贴地尾迹更新;
步骤1-4,根据步骤1-1~步骤1-3的处理,筛选出需要进行更新的对象,构建更新请求。
所述数据组织模块具体执行如下步骤:
步骤2-1,维护一个请求队列,用于管理步骤1中构建的更新请求,将步骤1构建的更新请求与保存在请求队列中的请求进行比较,判断是否存在重复请求,将重复请求过滤掉,更新请求队列;
步骤2-2,使用从三维场景获取的当前场景绘制所使用的地形数据来进行后续计算,根据当前地形网格索引得到地形网格数据,将地形网格每个顶点的地理坐标按“经度-纬度-高程值”的形式写入数据流;
步骤2-3,每次贴点尾迹更新完成后,将线段起点和终点坐标以及与线段相交的地形网格索引保存在尾迹缓存中。在处理请求队列中的更新请求时,根据更新队列中态势目标的尾迹控制点,得到控制点线段集合,计算得到当前与线段相交的地形网格索引后,与尾迹缓存进行比较,根据当前地形网格索引,判断线段所涉及的地形网格是否发生变化,如果变化则需要对线段重新进行地形网格插值计算;
步骤2-4,将步骤2-3中筛选出的线段顶点按“经度-纬度”的形式写入数据流;
步骤2-5,保存地形数据流和尾迹线段数据流用于后续计算;
步骤2-6,更新请求队列。
所述贴地线计算模块具体执行如下步骤:
步骤3-1,载入步骤2-5保存的地形数据流中的地形网格数据和尾迹线段数据流中的尾迹线段坐标数据,根据线段数量,分配GPU计算线程,线程数为n时,设置线程块block大小为1024,线程网格grid大小为(n+1024-1)/1024;
步骤3-2,采用cuda并行计算技术,将控制点坐标数据和地形网格数据提交给GPU;
步骤3-3,在GPU中执行计算过程,以每个线段的插值作为一个独立的计算过程,根据线段起点终点地理坐标,构建直线方程(y-y1)/(y1-y2)=(x-x1)/(x1-x2),其中x、y分别表示线段任一点的经度和纬度,x1、y1分别表示线段起点的经度和纬度,x2、y2分别表示线段终点的经度和纬度,计算线段与地形网格中所有三角形的交点,与线段起点和终点共同组成插值坐标集合,构成完整的贴地尾迹,使尾迹线能够充分匹配地形起伏。
相较于CPU的多线程计算而言,GPU能够提供远远超过前者的并行计算能力。GPU拥有较前者更多的计算单元,针对多数据流能够同时执行重复的简单计算,利用GPU的并行计算特点,将重复的计算任务分配给GPU来执行,可以显著提升计算效率,同时能够减轻CPU的计算压力。
综上所述,使用GPU并行计算技术代替CPU多线程计算,进行重复过程的插值点计算,能够突破性能瓶颈,为三维态势目标贴地尾迹绘制提供更高的计算能力,保证大批量态势目标贴地尾迹的绘制效率,使三维战场环境仿真更加流畅。
本发明与现有技术相比,显著优点是:1、本发明使用地形网格索引、尾迹缓存对尾迹进行筛选,减少需要进行贴地计算的线段数量,降低整体计算量;2、本发明采用cuda并行计算技术,将大量耗时的贴地线插值计算交给GPU进行处理,发挥GPU的并行计算优势,减少CPU的计算负担,提升计算和渲染效率,使战场环境模拟仿真过程更加流畅;3、本发明采用多线程技术,将请求处理和贴地线计算分别放到独立的辅助线程中处理,使用请求处理和插值计算能够并行处理,提升了请求处理的效率,同时减少了对渲染线程的影响。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1是本发明实施的总体流程图。
图2是本发明实施的数据调度模块流程图。
图3是本发明实施的数据组织模块流程图。
图4是本发明实施的贴地线计算模块流程图。
具体实施方式
本发明提出一种大批量三维贴地尾迹的实时绘制方法及***,大批量贴地尾迹线的实时绘制方法,该方法采用cuda并行计算技术,将消耗CPU资源较多的贴地线插值计算过程交给GPU来处理,充分发挥GPU的并行计算优势,合理利用CPU和GPU的计算资源,以达到提高计算速度,优化渲染效率的目的。
如图1所示,所述方法首先对当前地形网格进行判断,以确定是否需要进行贴地尾迹的更新,将需要进行贴地尾迹更新的对象筛选出来,并提交请求;请求处理线程接收到更新请求后,筛选出需要更新的尾迹线段,使用尾迹点的地理坐标等信息填充顶点数据集合,并使用当前地形网格数据填充地形数据集合,然后将这些准备好的数据集合提交给计算线程;计算线程接收到处理好的数据集合后,根据计算需求分配GPU资源,将数据提交给GPU,按照指定的计算方式进行地形网格求交插值计算。
该绘制方法主要由数据调度模块、数据组织模块和贴地线计算模块三部分组成。以下对各部分流程做详细介绍。
数据调度模块:
贴地线的更新并不需要持续进行,在仿真模拟的过程中,如果当前场景显示的地形起伏发生改变,那么贴地尾迹也需要相应地进行更新;同样,如果尾迹点本身发生改变,也需要对其进行更新。因此该模块负责地形网格管理、尾迹筛选以及请求提交等。主要是对相关的数据进行存储和比较,筛选出需要提交更新请求的尾迹线,如图2所示,详细步骤如下:
(1)对仿真***中存在的N个态势目标,通过可见性判断,筛选出其中的M个需要绘制的态势目标。
(2)从三维场景渲染中得到当前使用的地形网格,以“层级_行_列”的形式建立索引,得到索引列表I,搜索地形网格索引缓存,检查索引列表I是否与缓存中的索引完全一致,发现存在差异即准备提交贴地尾迹更新请求。
(3)如果前一步中地形网格没有差异,则判断态势目标的尾迹点是否发生变化,如果有变化则准备提交贴地尾迹更新请求。
(4)经过前面的判断,从可见的态势目标中筛选出K个需要进行贴地尾迹更新的态势目标,为其创建更新请求并提交给辅助线程处理。
数据组织模块:
提交后的请求在辅助线程中进行处理,以减少对三维场景渲染效率的影响。对于将要处理的请求,需要经过数据处理之后方可提交GPU进行计算。因此该模块负责接收数据调度模块发出的贴地尾迹更新请求,对请求进行去重,筛选出需要进行贴地计算的控制点线段,并获取地形数据,进行处理后提交给贴地线计算模块进行计算,如图3所示,详细步骤如下:
(1)接收到提交的更新请求后,与维护的请求队列进行比较,在队列中查找对应的态势目标,将不在队列中的请求加入队列,重复的请求抛弃。
(2)从三维场景渲染中得到当前的地形网格集合T,对集合T中的任一地形网格grid,遍历其顶点数据,将每一个顶点的地理坐标按“经度-纬度-高程值”的形式进行组织,将地形网格集合T中的所有顶点地理坐标写入数据流StreamT。
(3)对请求队列中的每一个态势目标,按其尾迹点的顺序组成线段列表,以线段起点sp和重点ep的地理坐标为边界条件,查找地形网格集合T中与线段sp-ep相交的的网格,得到网格列表A,与尾迹缓存中对应的列表B进行比较,如果A与B不完全一致则需要对该尾迹重新进行插值计算。
(4)对需要重新进行插值计算的线段,将线段起点sp和终点ep的地理坐标按“经度-纬度”方式进行组织,将所有线段顶点坐标写入数据流StreamV。
(5)将组织好的地形网格数据流StreamT和尾迹线段数据流StreamV提交给贴地线计算线程。
贴地线计算模块:
利用GPU的并行计算能力,可以对大量重复性的计算进行高效的并行处理,极大的减少计算所需要的时间。该模块负责分配GPU计算资源,将处理后的数据提交给GPU,让GPU进行计算处理,并获取计算结果。如图4所示,详细步骤如下:
(1)根据传入的线段数量,为每一个线段分配一个GPU计算线程。
(2)将地形网格数据流StreamT和尾迹线段数据流StreamV传入GPU。
(3)GPU从尾迹线段数据流StreamV中得到每个线段的起点sp和终点ep的地理坐标,在分配好的每一个线程中执行一个线段的地形网格插值计算。对一条线段L,以(y-sp.y)/(sp.y–ep.y)=(x-sp.x)/(sp.x-ep.x)建立直线方程f,在地形网格数据流StreamT中得到地形网格集合T,计算出与线段L相交的网格列表A,对列表A中的每一个地形网格,求解直线方程与网格中三角形的交点列表P={p1,p2,……pN},与起点sp和终点ep组成该插值坐标集合{sp,p1,p2,……pN,ep}。
(4)GPU所有线程计算完成后,将计算结果交还给CPU,更新尾迹缓存。
本发明提供了一种大批量三维贴地尾迹的实时绘制方法及***,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
Claims (2)
1.一种大批量三维贴地尾迹的实时绘制方法,其特征在于,包括如下步骤:
步骤1,筛选出三维场景中需要进行更新的态势目标,构建更新请求;
步骤2,对更新请求进行去重,过滤已存在的请求;根据尾迹缓存信息,筛选出需要更新的线段,将地形网格数据和线段控制点信息数据处理成数据流;
步骤3,贴地线插值:基于步骤2得到的数据流,采用cuda并行计算技术进行贴地线插值计算,根据计算需要分配GPU资源,将处理后的数据提交给GPU,让GPU进行插值计算;由步骤2中筛选的线段与地形网格进行求交插值计算,得到插值结果,计算出符合地形起伏规律的贴地尾迹线;
步骤1包括:
步骤1-1,对三维场景中的态势目标进行可见性判断,只处理当前可见的目标,不可见的目标不处理;
步骤1-2,获取当前三维场景渲染所使用的地形网格的索引,三维场景地形网格按层级_行_列的形式建立索引,与缓存中的地形网格索引进行比较,判断三维场景中的地形是否发生变化,只在地形变化时进行贴地尾迹更新,地形未发生改变时不需要进行更新;
步骤1-3,判断是否存在尾迹点发生改变的态势目标,对发生改变的态势目标,进行贴地尾迹更新;
步骤1-4,根据步骤1-1~步骤1-3的处理,筛选出需要进行更新的对象,构建更新请求;
步骤2包括:
步骤2-1,维护一个请求队列,用于管理步骤1中构建的更新请求,将步骤1构建的更新请求与保存在请求队列中的请求进行比较,判断是否存在重复请求,将重复请求过滤掉,更新请求队列;
步骤2-2,使用从三维场景获取的当前场景绘制所使用的地形数据来进行后续计算,根据当前地形网格索引得到地形网格数据,将地形网格每个顶点的地理坐标按经度-纬度-高程值的形式写入数据流;
步骤2-3,每次贴点尾迹更新完成后,将线段起点和终点坐标以及与线段相交的地形网格索引保存在尾迹缓存中;在处理请求队列中的更新请求时,根据更新队列中态势目标的尾迹控制点,得到控制点线段集合,得到当前与线段相交的地形网格索引后,与尾迹缓存进行比较,判断线段所涉及的地形网格是否发生变化,如果变化则需要对线段重新进行地形网格插值计算;
步骤2-4,将步骤2-3中筛选出的线段顶点按经度-纬度的形式写入数据流;
步骤2-5,将地形数据流和尾迹线段数据流提交给步骤3进行计算;
步骤2-6,更新请求队列;
步骤3包括:
步骤3-1,接收到步骤2传入的地形网格数据和尾迹线段数据流中的尾迹线段坐标数据后,根据线段数量,分配GPU计算线程,线程数为n时,设置线程块block大小为1024,线程网格grid大小为(n+1024-1)/1024;
步骤3-2,采用cuda并行计算技术,将控制点坐标数据和地形网格数据提交给GPU;
步骤3-3,在GPU中执行计算过程,以每个线段的插值作为一个独立的计算过程,根据线段起点终点地理坐标,构建直线方程(y-y1)/(y1-y2)=(x-x1)/(x1-x2),其中x、y分别表示线段任一点的经度和纬度,x1、y1分别表示线段起点的经度和纬度,x2、y2分别表示线段终点的经度和纬度,计算线段与地形网格中所有三角形的交点,与线段起点和终点共同组成插值坐标集合,构成完整的贴地尾迹,使尾迹线能够充分匹配地形起伏。
2.一种大批量三维贴地尾迹的实时绘制***,其特征在于,包括数据调度模块、数据组织模块和贴地线计算模块;
其中,所述数据调度模块由CPU渲染线程执行,用于,筛选出三维场景中需要进行更新的态势目标,构建更新请求,并提交给数据组织模块;
所述数据组织模块由CPU辅助线程执行,用于,对更新请求进行去重,过滤已存在的请求;根据尾迹缓存信息,筛选出需要更新的线段,将地形网格数据和线段控制点信息数据处理成数据流,并提交给贴地线计算模块;
所述贴地线计算模块由CPU辅助线程和GPU执行,用于,基于数据组织模块得到的数据流,采用cuda并行计算技术进行贴地线插值计算,根据计算需要分配GPU资源,将处理后的数据提交给GPU,让GPU进行插值计算;根据筛选的线段与地形网格进行求交插值计算,得到插值结果,计算出符合地形起伏规律的贴地尾迹线;
所述数据调度模块具体执行如下步骤:
步骤1-1,对三维场景中的态势目标进行可见性判断,只需要处理当前可见的目标,不可见的目标不处理;
步骤1-2,获取当前三维场景渲染所使用的地形网格的索引,三维场景地形网格按层级_行_列的形式建立索引,与缓存中的地形网格索引进行比较,判断三维场景中的地形是否发生变化,只在地形变化时进行贴地尾迹更新,地形未发生改变时不需要进行更新;
步骤1-3,判断是否存在尾迹点发生改变的态势目标,对发生改变的态势目标,进行贴地尾迹更新;
步骤1-4,根据步骤1-1~步骤1-3的处理,筛选出需要进行更新的对象,构建更新请求;
所述数据组织模块具体执行如下步骤:
步骤2-1,维护一个请求队列,用于管理所述数据调度模块构建的更新请求,将所述数据调度模块构建的更新请求与保存在请求队列中的请求进行比较,判断是否存在重复请求,将重复请求过滤掉,更新请求队列;
步骤2-2,使用从三维场景获取的当前场景绘制所使用的地形数据来进行后续计算,根据当前地形网格索引得到地形网格数据,将地形网格每个顶点的地理坐标按经度-纬度-高程值的形式写入数据流;
步骤2-3,每次贴点尾迹更新完成后,将线段起点和终点坐标以及与线段相交的地形网格索引保存在尾迹缓存中;在处理请求队列中的更新请求时,根据更新队列中态势目标的尾迹控制点,得到控制点线段集合,与尾迹缓存进行比较,判断线段所涉及的地形网格是否发生变化,如果变化则需要对线段重新进行地形网格插值计算;
步骤2-4,将步骤2-3中筛选出的线段顶点按经度-纬度的形式写入数据流;
步骤2-5,保存地形数据流和尾迹线段数据流用于后续计算;
步骤2-6,更新请求队列;
所述贴地线计算模块具体执行如下步骤:
步骤3-1,载入所述数据组织模块保存的地形数据流中的地形网格数据和尾迹线段数据流中的尾迹线段坐标数据,根据线段数量,分配GPU计算线程,线程数为n时,设置线程块block大小为1024,线程网格grid大小为(n+1024-1)/1024;
步骤3-2,采用cuda并行计算技术,将控制点坐标数据和地形网格数据提交给GPU;
步骤3-3,在GPU中执行计算过程,以每个线段的插值作为一个独立的计算过程,根据线段起点终点地理坐标,构建直线方程(y-y1)/(y1-y2)=(x-x1)/(x1-x2),其中x、y分别表示线段任一点的经度和纬度,x1、y1分别表示线段起点的经度和纬度,x2、y2分别表示线段终点的经度和纬度,计算线段与地形网格中所有三角形的交点,与线段起点和终点共同组成插值坐标集合,构成完整的贴地尾迹,使尾迹线能够充分匹配地形起伏。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010767626.0A CN111932662B (zh) | 2020-08-03 | 2020-08-03 | 一种大批量三维贴地尾迹的实时绘制方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010767626.0A CN111932662B (zh) | 2020-08-03 | 2020-08-03 | 一种大批量三维贴地尾迹的实时绘制方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111932662A CN111932662A (zh) | 2020-11-13 |
CN111932662B true CN111932662B (zh) | 2022-10-04 |
Family
ID=73306360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010767626.0A Active CN111932662B (zh) | 2020-08-03 | 2020-08-03 | 一种大批量三维贴地尾迹的实时绘制方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111932662B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105184017A (zh) * | 2015-09-30 | 2015-12-23 | 成都赫尔墨斯科技有限公司 | 一种基于OpenSceneGraph的实时战场仿真***及方法 |
CN105336003A (zh) * | 2015-09-28 | 2016-02-17 | 中国人民解放军空军航空大学 | 结合gpu技术实时流畅绘制出三维地形模型的方法 |
GB201600642D0 (en) * | 2016-01-13 | 2016-02-24 | Sony Computer Entertainment Inc | Apparatus and method of image rendering |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8325177B2 (en) * | 2008-12-29 | 2012-12-04 | Microsoft Corporation | Leveraging graphics processors to optimize rendering 2-D objects |
-
2020
- 2020-08-03 CN CN202010767626.0A patent/CN111932662B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105336003A (zh) * | 2015-09-28 | 2016-02-17 | 中国人民解放军空军航空大学 | 结合gpu技术实时流畅绘制出三维地形模型的方法 |
CN105184017A (zh) * | 2015-09-30 | 2015-12-23 | 成都赫尔墨斯科技有限公司 | 一种基于OpenSceneGraph的实时战场仿真***及方法 |
GB201600642D0 (en) * | 2016-01-13 | 2016-02-24 | Sony Computer Entertainment Inc | Apparatus and method of image rendering |
Also Published As
Publication number | Publication date |
---|---|
CN111932662A (zh) | 2020-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20080079734A1 (en) | Updating Frame Divisions Based on Ray Tracing Image Processing System Performance | |
CN110502594B (zh) | 一种遥感影像地图瓦片实时融合与在线更新方法 | |
DE102018132468A1 (de) | Multi-gpu-frame-rendern | |
US8284195B2 (en) | Cooperative utilization of spatial indices between application and rendering hardware | |
US20080079714A1 (en) | Workload Distribution Through Frame Division in a Ray Tracing Image Processing System | |
CN103439743A (zh) | 一种地震数据剖面图形绘制方法 | |
CN101937425B (zh) | 基于gpu众核平台的矩阵并行转置方法 | |
CN105654552B (zh) | 一种面向任意分布大规模点云数据的快速Delaunay构网方法 | |
CN109364483A (zh) | 大场景地图分割方法及应用其的玩家视角场景更新方法 | |
CN105261066A (zh) | 一种三维地理信息***实时绘制多线程分配与控制方法 | |
CN109237999A (zh) | 一种批量三维态势目标尾迹实时绘制方法和*** | |
CN111782745B (zh) | 一种时空大数据网格编码高效可视化方法及*** | |
CN112236760A (zh) | 一种图数据的更新方法、***、计算机可读存储介质及设备 | |
CN112184864A (zh) | 一种百万量级三维态势目标的实时绘制方法 | |
CN104700413A (zh) | 一种三维虚拟场景的植被实时动态绘制方法 | |
DE102012213846A1 (de) | Echtzeit-Euler'sche Wassersimulation unter Benutzung eines beschränkten Groß-Zelle-Gitters | |
Zhang | Speeding up large-scale geospatial polygon rasterization on GPGPUs | |
CN111932662B (zh) | 一种大批量三维贴地尾迹的实时绘制方法及*** | |
CN115100227A (zh) | 一种cpu-gpu协同的遥感影像边缘检测并行计算方法 | |
CN106484532B (zh) | 面向sph流体模拟的gpgpu并行计算方法 | |
Stojanovic et al. | High performance processing and analysis of geospatial data using CUDA on GPU | |
CN114373058A (zh) | 一种基于虚幻引擎的海面网格动态划分及高度场生成方法 | |
CN111766623B (zh) | 一种基于mpi进程拓扑的地震波场三维正演模拟方法 | |
Liang et al. | A Survey on Spatio-temporal Big Data Analytics Ecosystem: Resource Management, Processing Platform, and Applications | |
CN109359205A (zh) | 一种基于地理格网的遥感影像切分方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |