[发明专利]一种将二维矢量进行三维渲染的方法在审
申请号: | 202110826234.1 | 申请日: | 2021-07-21 |
公开(公告)号: | CN113421338A | 公开(公告)日: | 2021-09-21 |
发明(设计)人: | 宋江 | 申请(专利权)人: | 北京臻观数智科技有限公司 |
主分类号: | G06T17/10 | 分类号: | G06T17/10;G06T15/00;G06T15/55 |
代理公司: | 成都环泰专利代理事务所(特殊普通合伙) 51242 | 代理人: | 李斌;李辉 |
地址: | 100000 北京市朝阳区高碑店乡*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 二维 矢量 进行 三维 渲染 方法 | ||
1.一种将二维矢量进行三维渲染的方法,其特征在于,包括以下步骤:
S1、通过处理器从shp文件中获取shp数据,并在存储介质中建立对应的第一存储空间,将获取的shp数据保存到所述第一存储空间中;按照空间范围对所述保存的shp数据进行切割,对shp数据进行数据坐标转换,转换成build.json文件并在存储介质中建立对应的第二存储空间,将build.json文件的所有数据目录保存到所述第二存储空间中;
S2、根据建筑信息的字段内容,对建筑进行归类,获取建筑的风格化参数和归类条件并保存;
S3、处理器根据第二存储空间中保存的build.json文件数据目录读取build.json文件,获取build.json文件中每一个切片文件pbf的内容,并解析成geojson数据,获取坐标原点,并获取每一个矢量面要素,根据步骤S2中建筑的归类条件对矢量面要素进行分类,获取矢量面坐标点和高度信息;
S4、根据矢量面坐标点和高度信息,计算三维建筑的顶点要素信息;
S5、根据三维建筑得顶点要素信息、样式分类信息、排列顶点信息、颜色信息和法向量信息创建分组,根据分组在存储介质中创建一个bufferGeometry对象;
S6、获取buffGeometry对象对应的坐标信息;
S7、根据bufferGeometry和材质数组materials创建一个mesh对象,并根据坐标信息添加到三维场景中进行渲染。
2.根据权利要求1所述的一种将二维矢量进行三维渲染的方法,其特征在于,所述步骤S1包括:
根据空间范围将shp文件中的shp数据切割成若干份矢量要素的集合数组,
并为每一个集合数组指定一个固定的坐标原点O(lon,lat);
建立矢量面,并确定坐标原点O(lon,lat)的位置,将矢量面中的点标记为A(lon,lat),根据经纬度坐标和threejs的内部坐标转换关系,将A点全部转换为相对O(lon,lat)原点的相对偏移坐标A1(x,y),x、y为A点和O对应threejs的坐标的横纵坐标差;
将坐标原点0、矢量点A和转换后坐标A1转换为geojson数据,再转换成pbf数据,将所有的切片文件路径自动记录在一个json中,记为build.json。
3.根据权利要求1所述的一种将二维矢量进行三维渲染的方法,其特征在于,所述步骤S2包括:
根据风格样式创建对应的建筑材质对象,一个建筑风格样式对应两个建筑材质对象,分别是顶部材质和侧面材质。
4.根据权利要求1所述的一种将二维矢量进行三维渲染的方法,其特征在于,所述步骤S3包括:
获取到矢量面的坐标点并设为Array[p1,p2,p3,…,pn],获取高度信息并设为h。
5.根据权利要求1所述的一种将二维矢量进行三维渲染的方法,其特征在于,所述步骤S4包括:
获取定位坐标positions、顶点着色信息colors和顶点贴图坐标;
遍历单个矢量面的坐标点串Array[p1,p2,p3,…,pn],相邻两点可以组合成两个三角形,如(p1,p2,p1_H)和(p1_H,p2,p2_H),其中p1_H、p2_H、p3_H…pn_H是通过修改Array[p1,p2,p3,…,pn]的z值设置为高度h而获得;
按照顶点顺序,存储三角面片的顶点信息到positions,colors和uvs中。
6.根据权利要求5所述的一种将二维矢量进行三维渲染的方法,其特征在于,所述顶点顺序包括:
每一个顶点的位置、颜色和纹理坐标都是相对于且有序的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京臻观数智科技有限公司,未经北京臻观数智科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110826234.1/1.html,转载请声明来源钻瓜专利网。