BIM模型HLoD设计文档

BIM模型HLoD设计文档//作者:迷途的小书童//微信公众号:g0415shenweriBim模型Hlod设计文档Bim模型的渲染我们采用Hlod的解决方案来解决大规模的模型渲染的问题。我们参考cesiumgs的…

//作者:迷途的小书童

//微信公众号:g0415shenweri

Bim模型Hlod设计文档

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设计文档

今天的文章BIM模型HLoD设计文档分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/6691.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注