专栏首页代码编写世界Cesium案例解析(六)——3DTilesInspector监视器

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()即可。最终显示的效果如下:

可以看到右边出现了一个3D Tiles Inspector窗体,里面包含了与3D Tiles格式相关的状态参数:

其中勾选Performance,就可以显示当前的具体帧数;Screen Space Error也是个很重要的参数,决定了当前模型细分的层级。参数设置的越小,细分的层度就会越高,相应的也会耗费更多的性能。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Cesium案例解析(二)——ImageryLayers影像图层

    Cesium支持加载影像图层,主要是各种地图服务。这里就通过Cesium实现添加影像地图和中文注记。

    charlee44
  • Cesium案例解析(五)——3DTilesPhotogrammetry摄影测量3DTiles数据

    3D Tiles是用于传输和渲染大规模3D地理空间数据的格式,例如摄影测量,3D建筑,BIM / CAD,实例化特征和点云等。与常规的模型文件格式相比,最大的特...

    charlee44
  • Cesium案例解析(八)——CesiumWidget简化窗体

    Cesium Widget这个案例展示了一个Cesium的简化窗体。在之前的案例中使用的都是Cesium.Viewer这个窗体组件,包含了非常丰富的组件内容。C...

    charlee44
  • DDOS

    DDoS 是Distributed Denial of Service的缩写,中文意思为分布式拒绝服务,是指攻击者控制僵尸网络中的大量僵尸主机(肉鸡)向攻击目标...

    云服务器教程
  • python 装饰器理解

    在理解装饰器之前,先应该对闭包有个概念:所谓闭包,就是将组成函数的语句和这些语句的执行环境打包在一起时得到的对象,它的主要作用是封存上下文。这一特性可以巧妙的被...

    py3study
  • 4G网络越来越慢了?这可能是事实,但这里面绝对没有阴谋!

    自从5G网络商用以后,4G网络的速度就开始变慢,而这也引发了部分阴谋论者的质疑,认为是运营商故意对4G网络进行限速,从而"逼迫"用户升级到5G套餐,支付更高的套...

    悲了伤的白犀牛
  • Python系列之零——从零说起!!!

    2017年可谓是人工智能元年,要问哪个行业最火,詹小白不敢确定,但要问哪个编程语言最热门,好吧,詹小白还是不敢说太满。但是!至少从舆论Pytho...

    小小詹同学
  • 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(14)-EasyUI缺陷修复与扩展

    不知不觉已经过了13讲,(本来还要讲多一讲是,数据验证之自定义验证,基于园友还是对权限这块比较敢兴趣,讲不讲验证还是看大家的反映),我们应该对系统有一个小结。 ...

    用户1149182
  • shell 脚本 for循环中镶嵌nohup 后台执行

    平时工作中,主要任务是改代码,然后才是写代码,很多代码可以复用,很多分析可以批量进行。今天介绍一下在Linux下批量执行代码的方法。复杂的可以用snakemak...

    邓飞
  • 数模竞赛|数学建模比赛该如何准备?

    作者介绍:苗枫,华中科技大学管理学院18级博士研究生,本科时全国大学生数学建模国赛一等奖,并多次带队获得美国数学建模竞赛一等奖

    用户1621951

扫码关注云+社区

领取腾讯云代金券