一种面向Web端批量动态切换建筑白模纹理的方法及装置与流程

文档序号:36997827发布日期:2024-02-09 12:40阅读:23来源:国知局
一种面向Web端批量动态切换建筑白模纹理的方法及装置与流程

本发明属于遥感卫星影像处理领域,尤其涉及一种面向web端批量动态切换建筑白模纹理的方法及装置。


背景技术:

1、在智慧城市场景展示中,三维建筑白模可以帮助城市管理者更好地理解城市空间的布局和发展趋势,从而更好地制定城市规划和管理政策。当前在智慧城市展示中,三维建筑物白模包含三种展示方式,第一种是直接展示白模,展示效果较为一般;第二种是根据白模属性给与白模不同颜色或者动态光圈进行展示;第三种带有纹理的建筑白模可以进一步提高整个场景的材质感与真实感。

2、现有在web端展示带有纹理的建筑物白模时,如果要切换不同的风格纹理时,需要后端对建筑物矢量文件shapefile 重新进行3dtiles切片,每次切片都需要文件存储,占用了存储空间,同时进行3dtiles切片也较为耗时,不能实现秒级重新渲染效果,用户体验差;另外,建筑物矢量文件shapefile 进行3dtiles切片时,需要不断调整纹理图片大小和位置以便生成的带有纹理的白模切片可以有更好的效果,但是一般3dtiles切片使用c++程序编写,每次重新编译时,耗时较久,大大延长了开发时间。为了减少在切换白模渲染风格时的时间,可以预先处理生成对应的3dtiles切片,但仍然避免不了占用多余的存储空间。


技术实现思路

1、本发明旨在解决上述问题,提供一种存储空间占用较少、渲染时间少的面向web端批量动态切换建筑白模纹理的方法及装置。

2、第一方面,本发明提供一种面向web端批量动态切换建筑白模纹理的方法,包括:

3、获取包含高度字段height的 shapefile 建筑物面文件;

4、读取shapefile 建筑物面文件的每个面要素,并计算每个面要素的外接矩形范围;

5、使用四叉树算法处理每个面要素的外接矩形范围,生成方盒类型的包围盒;

6、对面要素沿着 z 轴方向以高度字段进行拉伸,构建几何三角网;拉伸后生成 1个顶面及多个侧面的拉伸体,同时生成只包含顶面的薄片;存储拉伸后的拉伸体的所有顶点坐标、顶点索引、法向量和高度字段height及顶面薄片所有的顶点坐标、顶点索引和法向量;拉伸体主要是为了渲染侧面纹理,顶面薄片用于渲染顶面。高度字段用于web 端根据高度字段调整白模渲染的纹理的样式。

7、进行纹理设置;建筑物白模纹理图片数组images字段只保留一条图片信息,包括图片名称及路径,图片为ktx2格式的白色图片;同时进行khr_texture_basisu扩展设置,通过索引与images字段建立关联;前述拉伸体与顶面薄片坐标分别绑定纹理单元texture0与texture1;根据顶点坐标,分别给定拉伸体和顶面薄片纹理坐标初始值,并将纹理坐标分别绑定纹理单元texture0与texture1;

8、按照3dtiles标准,组织生成其他数据,生成3dtiles切片;将所有顶点坐标、顶点索引、法向量、纹理坐标、纹理单元和高度字段height组织生成b3dm文件,将包围盒、b3dm文件路径组织生成tileset.json 文件;

9、创建配置文件,设置不同风格的纹理图片信息;

10、根据配置文件,进行白模渲染;切换不同风格的白模纹理时,清除已有白模及占用的内存后,加载当前选择的风格的白模。

11、进一步,本发明所述面向web端批量动态切换建筑白模纹理的方法,所述根据配置文件进行白模渲染包括:web端根据可视化范围加载对应的3dtiels切片文件中的b3dm文件并进行解析,同时动态加载配置文件,根据配置文件当前风格,获取对应风格及纹理图片路径,将存储的顶点索引、顶点坐标、法向量和高度字段与纹理图片相对应,并通过着色器实现白模纹理渲染。

12、进一步,本发明所述面向web端批量动态切换建筑白模纹理的方法,所述通过着色器实现白模纹理渲染具体包括:首先在顶点着色器中,将模型法线向量传入片元着色器,然后在片元着色器中对纹理、纹理坐标及镜面反射进行处理;判断纹理单元texture1对应的纹理坐标texcoord_1的横坐标x是否为0区分渲染的是顶面薄片还是拉伸体;若texcoord_1横坐标x不为0说明渲染的是顶面薄片,需要渲染顶面;反之,渲染的是拉伸体,说明需要渲染侧面;对于底面不进行处理;

13、对于顶面渲染,进行漫反射处理,给定模型顶面漫反射颜色为对顶面纹理图片的采样结果,将对应纹理图片平铺到顶面即可;

14、对于侧面渲染,首先舍弃掉顶面渲染,只渲染侧面纹理;给定模型侧面水平方向与垂直方向与纹理坐标的对应关系,若模型内部点法向量与单位向量vec3(0.,1.,0.)方向垂直,采样纹理横坐标等于对模型内部横坐标与纹理图片宽度取余并归一化到[0,1]区间;若模型内部点法向量与单位向量vec3(0.,1.,0.)方向不垂直,采样纹理横坐标等于对模型内部横坐标与纹理图片宽度取余并归一化到[0,1]区间,并做两个向量夹角的旋转;同时,按照纹理图片大小与模型水平与垂直方向坐标范围,设置纹理图片的缩放比例;匹配后,将采样纹理结果样色赋值给漫反射颜色;给定镜面反射;定义风格变量,与配置文件中的风格字段映射,决定当前渲染风格类型,0为默认白色纹理风格,其他风格从1开始依次与配置文件中风格字段相对应。

15、进一步,本发明所述面向web端批量动态切换建筑白模纹理的方法,所述计算每个面要素的外接矩形范围时首先要找到具有最小 x 值的点,找到具有最大 x 值的点,找到具有最小 y 值的点,找到具有最大 y 值的点,然后将具有最小 x 和 y 值的点的 x 和 y组合成一个角点。

16、进一步,本发明所述面向web端批量动态切换建筑白模纹理的方法,所述纹理图片信息包括白模纹理风格信息、当前风格、是否使用镜面反射、镜面反射值、纹理图片上采样点坐标在纹理图片x轴上的缩放倍数、每种风格下建筑物顶面和侧面的纹理图片路径。

17、第二方面,本发明提供一种面向web端批量动态切换建筑白模纹理的系统,包括:

18、面文件获取模块,用于获取包含高度字段height的 shapefile 建筑物面文件;

19、面文件处理模块,用于读取shapefile 建筑物面文件的每个面要素,并计算每个面要素的外接矩形范围;

20、使用四叉树算法处理每个面要素的外接矩形范围,生成方盒类型的包围盒;

21、对面要素沿着 z 轴方向以高度字段进行拉伸,构建几何三角网;拉伸后生成 1个顶面及多个侧面的拉伸体,同时生成只包含顶面的薄片;存储拉伸后的拉伸体的所有顶点坐标、顶点索引、法向量和高度字段height及顶面薄片所有的顶点坐标、顶点索引和法向量;

22、纹理设置切片模块,用于进行纹理设置;建筑物白模纹理图片数组images字段只保留一条图片信息,包括图片名称及路径,图片为ktx2格式的白色图片;同时进行khr_texture_basisu扩展设置,通过索引与images字段建立关联;前述拉伸体与顶面薄片坐标分别绑定纹理单元texture0与texture1;根据顶点坐标,分别给定拉伸体和顶面薄片纹理坐标初始值,并将纹理坐标分别绑定纹理单元texture0与texture1;

23、按照3dtiles标准,组织生成其他数据,生成3dtiles切片;将所有顶点坐标、顶点索引、法向量、纹理坐标、纹理单元和高度字段height组织生成b3dm文件,将包围盒、b3dm文件路径组织生成tileset.json 文件;

24、文件配置模块,用于创建配置文件,设置不同风格的纹理图片信息;

25、白模渲染模块,用于根据配置文件,进行白模渲染;切换不同风格的白模纹理时,清除已有白模及占用的内存后,加载当前选择的风格的白模。

26、进一步,本发明所述面向web端批量动态切换建筑白模纹理的系统,所述根据配置文件进行白模渲染时包括:web端根据可视化范围加载对应的3dtiels切片文件中的b3dm文件并进行解析,同时动态加载配置文件,根据配置文件当前风格,获取对应风格及纹理图片路径,将存储的顶点索引、顶点坐标、法向量和高度字段与纹理图片相对应,并通过着色器实现白模纹理渲染。

27、进一步,本发明所述面向web端批量动态切换建筑白模纹理的系统,所述通过着色器实现白模纹理渲染具体包括:首先在顶点着色器中,将模型法线向量传入片元着色器,然后在片元着色器中对纹理、纹理坐标及镜面反射进行处理;判断纹理单元texture1对应的纹理坐标texcoord_1的横坐标x是否为0区分渲染的是顶面薄片还是拉伸体;若texcoord_1横坐标x不为0说明渲染的是顶面薄片,需要渲染顶面;反之,渲染的是拉伸体,说明需要渲染侧面;对于底面不进行处理;

28、对于顶面渲染,进行漫反射处理,给定模型顶面漫反射颜色为对顶面纹理图片的采样结果,将对应纹理图片平铺到顶面即可;

29、对于侧面渲染,首先舍弃掉顶面渲染,只渲染侧面纹理;给定模型侧面水平方向与垂直方向与纹理坐标的对应关系,若模型内部点法向量与单位向量vec3(0.,1.,0.)方向垂直,采样纹理横坐标等于对模型内部横坐标与纹理图片宽度取余并归一化到[0,1]区间;若模型内部点法向量与单位向量vec3(0.,1.,0.)方向不垂直,采样纹理横坐标等于对模型内部横坐标与纹理图片宽度取余并归一化到[0,1]区间,并做两个向量夹角的旋转;同时,按照纹理图片大小与模型水平与垂直方向坐标范围,设置纹理图片的缩放比例;匹配后,将采样纹理结果样色赋值给漫反射颜色;给定镜面反射;定义风格变量,与配置文件中的风格字段映射,决定当前渲染风格类型,0为默认白色纹理风格,其他风格从1开始依次与配置文件中风格字段相对应。

30、第三方面,本发明提供一种面向web端批量动态切换建筑白模纹理的装置,包括相电连接的处理器和存储器;所述存储器用于存储计算机程序;所述处理器执行前述计算机程序时,可实现如前述第一方面所述的面向web端批量动态切换建筑白模纹理的方法。

31、第四方面,本发明提供一种计算机可读存储介质,所述存储介质上存储有计算机程序;所述计算机程序被执行时,可实现如前述第一方面所述的面向web端批量动态切换建筑白模纹理的方法。

32、本发明所述面向web端批量动态切换建筑白模纹理的方法及装置,通过后端一次性生成建筑物3dtiles切片,实现web端动态切换白模渲染风格并动态调整纹理图片大小及位置,在实现建筑物白模纹理切换时,不仅大大减少了文件存储空间占用,避免了资源浪费,而且能够更高效地调整渲染结果,具有更强的实时性,只需等待数秒时间就能看到切换后的效果,适于在建筑物白模在web端3d渲染方面进行应用及推广。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1