3DTiles格式介绍总目录:https://blog.csdn.net/qq_31709249/article/details/102643371
啦啦啦啦,我又回来了!以前写了3DTiles的简介的前两章,后面因为各种各样的原因,就一直没写了,我看看我3D Tiles的博客的同学还挺多的,但是网上的一些介绍博客质量有点差,直接拿谷歌翻译翻译一下就贴到博客上了,所以还是决定最近抽时间把剩下的部分写完吧。还是原话,自己的英语不是很好,而且自己本身也不是专门学图形学的,有些翻译很可能不到位,还是建议英语好的同学直接读原文,英语不太好的同学可以结合我的博客和原文一起理解。这一节介绍一下3DTiles的Tile,即瓦片,瓦片包含用于确定是否渲染瓦片的元数据,对渲染内容的引用以及任何子瓦片的数组。我们先来看一个TileSet的Json文件中的一内容:
{
"asset" : {
"version": "1.0",
"tilesetVersion": "e575c6f1-a45b-420a-b172-6449fa6e0a59",
},
"properties": {
"Height": {
"minimum": 1,
"maximum": 241.6
}
},
"geometricError": 494.50961650991815,
"root": {
"boundingVolume": {
"region": [
-0.0005682966577418737,
0.8987233516605286,
0.00011646582098558159,
0.8990603398325034,
0,
241.6
]
},
"geometricError": 268.37878244706053,
"refine": "ADD",
"content": {
"uri": "0/0/0.b3dm",
"boundingVolume": {
"region": [
-0.0004001690908972599,
0.8988700116775743,
0.00010096729722787196,
0.8989625664878067,
0,
241.6
]
}
},
"children": [..]
}
}
我们就来看root下的内容,这个就是一个Tile。咱们按照原文一个一个解释字段。
1.Geometric error(几何误差)
我们知道,不同简化程度的模型,相对于原模型,都存在着一定的几何误差,在3DTiles这种HLOD的结构中,根节点是最粗糙的模型,其几何误差最大,叶子节点为原模型,其几何误差为0。因为三维渲染的本质,就是将三维模型投影成一个二维图像,然后每帧显示投影的图象。那在三维模型上不同LOD中的误差,肯定会显示在屏幕上,那屏幕上的误差大小,与模型上的误差有什么关系呢?其实,在不同的视距,不同的视角下,不同分辨率不同屏幕大小下,屏幕误差是不同的,他们有一个计算公式(我最近就在搞这个但是还没搞出来QAQ&