【山东大学软件学院创新项目实训】时空漫游 导出校区模型

转换工具

使用DasViewer工具将OSGB文件导出为OBJ格式

在这里插入图片描述

这是使用该工具打开OSGB模型的界面

导出

在这里插入图片描述

通过这个选项,导出OBJ文件,但是在操作的时候出现如下问题:

  • 过程很缓慢
  • 导出的文件体积很大
  • 源文件过大会在中途崩溃,猜测是内存不足导致的

因此要对OSGB源文件进行压缩,在压缩之前首先要了解OSGB的文件格式

模型的数据结构

首先,整个大的校区模型是由这四个Block组成的,其他文件夹的名称可能不是以Block为前缀的,但是只要保证该文件夹下有osgb的文件就可以

在这里插入图片描述

然后,让我们看看里面的结构

在这里插入图片描述

可以看到他们的名称后缀都是Lxx,这里表示的是LOD的层级,LOD的意思是(Level Of Detail)

参考这篇文章

OSGB格式的层级划分和块大小划分规则:

分辨率要求:根据需要展示的分辨率,将地图划分为不同的层级。每个层级的分辨率比前一个层级低一半,直到最小分辨率满足需求。

空间范围:根据倾斜摄影三维模型覆盖的实际空间范围,将地图划分为不同的区域,以便于进行实时加载和渲染。

数据量限制:为了避免单个块过大导致加载时间过长,可以根据实际数据量进行块大小的划分。通常来说,OSGB格式的块大小一般为64m*64m,但也可以根据实际情况进行调整。

在OSGB格式中,每个层级下的数据都被划分为若干个块,每个块由一个或多个文件组成。每个文件包含一部分地图数据和元数据信息,如相机参数、纹理贴图等。这样,可以提高数据读取速度和效率,减少内存占用和加载时间。

因此,LOD层级越高,保留越多的模型细节,请看下面这3个例子:

完整的模型:

在这里插入图片描述

最低层级的模型:

在这里插入图片描述

L20的某个模型:

在这里插入图片描述

可以看到最低层级的模型只保留了模型的基本特征,层级越高模型的细节越多,联想到另一种SH基函数的美

图形学基础|球谐光照(Spherical Harmonics Lighting)-CSDN博客

压缩

我采用一种简单直接的方式进行压缩

在每个文件夹下,只保留前3~4个层级,在这次开发中我只保留到L19,把大于等于L20的模型文件全部删除。

就结果而言,模型精度几乎与原模型无差别,而大小则小了很多

导入Unity

在这里插入图片描述

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值