学习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。
网友评论