[发明专利]一种OSG大批量图形节点在三维场景中聚合的方法在审
申请号: | 201911047745.2 | 申请日: | 2019-10-30 |
公开(公告)号: | CN110838161A | 公开(公告)日: | 2020-02-25 |
发明(设计)人: | 王茂元;何振;甘双喜;关童;张旭;高润民 | 申请(专利权)人: | 西安恒歌数码科技有限责任公司 |
主分类号: | G06T15/00 | 分类号: | G06T15/00 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 贺小停 |
地址: | 710000 陕西省西安市雁*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 osg 大批量 图形 节点 三维 场景 聚合 方法 | ||
1.一种OSG大批量图形节点在三维场景中聚合的方法,其特征在于,包括以下步骤:
步骤1,定义、声明数据结构类型;
步骤2,将三维投影坐标值进行区域网格化;
步骤3,依据图形节点的投影坐标位置将所有节点按区域划分,并计算相应图形节点的屏幕坐标;
步骤4,遍历区域网格,遍历规则:取当前网格中未聚合图形节点的屏幕坐标,并以此节点屏幕坐标为基准,遍历当前网格以及相邻网格中的所有图形节点屏幕坐标与基准点两点之间像素值,根据两点之间的像素值与设置的像素范围值进行比较,判断是否聚合,聚合添加到聚合集,并设置节点已处于聚合状态;
步骤5,重复4,至每个区域网格中的节点都处于聚合状态;
步骤6,将各个聚合集内的图形节点的位置进行求质点,得到聚合点;
步骤7,控制该聚合集中图形节点是否渲染,以及聚合图形节点的渲染。
2.根据权利要求1所述的一种OSG大批量图形节点在三维场景中聚合的方法,其特征在于,步骤1具体为:
A.定义一个图形节点数据结构类型,包括图形节点唯一号、投影坐标、屏幕坐标以及初始聚合状态,初始化为未聚合;
B.定义一个聚合节点数据结构类型,包含聚合唯一号、聚合中心点、聚合节点映射表以及聚合状态;
C.定义一个网格化区域数据结构类型,包括区域索引号和原始图形节点数据结构体集合;
D.声明一个以聚合节点数据结构类型为对象的容器,简称聚合数据集;
E.声明一个以图形节点数据结构类型为对象的容器,简称图形原始数据集;
F.声明一个以网格化区域数据结构类型为对象的容器,简称网格区域数据集。
3.根据权利要求1所述的一种OSG大批量图形节点在三维场景中聚合的方法,其特征在于,步骤2具体为依据设置的行列数初始化网格区域数据集的长度大小,数据集长度大小为行数与列数的乘积。
4.根据权利要求1所述的一种OSG大批量图形节点在三维场景中聚合的方法,其特征在于,步骤3具体为:
A.从图形节点管理中获取所有节点信息;
B.逐一遍历图形节点信息,提取图形唯一号和位置信息,将图形节点的位置信息转换成投影坐标和屏幕坐标;
C.判断屏幕坐标是否在当前屏幕显示范围内,如果在屏幕显示范围内,新建图形节点数据结构,并将提取到的唯一号、计算出的投影坐标和屏幕坐标值更新到数据结构中;
D.判断投影坐标中x和y值是否在投影坐标[-1,1]范围内,如果存在,通过设置的行列数进行一下计算行、列索引值:
列数索引值=(投影坐标x值+1.0)/2.0*总列数;
行数索引值=(投影坐标y值+1.0)/2.0*总行数;
如果计算出的列数索引值大于等于总列数,则列数索引值等于总列数-1,否则取计算出的列数索引值;如果计算出的行数索引值大于等于总行数,则行数索引值等于总行数-1,否则取计算出的行数索引值;再按一下计算方式计算区间索引值:
区间索引值=行数索引值*总列数+列数索引值;
E.依据区间索引值访问对应的网格化区域数据结构,并将新建的图形节点数据结构添加到该网格化区域数据结构中的原始图形节点数据结构体集合中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安恒歌数码科技有限责任公司,未经西安恒歌数码科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911047745.2/1.html,转载请声明来源钻瓜专利网。