前言
模型有很多种,一般我们用3dMax自己做了模型,在cesium中添加需要转换成glb的格式,而且沙盒例子中也是如此举例.我们看看模型的选项及属性.
api翻译
ModelGraphics
基于gltf的三维模型,WebGL、OpenGL ES和OpenGL的运行时资产格式。模型的位置和方向由包含实体确定。cesium包括对GLTF几何、材质、动画和蒙皮的支持。目前不支持摄像头和灯。
名称 | 作用 |
---|---|
uri | 模型的路径地址 |
show | 是否显示模型 |
scale | 缩放比例 |
minimumPixelSize | 指定模型的近似最小像素大小(不考虑缩放)的数值属性 |
maximumScale | 模型的最大比例大小。最小像素化的上限 |
incrementallyLoadTextures | 确定加载模型后纹理是否可以继续流入 |
runAnimations | 指定是否应启动模型中指定的GLTF动画 |
clampAnimations | 指定GLTF动画是否应在没有关键帧的情况下保持最后一个姿势 |
nodeTransformations | 一个对象,其中键是节点的名称,值是translationrotationscale属性,描述要应用于该节点的转换。转换将在GLTF中指定的节点的现有转换之后应用,并且不会替换节点的现有转换 |
shadows | 阴影 |
heightReference | 相对高度 |
distanceDisplayCondition | 指定此模型将显示在与相机的距离 |
silhouetteColor | 轮廓颜色的属性 |
silhouetteSize | 轮廓大小的属性 |
color | 模型颜色 |
colorBlendMode | 颜色与模型的混合方式,比如高亮,常用的有HIGHLIGHT,MIX,REPALCE |
colorBlendAmount | 混合的程度,必须在colorBlendMode为MIX时才有效 |
clippingPlanes | 选择性地禁用呈现模型 |
imageBasedLightingFactor | 指定基于漫反射和镜面反射图像的照明的贡献的属性 |
lightColor | 指定在为模型着色时使用的灯光颜色的属性。未定义时将使用默认的日光颜色 |
代码
var position = Cesium.Cartesian3.fromDegrees(113.03, 23.42, 2);
var heading = Cesium.Math.toRadians(135);
var pitch = 0;
var roll = 0;
var hpr = new Cesium.HeadingPitchRoll(heading, pitch, roll);
var orientation = Cesium.Transforms.headingPitchRollQuaternion(position, hpr);
var entity = viewer.entities.add({
name: "plane",
position: position,
//orientation: orientation,
model: {
uri: "./modle/air/Cesium_Air.glb",
minimumPixelSize: 128,//最小的模型像素
maximumScale: 20000,//最大的模型像素
runAnimations:true,//是否显示动画
clampAnimations:true,//是否保持最后一针的动画
//color:Cesium.Color.RED,//颜色
color:Cesium.Color.fromAlpha(Cesium.Color.RED, parseFloat(1.0)),//包含透明度的颜色
colorBlendMode:Cesium.ColorBlendMode['MIX'],//常用的有三个HIGHLIGHT,REPLACE,MIX
colorBlendAmount:0.1//这个属性必须是MIX混合属性才能生效,见colorBlendMode
}
});
//设置摄像头定位到模型处
viewer.trackedEntity = entity;