//作者:迷途的小书童
//微信公众号:g0415shenweri
Bim模型Hlod设计文档
Bim模型的渲染我们采用Hlod的解决方案来解决大规模的模型渲染的问题。
我们参考cesiumgs的3dtiles的设计格式进行设计。
3dtile格式
我们采用json的形式来组织Hlod数据
看下面示例:
json格式一:
{
"asset": {
"version": "1.0",
"tilesetVertion": "saffaasd"
},
"properties": {
"Height": {
"minimum": 1,
"maximum": 241.6
}
},
"geometricError": 494.50961650991815,
"root": {
"boundingVolume": {
"box": [
-1766.7626953125,
1557.97119140625,
55.2222900390625,
3513.43212890625,
0,
0,
0,
4087.8720703125,
0,
0,
0,
88.8742218017578
]
},
"geometricError": 268.37878244706053,
"refine": "ADD",
"content": {
"uri": "0/0/0.b3dm",
"boundingVolume": {
"box": [
-1766.7626953125,
1557.97119140625,
55.2222900390625,
3513.43212890625,
0,
0,
0,
4087.8720703125,
0,
0,
0,
88.8742218017578
]
}
},
"children": [
{
"boundingVolume": {
"box": [
-2557.12976074219,
1372.30395507813,
40.1760325431824,
77.1678466796875,
0,
0,
0,
77.1612548828125,
0,
0,
0,
49.0920796394348
]
},
"content": {
"uri": "Tile_+000_+031/Tile_+000_+031.json"
},
"geometricError": 119.661055066361
},
{
"boundingVolume": {
"box": [
-2560.88610839844,
1522.18212890625,
41.3433089256287,
77.1597900390625,
0,
0,
0,
77.15576171875,
0,
0,
0,
33.426878452301
]
},
"geometricError": 114.122745184024,
"content": {
"uri": "Tile_+000_+032/Tile_+000_+032.json"
},
}
]
}
}
asset:必填字段,json的开头,version和tilesetVersion 表示格式的版本。
properties:选填字段,用来表示bim模型的最大和最小高度。
geometricError:屏幕几何误差,这里有两个geometricError是不一样的,root上一级的geometricError用来确定root的区域什么时候渲染。而
root.geometricError被用来确定下一级的tile什么时候渲染。也就是说,当geometricError的阈值达到之后,我们会渲染下一级的tile。就是每一级的geometricError都是对下级来说的。
refine:有两种值( "REPLACE"
) and ( "ADD"
)。REPLAC可以直接替换掉上一级的tile。而ADD会在原先的tile的基础上进行增加。
boundingVolume:是包围盒的意思。这个参数用来做空间检索用的,我们通过这个包围盒在计算出这里面的tile是否需要渲染。这里我们暂时只准备支持AABB包围盒。即box。定义如下:
由12个数字组成,用于定义一个有方向的边界框。前三个元素定义了包围盒的中心点即(x,y,z)。接下来三个元素(索引3、4和5)定义了x轴方向的半长,再接下来的三个元素(索引6、7和8)定义了y轴方向的半长,最后三个元素(索引9、10和11)定义了Z轴方向的半长。
content:是即真实的tile的数据了,通过url来指向数据。这里我们可以直接指向一个mesh的格式,也可以再指向一个json的tile。这个json的格式和我们这个json的格式一样。
今天的文章BIM模型HLoD设计文档分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/6691.html