CN104318509A - 一种基于gpu的大批量目标高速标绘方法 - Google Patents
一种基于gpu的大批量目标高速标绘方法 Download PDFInfo
- Publication number
- CN104318509A CN104318509A CN201410603084.8A CN201410603084A CN104318509A CN 104318509 A CN104318509 A CN 104318509A CN 201410603084 A CN201410603084 A CN 201410603084A CN 104318509 A CN104318509 A CN 104318509A
- Authority
- CN
- China
- Prior art keywords
- target
- mark
- fragment
- summit
- army
- 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.)
- Granted
Links
Abstract
本发明公开了一种基于GPU的大批量目标高速标绘方法,它涉及指挥自动化系统军事标图领域中的一种基于GPU的点状军标符号绘制的技术。它使用CPU把大批量目标的属性数据传递给GPU,基于GPU的并行计算能力,使用顶点着色器和片段着色器直接把每个目标的属性信息转换为对应的军标符号绘制。还具有适应大批量目标实时高速标绘的能力,具有支持至少千种以上军标符号类型的能力,具有军标符号类型扩展简单且能保持基于CPU绘制美观的特点。特别适用于计算机态势标绘中大批量、实时动态目标高速标绘应用方面。
Description
技术领域
本发明涉及指挥自动化系统军事标图领域中的一种基于GPU的点状军标符号绘制方法,特别适用于大批量、实时动态目标高速标绘应用。
背景技术
军事标图作为指挥自动化的一个重要组成部分,具有简单迅速、形象直观、概括力强、清晰易读的特点,是反映战场态势的重要手段,广泛应用于战场监控、作战值班、作战指挥、模拟训练等方面。目前,主流的军事标图系统主要基于CPU逐条调用绘图设备图元绘制指令的方式实现军标符号的绘制,其特点为实现简单、易于控制、绘制效果美观、效率较低,随着侦察手段的进步、侦察范围的扩大、多源情报的接入等军事应用的发展,大批量、高动态目标标绘的现实需求已经成为军事标图系统需要解决的关键问题,当前基于CPU逐条调用绘图设备图元绘制指令的方式从根本上制约了军标符号绘制效率的提高。
发明内容
本发明所要解决的技术问题就是避免上述背景技术中的不足之处而提供一种基于GPU的军标符号绘制方法,该方法使用CPU把大批量目标的属性数据传递给GPU,基于GPU的并行计算能力,使用顶点着色器和片段着色器直接把每个目标的属性信息转换为对应的军标符号绘制,由于绘制的工作主要基于GPU且由于GPU的并行性特点从而实现大批量目标的高速标绘。
本发明具有适应大批量目标实时高速标绘的能力,具有支持至少千种以上军标符号类型的能力,具有军标符号类型扩展简单且能保持基于CPU绘制美观的特点。
本发明目的是这样实现的:
一种基于GPU的大批量目标高速标绘方法,其特征在于包括以下步骤:
①制作RGBA格式的军标纹理贴图,每幅纹理贴图中包含多个军标;
②设置包含多个目标标绘数据的数组,每个目标标绘数据以顶点的数据格式进行存储,每个目标标绘数据对应一个顶点;每个目标标绘数据的信息内容包含位置、方向、敌我属性、类型、大小、选中标志和显隐标志;每个顶点包含一个三维向量的浮点型坐标值与一个二维向量的整数型纹理坐标值;其中顶点的浮点型坐标值中的第一个分量和第二个分量对应目标点的屏幕坐标,顶点的浮点型坐标值中的第三个分量对应目标的方向;顶点的整数型纹理坐标值中的第一个分量代表目标的敌我属性和类型,类型包含军标页号和军标序号;顶点的整数型纹理坐标值中的第二个分量代表目标的大小、选中标志和显隐标志;
③将步骤①得到的军标纹理贴图载入到显卡的存储单元;
④将顶点着色器和片段着色器载入到显卡的存储单元;
⑤设置图形绘制环境的投影方式为正交投影;
⑥根据目标状态的变化,实时更新目标标绘数据的数组;
⑦将更新后的目标标绘数据数组以顶点的格式载入到显卡的存储单元形成顶点数组;
⑧利用GPU调用顶点着色器和片段着色器绘制顶点数组;
完成基于GPU的大批量目标高速标绘方法。
其中,步骤⑧具体包括以下步骤:
(201)使用顶点着色器获取顶点的三维向量的浮点型坐标值与二维向量的整数型纹理坐标值并进行记录,提供给片段着色器使用;
(202)利用显卡的固有的图形处理流程对顶点进行栅格化处理,形成该顶点对应的多个片段,计算每个片段以该顶点为中心的相对坐标;
(203)通过对顶点的整数型纹理坐标值计算,得到目标的敌我属性、军标页号、军标序号、大小、选中标志和显隐标志;
(204)根据目标的大小、目标的航向即顶点浮点型坐标值中的第三个分量、目标的军标序号计算每个片段的整数型纹理坐标;
(205)根据每个片段纹理坐标和军标页号获取对应的军标纹理贴图在该纹理坐标位置的颜色值作为该片段的颜色值;
(206)根据目标的显示标志和选中标志调整片段是否显示;
(207)根据目标敌我属性修改片段的颜色值;
(208)输出片段颜色并结束。
本发明与背景技术相比具有如下优点:
1本发明使用CPU把大批量目标的属性数据直接传递给GPU,利用GPU实现对目标的军标符号的绘制,由于绘制的工作主要基于GPU且由于GPU的并行性特点因此能够实现对大批量目标的高速标绘。
2本发明由于使用纹理贴图实现对军标的绘制,因此使军标符号绘制结果的美观性得以极大支持。
3本发明由于基于GPU使用着色器实现军标符号的绘制,依靠着色器对像素的强大操控能力可以轻松实现基于CPU绘制军标符号时花费大代价且使用复杂算法才能实现的特殊效果。
4本发明使用的军标纹理贴图易于制作,与传统的军标符号管理系统比较极大地降低了开发难度和工作量。
附图说明
图1是本发明基于GPU使用着色器和纹理贴图实现军标符号的绘制的示意图。
具体实施方式
参照图1,本发明基于GPU通过顶点着色器实现顶点位置的计算,通过栅格化输出顶点对应的一组片段作为片段着色器的输入,通过片段着色器根据片段对应顶点的军标页号、序号、大小等属性、片段对应的相对坐标以及军标纹理计算片段的颜色和Alpha值,根据敌我属性修改片段颜色,最后经由Alpha测试输出需要显示的片段到屏幕,实现最终的军标符号显示。本发明使军标符号的绘制不再依赖于CPU对图元指令的单调重复调用,而把主要绘制过程迁移到了GPU,利用GPU的并行特性大大减少了大批量目标的绘制时间。
一种基于GPU的大批量目标高速标绘方法,其特征在于包括以下步骤:
①制作RGBA格式的军标纹理贴图,每幅纹理贴图中包含多个军标;
实施例每幅纹理贴图大小和每个军标大小可以根据需要的显示效果进行设置,以像素为单位如果设定每幅纹理贴图大小为1024*1024,每个军标大小为64*64,此时每幅贴图可包含256个军标,如果设定每个军标大小为128*128,此时每幅贴图可包含64个军标,使用多张纹理贴图即可满足千种以上类型的军标的需要。对每个军标覆盖的像素的Alpha值设置为1,其他像素的Alpha值设置为0,在绘制时通过Alpha测试使Alpha大于0.5的片段通过,小于0.5的片段不通过即可实现军标覆盖的像素输出到屏幕,其他像素不输出到屏幕。
②设置包含多个目标标绘数据的数组,每个目标标绘数据以顶点的数据格式进行存储,每个目标标绘数据对应一个顶点;每个目标标绘数据的信息内容包含位置、方向、敌我属性、类型、大小、选中标志和显隐标志;每个顶点包含一个三维向量的浮点型坐标值与一个二维向量的整数型纹理坐标值;其中顶点的浮点型坐标值中的第一个分量和第二个分量对应目标点的屏幕坐标,顶点的浮点型坐标值中的第三个分量对应目标的方向;顶点的整数型纹理坐标值中的第一个分量代表目标的敌我属性和类型,类型包含军标页号和军标序号;顶点的整数型纹理坐标值中的第二个分量代表目标的大小、选中标志和显隐标志;
实施例由于要利用显卡对批量数据进行绘制必须使批量数据满足显卡对输入数据的格式要求,因此每个目标标绘数据必须转换成顶点的数据格式以形成顶点的数组输入到显卡。在此利用顶点的一个三维向量的浮点型坐标属性和一个二维向量的整数型纹理坐标属性即可存储每个目标标绘数据的信息内容包含位置、方向、敌我属性、类型、大小、选中标志和显隐标志。已常用映射为例,顶点的整数型纹理坐标值中的第一个分量=目标的敌我属性*65536+目标的军标页号*256+目标的军标序号,此时在使用GPU反算目标敌我属性=(顶点的整数型纹理坐标值中的第一个分量/65536)&255,使用GPU反算目标的军标页号=(顶点的整数型纹理坐标值中的第一个分量/256)&255,使用GPU反算目标的军标序号=顶点的整数型纹理坐标值中的第一个分量&255;顶点的整数型纹理坐标值中的第二个分量=目标的大小*65536+选中标志*256+显隐标志,此时使用GPU反算目标的大小=(顶点的整数型纹理坐标值中的第二个分量/65536)&255,使用GPU反算目标的选中标志=(顶点的整数型纹理坐标值中的第二个分量/256)&255,使用GPU反算目标的显隐标志=顶点的整数型纹理坐标值中的第二个分量&255。
③将步骤①得到的军标纹理贴图载入到显卡的存储单元;
实施例由于显卡的存储单元对军标纹理贴图大小的限制因此需要载入多张军标纹理贴图到显卡的存储单元才能支持千种以上军标类型,在GPU计算片段的颜色值时即查找目标的军标页号对应的军标纹理贴图相应位置的颜色值。
④将顶点着色器和片段着色器载入到显卡的存储单元;
实施例顶点着色器是一组指令代码,这组指令代码在顶点被渲染时调用,片段着色器处理来自光栅化器的数据,对光栅化形成的片段(像素)逐个计算颜色。将顶点着色器和片段着色器载入到显卡的存储单元即可在图形流水线中使用GPU执行。
⑤设置图形绘制环境的投影方式为正交投影;
实施例投影方式一般可设置为正交投影(正射投影)、透视投影等或自定义投影,设置投影方式即设置投影矩阵,假设投影范围横向为0~屏幕宽,纵向为0~屏幕高,则投影矩阵(4*4)参数为[2/屏幕宽,0,0,-1;0,2/屏幕高,0,0;0,0,-1,0;-1,-1,0,1]。
⑥根据目标状态的变化,实时更新目标标绘数据的数组;
实施例在实际使用中一般每次只接收一个或一组目标,只需更新目标标绘数据数组中对应的目标数据即可。
⑦将更新后的目标标绘数据数组以顶点的格式载入到显卡的存储单元形成顶点数组;
实施例因为每个目标标绘数据以顶点的数据格式进行存储,所以直接载入目标标绘数据数组到显卡的存储单元即可利用多个GPU进行并行处理,载入显存的目标标绘数据数组大小为单个目标标绘数据大小乘以当前目标个数,在本例中单个目标标绘数据包含一个三维向量的浮点型坐标属性和一个二维向量的整数型纹理坐标属性,大小为20字节。
⑧利用GPU调用顶点着色器和片段着色器绘制顶点数组;
实施例开启着色器,指定GPU处理的数据块在显存中的首地址、类型和间隔大小,调用绘制命令绘制该数据块,多个GPU调用相同的绘制命令和着色器处理数据块中的每个顶点数据,输出最终的处理结果到屏幕实现目标的军标符号标绘。
其中,步骤⑧具体包括以下步骤:
(201)使用顶点着色器获取顶点的三维向量的浮点型坐标值与二维向量的整数型纹理坐标值并进行记录,提供给片段着色器使用;
(202)利用显卡的固有的图形处理流程对顶点进行栅格化处理,形成该顶点对应的多个片段,计算每个片段以该顶点为中心的相对坐标;
实施例一个顶点经栅格化后形成一组片段,片段的个数由栅格化点的直径决定,栅格化点的直径为整型,片段的个数为栅格化点直径的平方,每个片段对应一个投影坐标或屏幕坐标,同时对应形成该片段的顶点坐标,为了计算每个片段的纹理颜色,需要计算每个片段相对于顶点为中心相对坐标,计算方法为每个片段的投影坐标或屏幕坐标减去对应顶点的投影坐标或屏幕坐标。
(203)通过对顶点的整数型纹理坐标值计算,得到目标的敌我属性、军标页号、军标序号、大小、选中标志和显隐标志;
实施例参考步骤②。
(204)根据目标的大小、目标的航向即顶点浮点型坐标值中的第三个分量、目标的军标序号计算每个片段的整数型纹理坐标;
实施例根据目标的大小、目标的航向即顶点浮点型坐标值中的第三个分量、目标的军标序号逐步调整步骤(202)中得到的每个片段的相对坐标最终得到每个片段的整数型纹理坐标,根据目标大小调整片段的相对坐标时设目标大小为size,片段的相对坐标为(TDx,TDy),调整后的坐标为(TDx_size,TDy_size),则TDx_size=TDx/size*栅格化直径,TDy_size=TDy/size*栅格化直径,根据目标的航向调整时设调整后的坐标为(TDx_direction,TDy_direction),则TDx_direction=TDx_size*cos(航向)-TDy_size*sin(航向)+0.5,TDy_direction=TDx_size*sin(航向)+TDy_size*cos(航向)+0.5,根据目标的军标序号调整时设调整后的坐标为(TDx,TDy),则TDx=TDx_direction/16.0+(军标序号%16)/16.0,Ty=TDy_direction/16.0+(军标序号-军标序号%16)/256.0,调整后的(TDx,TDy)即为每个片段的整数型纹理坐标。
(205)根据每个片段纹理坐标和军标页号获取对应的军标纹理贴图在该纹理坐标位置的颜色值作为该片段的颜色值;
实施例军标页号指明显存中存储的纹理贴图的序号,片段着色器根据纹理映射函数提取该纹理贴图在片段纹理坐标对应的颜色值RGBA并赋值给每个片段,纹理映射函数为显卡在图形处理流程中固有的能力。
(206)根据目标的显示标志和选中标志调整片段是否显示;
实施例根据目标的显示标志调整片段是否显示的方法为如果显示标志为0则设置该片段的Alpha值为0,如果显示标志为1则保持该片段的Alpha值不变,调整完成后再根据选中标志调整片段是否显示,方法为如果目标的显示标志为1、选中标志为1且片段的相对坐标的第一个分量或第二个分量的值为10时,修改该片段的Alpha值为1,其他情况保持该片段的Alpha值不变,最终使以顶点为中心、边长为20的矩形框边线所占据的片段的Alpha值为1实现矩形选择框的输出。
(207)根据目标敌我属性修改片段的颜色值;
实施例敌我属性为敌方时设置蓝色,敌我属性为我方时设置红色,敌我属性为友方时设置为粉色,敌我属性为中立时设置为绿色,敌我属性为不明时设置为灰黑色,设置的颜色可以预先配置。
(208)输出片段颜色并结束。
实施例由于开启了片段Alpha测试,因此Alpha大于0.5的片段能够输出到屏幕,最终形成军标符号的显示。
完成基于GPU的大批量目标高速标绘方法。
Claims (2)
1.一种基于GPU的大批量目标高速标绘方法,其特征在于包括以下步骤:
①制作RGBA格式的军标纹理贴图,每幅纹理贴图中包含多个军标;
②设置包含多个目标标绘数据的数组,每个目标标绘数据以顶点的数据格式进行存储,每个目标标绘数据对应一个顶点;每个目标标绘数据的信息内容包含位置、方向、敌我属性、类型、大小、选中标志和显隐标志;每个顶点包含一个三维向量的浮点型坐标值与一个二维向量的整数型纹理坐标值;其中顶点的浮点型坐标值中的第一个分量和第二个分量对应目标点的屏幕坐标,顶点的浮点型坐标值中的第三个分量对应目标的方向;顶点的整数型纹理坐标值中的第一个分量代表目标的敌我属性和类型,类型包含军标页号和军标序号;顶点的整数型纹理坐标值中的第二个分量代表目标的大小、选中标志和显隐标志;
③将步骤①得到的军标纹理贴图载入到显卡的存储单元;
④将顶点着色器和片段着色器载入到显卡的存储单元;
⑤设置图形绘制环境的投影方式为正交投影;
⑥根据目标状态的变化,实时更新目标标绘数据的数组;
⑦将更新后的目标标绘数据数组以顶点的格式载入到显卡的存储单元形成顶点数组;
⑧利用GPU调用顶点着色器和片段着色器绘制顶点数组;
完成基于GPU的大批量目标高速标绘方法。
2.根据权利要求2所述的一种基于GPU的大批量目标高速标绘方法,其特征在于:步骤⑧具体包括以下步骤:
(201)使用顶点着色器获取顶点的三维向量的浮点型坐标值与二维向量的整数型纹理坐标值并进行记录,提供给片段着色器使用;
(202)利用显卡的固有的图形处理流程对顶点进行栅格化处理,形成该顶点对应的多个片段,计算每个片段以该顶点为中心的相对坐标;
(203)通过对顶点的整数型纹理坐标值计算,得到目标的敌我属性、军标页号、军标序号、大小、选中标志和显隐标志;
(204)根据目标的大小、目标的航向即顶点浮点型坐标值中的第三个分量、目标的军标序号计算每个片段的整数型纹理坐标;
(205)根据每个片段纹理坐标和军标页号获取对应的军标纹理贴图在该纹理坐标位置的颜色值作为该片段的颜色值;
(206)根据目标的显示标志和选中标志调整片段是否显示;
(207)根据目标敌我属性修改片段的颜色值;
(208)输出片段颜色并结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410603084.8A CN104318509B (zh) | 2014-10-30 | 2014-10-30 | 一种基于gpu的大批量目标高速标绘方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410603084.8A CN104318509B (zh) | 2014-10-30 | 2014-10-30 | 一种基于gpu的大批量目标高速标绘方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104318509A true CN104318509A (zh) | 2015-01-28 |
CN104318509B CN104318509B (zh) | 2017-09-26 |
Family
ID=52373735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410603084.8A Active CN104318509B (zh) | 2014-10-30 | 2014-10-30 | 一种基于gpu的大批量目标高速标绘方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104318509B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105387856A (zh) * | 2015-11-23 | 2016-03-09 | 欧阳泰山 | 一种多光点跟踪装置及方法 |
CN108876931A (zh) * | 2017-05-12 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 三维物体颜色调整方法、装置、计算机设备及计算机可读存储介质 |
CN109685901A (zh) * | 2018-12-10 | 2019-04-26 | 西北工业大学 | 一种军标符号标绘中动态箭标绘制方法 |
CN109785417A (zh) * | 2018-11-29 | 2019-05-21 | 中国船舶重工集团公司第七0九研究所 | 一种实现OpenGL累积操作的方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102243770B (zh) * | 2011-07-19 | 2013-02-20 | 南昌航空大学 | 一种基于osg的虚拟海战场真实感图形快速绘制方法 |
CN102867331A (zh) * | 2012-08-31 | 2013-01-09 | 电子科技大学 | 面向gpu的大规模地形快速绘制方法 |
CN102999880B (zh) * | 2012-11-14 | 2016-04-20 | 厦门亿力吉奥信息科技有限公司 | 基于GPU的电力WebGIS矢量实时绘制方法及装置 |
CN103268626A (zh) * | 2013-04-11 | 2013-08-28 | 江苏省在这里数字科技有限公司 | 基于gpu的地图线形符号绘制方法及系统 |
-
2014
- 2014-10-30 CN CN201410603084.8A patent/CN104318509B/zh active Active
Non-Patent Citations (2)
Title |
---|
戴长江: "基于GPU三维纹理映射体绘制的方法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑(月刊)》 * |
陈鸿等: "《基于位移映射的非规则军队标号绘制算法》", 《计算机辅助设计与图形学学报》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105387856A (zh) * | 2015-11-23 | 2016-03-09 | 欧阳泰山 | 一种多光点跟踪装置及方法 |
CN108876931A (zh) * | 2017-05-12 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 三维物体颜色调整方法、装置、计算机设备及计算机可读存储介质 |
CN108876931B (zh) * | 2017-05-12 | 2021-04-16 | 腾讯科技(深圳)有限公司 | 三维物体颜色调整方法、装置、计算机设备及计算机可读存储介质 |
CN109785417A (zh) * | 2018-11-29 | 2019-05-21 | 中国船舶重工集团公司第七0九研究所 | 一种实现OpenGL累积操作的方法及装置 |
CN109685901A (zh) * | 2018-12-10 | 2019-04-26 | 西北工业大学 | 一种军标符号标绘中动态箭标绘制方法 |
CN109685901B (zh) * | 2018-12-10 | 2022-07-22 | 西北工业大学 | 一种军标符号标绘中动态箭标绘制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104318509B (zh) | 2017-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103810742B (zh) | 图像渲染方法和系统 | |
KR102322433B1 (ko) | 그래픽 처리 시스템 | |
US7095419B2 (en) | Applying multiple texture maps to objects in three-dimensional imaging processes | |
US6816161B2 (en) | Vertex assembly buffer and primitive launch buffer | |
CN104881839B (zh) | 一种基于并行加速的热点图生成方法 | |
CN109045691B (zh) | 一种特效对象的特效实现方法和装置 | |
CN110383337A (zh) | 可变速率着色 | |
Theoharis et al. | Graphics and visualization: principles & algorithms | |
WO2017198104A1 (zh) | 一种粒子系统的处理方法及装置 | |
CN109785417B (zh) | 一种实现OpenGL累积操作的方法及装置 | |
CN103337093B (zh) | 一种基于Unity3D着色器实现三维机房实时温场效果的方法 | |
US8917281B2 (en) | Image rendering method and system | |
CN104318509A (zh) | 一种基于gpu的大批量目标高速标绘方法 | |
CN108257204A (zh) | 运用于Unity引擎的顶点色绘制烘焙方法及系统 | |
CN109118556B (zh) | 一种实现ui界面动画过渡效果的方法、系统及存储介质 | |
CN104392479A (zh) | 一种利用灯光索引号对像素进行光照着色的方法 | |
RU2422902C2 (ru) | Двумерная/трехмерная комбинированная визуализация | |
CN107038729B (zh) | 一种基于OpenGL-ES的数字仪表盘绘制方法 | |
US20120218261A1 (en) | Graphic system comprising a fragment graphic module and relative rendering method | |
US20180101980A1 (en) | Method and apparatus for processing image data | |
CN113129420B (zh) | 一种基于深度缓冲加速的光线追踪渲染方法 | |
CN104517313A (zh) | 基于屏幕空间的环境光遮蔽的方法 | |
US6784894B2 (en) | Mapping time-sorted to direction-sorted triangle vertices | |
EP2728551A1 (en) | Image rendering method and system | |
JP3352458B2 (ja) | グラフィック・ディスプレイ・システムにおける図形彩色方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |