Cesium案例解析(六)——3DTilesInspector監視器


1. 概述

3D Tiles作為傳輸和渲染大規模3D地理空間數據的格式,應對的都是大規模數據的場景,Cesium提供了一個監視3D Tiles數據的監視器,可以通過這個監視器觀察3D Tiles數據的效果。

2. 案例

HTML頁面3DTilesInspector.html代碼如下:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport"
        content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
    <meta name="description" content="Use the 3D Tiles inspector as a debugging tool for different tilesets.">
    <meta name="cesium-sandcastle-labels" content="Beginner, Tutorials, Showcases">
    <title>Cesium Demo</title>
    <script type="text/javascript" src="../Build/Cesium/Cesium.js"></script>
    <style>
        @import url(../Build/Cesium/Widgets/widgets.css);

        html,
        body {
            width: 100%;
            height: 100%;
            margin: 0;
            padding: 0;
            overflow: hidden;
            font-family: sans-serif;
            background: #000;
        }

        .fullSize {
            display: block;
            position: absolute;
            top: 0;
            left: 0;
            border: none;
            width: 100%;
            height: 100%;
        }
    </style>
</head>

<body>
    <div id="cesiumContainer" class="fullSize"></div>
    <script src="3DTilesInspector.js"></script>
</body>

</html>

主要的javascript代碼3DTilesInspector.js如下:

'use strict';

var viewer = new Cesium.Viewer('cesiumContainer', {
    terrainProvider: Cesium.createWorldTerrain()
});

viewer.scene.globe.depthTestAgainstTerrain = true;

viewer.extend(Cesium.viewerCesium3DTilesInspectorMixin);
var inspectorViewModel = viewer.cesium3DTilesInspector.viewModel;

var tileset = new Cesium.Cesium3DTileset({
    url: "../dayanta/tileset.json"
});
viewer.scene.primitives.add(tileset);

tileset.readyPromise.then(function () {
    viewer.zoomTo(tileset);
});

可以看到添加3DTiles監視器的代碼比較簡單,將Cesium.viewerCesium3DTilesInspectorMixin對象傳入拓展函數viewer.extend()即可。最終顯示的效果如下:

3DTiles監視器

可以看到右邊出現了一個3D Tiles Inspector窗體,里面包含了與3D Tiles格式相關的狀態參數:

3DTiles監視器

其中勾選Performance,就可以顯示當前的具體幀數;Screen Space Error也是個很重要的參數,決定了當前模型細分的層級。參數設置的越小,細分的層度就會越高,相應的也會耗費更多的性能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM