加载3Dtiels

2021-02-18  本文已影响0人  panergongzi

学习cesium一般都要玩一下三维的,先自己加个三维模型看看效果吧

闲话少说,上代码

var Cesium = require('cesium/Cesium');

export default function (viewer) {

    var tileset = new Cesium.Cesium3DTileset({

        url: './SampleData/Cesium3DTiles/Tilesets/Tileset/tileset.json'

    });

    viewer.scene.primitives.add(tileset);

    viewer.zoomTo(tileset);

}

自己引入js库,不多说

数据'./SampleData/Cesium3DTiles/Tilesets/Tileset/tileset.json' 可以再cesium api里找到,如果实在找不到那就去我的仓库下吧 git@github.com:panergongzi/cesiumWork.git

简单分析一下代码吧

例子使用了Cesium3DTileset接口加载 json格式的tile数据,看官网Cesium3DTileset提供了一大堆属性,要弄明白每个属性的意思不太容易

url:json切片的地址

show:是否显示

modelMatrix:4x4的转换矩阵,去转换tileset

shadows:tileset是否投射或者吸收阴影来着每个光源 默认ShadowMode.ENABLED(接收和投射阴影),Cesium.ShadowMode.RECEIVE_ONLY (只接收阴影),Cesium.ShadowMode.DISABLED(不投射和接收阴影),Cesium.ShadowMode.CAST_ONLY(只接收阴影)

maximumScreenSpaceError:用于驱动细节细化程度的最大屏幕空间错误。默认16 (哈哈,我暂时不知道有啥用)

maximumMemoryUsage:tileset可以使用的最大内存,默认512Mb

cullWithChildrenBounds:优化选项。是否使用子项边界体积的并集来剔除图块。默认true

dynamicScreenSpaceError:优化选项,是否减少离相机较远的tileset屏幕空间错误 默认false

dynamicScreenSpaceErrorFactor:增加动态屏幕错误的一个因子

dynamicScreenSpaceErrorHeightFalloff:tileset密度下降时候,tileset高度的比例 默认0.25

skipLevelOfDetail:可选选项,是否在遍历时候跳过详情

baseScreenSpaceError:如果skipLevelOfDetail为true,则在跳过细节级别之前必须达到的屏幕空间错误。

skipScreenSpaceErrorFactor:当skipLevelOfDetail为时true,乘数定义要跳过的最小屏幕空间错误。与一起使用skipLevels以确定要加载的图块。

skipLevels:当skipLevelOfDetail为时true,此常数定义加载图块时要跳过的最小级别数。为0时,不会跳过任何级别。与一起使用skipScreenSpaceErrorFactor以确定要加载的图块。

immediatelyLoadDesiredLevelOfDetail:如果skipLevelOfDetail是true,只有tileset满足最大屏幕空间误差都不会被下载。跳过因子将被忽略,仅加载所需的图块。

loadSiblings:如果skipLevelOfDetail是true,确定是否可见tileset的兄弟姐妹遍历期间总是下载。

clippingPlanes:所述ClippingPlaneCollection用于选择性地禁用渲染地形设置。

classificationType:确定将通过此图块集对地形,3D图块或两者进行分类。

ellipsoid:椭圆体决定了球体的大小和形状。

pointCloudShading:用于构造PointCloudShading对象以根据几何误差和光照控制点衰减的选项。

debugFreezeFrame:仅用于调试。确定是否仅应使用最后一帧中的图块进行渲染。

debugColorizeTiles:仅用于调试。如果为true,则为每个图块分配随机颜色。

debugWireframe:仅用于调试。如果为true,则将每个图块的内容渲染为线框。

debugShowBoundingVolume:仅用于调试。为true时,渲染每个图块的边界体积。

debugShowContentBoundingVolume:仅用于调试。为true时,渲染每个图块内容的边界体积。

debugShowViewerRequestVolume:仅用于调试。如果为true,则为每个图块渲染查看器的请求量。

debugShowGeometricError:仅用于调试。为true时,绘制标签以指示每个图块的几何误差。

debugShowRenderingStatistics:仅用于调试。如果为true,则绘制标签以指示每个图块的命令,点,三角形和特征的数量。

debugShowMemoryUsage:仅用于调试。为true时,绘制标签以指示每个图块使用的纹理和几何内存(以兆字节为单位)

debugShowUrl:仅用于调试。为true时,绘制标签以指示每个图块的url。

上一篇 下一篇

猜你喜欢

热点阅读