预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共12页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN109237999A(43)申请公布日2019.01.18(21)申请号201811092295.4(22)申请日2018.09.19(71)申请人中国电子科技集团公司第二十八研究所地址210003江苏省南京市秦淮区苜蓿园东街1号(72)发明人李坪泽谈心占伟伟蒉露超(74)专利代理机构南京苏高专利商标事务所(普通合伙)32204代理人孟红梅(51)Int.Cl.F41A33/00(2006.01)权利要求书2页说明书5页附图4页(54)发明名称一种批量三维态势目标尾迹实时绘制方法和系统(57)摘要本发明公开了一种批量三维态势目标尾迹实时绘制方法和系统,主要针对战场环境模拟仿真系统中实时态势不断产生的大量尾迹点数据,通过CPU过滤出需要显示尾迹的目标,利用多线程技术将若干渲染对象拼接、合并成尽量少的渲染批次,再通过GPU将尾迹点扩展成飘带形状并进行视觉效果调整,最终渲染到屏幕上。本发明可实现大批量态势尾迹数据的实时三维渲染,视觉效果为具有头尾颜色和宽度渐变效果的飘带形状。与直接使用渲染引擎相比,显著提升了实时渲染效率,使指控系统用户感知海量态势运行轨迹与特征的过程更为流畅。CN109237999ACN109237999A权利要求书1/2页1.一种批量三维态势目标尾迹实时绘制方法,其特征在于,包括如下步骤:(1)在CPU主线程中裁剪掉不需要显示的尾迹对象,将过滤得到的需要绘制的尾迹对象依次填满容量固定的单批次渲染列表中,并向辅助线程发出处理请求;(2)辅助线程收到请求后依次将每一个单批次渲染列表中所有对象的尾迹点合并形成可以被GPU处理的顶点缓存、索引缓存和均衡缓存,并交还给主线程;其中,顶点缓存中写入了各尾迹点的世界坐标和扩展方向向量,索引缓存中写入了各尾迹点在三角面中的位置关系,均衡缓存中写入了各尾迹点的样式;(3)主线程将缓存数据和投影矩阵传递给GPU,GPU再将尾迹点数据扩展成三角面,并根据指定的样式对三角面的进行视觉效果调整,最后与投影矩阵相乘得到可以叠加渲染到屏幕上的纹理缓存。2.根据权利要求1所述的批量三维态势目标尾迹实时绘制方法,其特征在于,步骤(1)中主线程处理的步骤包括:(1.1)遍历场景内所有尾迹对象,根据其目标的飞行姿态计算扩展方向向量;其中扩展方向与飞行方向横向垂直;(1.2)将对象当前帧所在位置坐标与扩展方向向量推送给尾迹对象存储;(1.3)根据需求设置尾迹样式,包括显示长度、颜色和渐变距离;(1.4)根据相机参数进行视椎体裁剪,得到当前帧需要被渲染的尾迹对象集合;(1.5)将需要被渲染的尾迹对象依次填满一定容量的单批次渲染列表,通知辅助线程进行处理。3.根据权利要求1所述的批量三维态势目标尾迹实时绘制方法,其特征在于,步骤(2)中辅助线程处理的步骤包括:(2.1)维护一个工作队列,从主线程发出的请求中获取单批次渲染列表;(2.2)每一个列表将按目标顺序取出点并合并成一个大对象,构建其VBO,其中每个顶点写入世界坐标和扩展方向向量,每个点坐标写两遍,扩展方向相反;(2.3)根据顶点在三角面中的序列,构建IBO;(2.4)根据设定的样式将每一条尾迹所独有的颜色、渐变距离、宽度属性信息写入UBO;(2.5)将构建好的VBO、IBO和UBO绑定放进工作队列,待主线程获取。4.根据权利要求1所述的批量三维态势目标尾迹实时绘制方法,其特征在于,步骤(3)中GPU处理的步骤包括:(3.1)从CPU获取每个单次渲染列表内对象合并后的VBO、IBO、UBO;(3.2)针对VBO中的每一个顶点,将其世界坐标矩阵与扩展方向向量、宽度形成的矩阵相乘得到扩展后的三角面顶点;(3.3)根据IBO将扩展后的顶点形成三角面;(3.4)根据UBO中的渐变距离与颜色值为三角面着色,控制透明度以形成头尾虚化效果;(3.5)为每个顶点乘以投影矩阵,得到最终渲染的屏幕坐标。5.根据权利要求1所述的批量三维态势目标尾迹实时绘制方法,其特征在于,CPU主线程在与辅助线程进行数据调度时,只在缓存交换时加线程锁。6.根据权利要求1所述的批量三维态势目标尾迹实时绘制方法,其特征在于,CPU主线2CN109237999A权利要求书2/2页程与辅助线程之间采用双缓存交替渲染机制,一份缓存在主线程渲染时,另一份在线程里重构,交替往复。7.一种批量三维态势目标尾迹实时绘制系统,其特征在于,包括数据调度模块、渲染批次合并模块和GPU协作模块;其中,数据调度模块,由CPU主线程执行,用于裁剪掉不需要显示的尾迹对象,将过滤得到的需要绘制的尾迹对象依次填满容量固定的单批次渲染列表中,并向辅助线程发出处理请求;以及在辅助线程处理完成后,将缓存数据和投影矩阵传递给GPU;渲染批次合并模块,由辅助