前言
模型有很多种,一般我们用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;
效果预览


博客介绍了在Cesium中添加模型的相关内容。一般用3DMax制作的模型需转换成glb格式才能在Cesium中添加,还对ModelGraphics API进行了翻译,它是基于gltf的三维模型,Cesium支持其几何、材质等,目前不支持摄像头和灯。
1701

被折叠的 条评论
为什么被折叠?



