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

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

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

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

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

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

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN110910505A(43)申请公布日2020.03.24(21)申请号201911203599.8(22)申请日2019.11.29(71)申请人西安建筑科技大学地址710055陕西省西安市碑林区雁塔路13号(72)发明人董丽丽严昱欣张翔张温(74)专利代理机构西安通大专利代理有限责任公司61200代理人郭瑶(51)Int.Cl.G06T17/20(2006.01)权利要求书2页说明书9页附图4页(54)发明名称一种场景模型的加速渲染方法(57)摘要本发明公开了一种场景模型的加速渲染方法,1.将所有node节点作为为模型瓦片的基础对象;2.将一个模型瓦片对应node结点的属性抽取出来,构成新的文件;3.生成三角网格,查询三角网格信息,并以数组的形式存储三角网格的顶点索引;4.建立模型瓦片数据的空间八叉树索引,将所有node节点整合到八叉树数据结构;5.计算相机空间坐标系中视场的锥体裁剪范围;6.判断节点所在的LOD层级,对八叉树进行视锥剔除;7.将顶点删除后,对空洞几何特征进行三角化;8.将三角化后的数据送入渲染,渲染完成后,刷新当前场景模型,本次渲染结束。实现了瓦片的渲染简化、加速绘制,提高了三维瓦片的加载效率。CN110910505ACN110910505A权利要求书1/2页1.一种场景模型的加速渲染方法,其特征在于,包括以下步骤;步骤1,将glTF文件中场景模型的所有node节点作为模型瓦片的基础对象;步骤2,将一个模型瓦片对应node结点的属性抽取出来,并按照node节点重新构成新的文件,属性包括顶点索引、三角网格、名称、包围盒、坐标、纹理属性、纹理坐标、法向量数据、网格中点的索引和质心坐标属性;步骤3,根据步骤2中生成的新的文件中的模型瓦片的三角网格,三角网格对应的位置、纹理、面索引这三类访问器,查询模型瓦片的三角网格信息,并以数组的形式存储三角网格的顶点索引;步骤4,建立模型瓦片数据的空间八叉树索引,将步骤1中的所有node节点整合到八叉树数据结构,并分离为瓦片的八叉树索引和真实模型数据;步骤5,将场景模型由其所处的世界坐标系变换为相机空间坐标系,计算相机空间坐标系中视场的锥体裁剪范围;步骤6,利用LOD层次细节模型算法,对八叉树根结点先序遍历,判断节点所在的LOD层级,并记录在每个对象节点中,在遍历过程记录同时对八叉树进行视锥剔除;步骤7,根据当前所处八叉树深度,确定三角网格中随机删除顶点数,删除顶点数随层级深度递减,根据当前LOD层级,将顶点删除后,对空洞几何特征进行三角化;步骤8,将三角化后的数据送入渲染,渲染完成后,刷新当前场景模型,本次渲染结束。2.根据权利要求1所述的一种场景模型的加速渲染方法,其特征在于,若需要改变视锥体范围,则返回步骤5。3.根据权利要求1所述的一种场景模型的加速渲染方法,其特征在于,完成步骤6,进入步骤7之前,以层序遍历对八叉树进行遍历,对同一父亲节点下的兄弟节点进行距离位置判断,若距离小于设定距离,则将边缘顶点进行融合。4.根据权利要求3所述的一种场景模型的加速渲染方法,其特征在于,融合过程为,计算模型瓦片包围盒质心之间的距离,取距离中心坐标;对真实八叉树元素的位置重新计算并将重新计算后的位置设置为八叉树中的结点元素的位置;将八叉树中的结点元素的背面剔除。5.根据权利要求1所述的一种场景模型的加速渲染方法,其特征在于,步骤7中,若空洞结构为凸多边形,则三角化过程包括;步骤7.1.1,选择凸多边形的任意一点为起点,将起点与起点的前面和后面一点构成三角形,然后将得到的三角形保存起来;步骤7.1.2,删除起点,形成新的多边形;步骤7.1.3,重复步骤7.1.1和步骤7.1.2,直到只剩三个点,完成三角化;若空洞结构为凸多边形,则三角化过程包括;步骤7.2.1,选取多边形中的一个凹角,然后凹角所在点,和前两点或后两点,形成一个三角形;若剩余的点,任意点在剩余多边形的内部,则证明错误,选取其余凹角继续本步骤;若剩余的点,任意点在剩余多边形的外部,把这3个点构成的三角形保存到三角形数组中,删除该3个点;步骤7.2.2,计算非三角化部分角度的凹凸性,若为凸多边形,重复凸多边形三角化的步骤,否则重复步骤7.2.1。2CN110910505A权利要求书2/2页6.根据权利要求1所述的一种场景模型的加速渲染方法,其特征在于,步骤4中,八叉树的建立过程如下;步骤4.1,通过模型瓦片的最大和最小坐标值,围绕模型瓦片定义第一个立方体;步骤4.2,设定最大递归深度;步骤4.3,按照node节点中的数组顺序循环遍历将node结点元素放入能被包含,且没有子节点的立方体;步骤4.4,若没有达到最大递归深度,就进行细分八等分的子立方体,