欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2019112035998
申请人: 西安建筑科技大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-01-05
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种场景模型的加速渲染方法,其特征在于,包括以下步骤;

步骤1,将glTF文件中场景模型的所有node节点作为模型瓦片的基础对象;

步骤2,将一个模型瓦片对应node结点的属性抽取出来,并按照node节点重新构成新的文件,属性包括顶点索引、三角网格、名称、包围盒、坐标、纹理属性、纹理坐标、法向量数据、网格中点的索引和质心坐标属性;

步骤3,根据步骤2中生成的新的文件中的模型瓦片的三角网格,三角网格对应的位置、纹理、面索引这三类访问器,查询模型瓦片的三角网格信息,并以数组的形式存储三角网格的顶点索引;

步骤4,建立模型瓦片数据的空间八叉树索引,将步骤1中的所有node节点整合到八叉树数据结构,并分离为瓦片的八叉树索引和真实模型数据;

八叉树的建立过程如下;

步骤4.1,通过模型瓦片的最大和最小坐标值,围绕模型瓦片定义第一个立方体;

步骤4.2,设定最大递归深度;

步骤4.3,按照node节点中的数组顺序循环遍历将node结点元素放入能被包含,且没有子节点的立方体;

步骤4.4,若没有达到最大递归深度,就进行细分八等分的子立方体,再将该立方体所装的单位元元素全部分担给八个子立方体;

步骤4.5,若子立方体所分配到的单位元元素数量不为零且跟父立方体相同,则该子立方体停止细分,完成八叉树的建立;若子立方体所分配到的单位元元素数量不为零且跟父立方体不相同,则回到步骤4.3;

步骤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。

6.根据权利要求1所述的一种场景模型的加速渲染方法,其特征在于,步骤6中,每个节点与相机视锥六个面的距离大于设置值,则将该节点与其子节点从八叉树中剔除。

7.根据权利要求1所述的一种场景模型的加速渲染方法,其特征在于,步骤6中,若八叉树元素部分不处于视锥范围内,则将此部分八叉树元素的node节点的可见性属性改为不可见,将其从可见范围剔除,不加入渲染。