Cesium支持加载单个三维模型,常用的模型格式为:gltf,glb,这些模型都可以从3dmax、obj等三维模型的格式转换过来,Cesium的官方网站也列举了加载单个三维模型的方式,根据详细的代码列举一下。
详细的代码在Cesium示例:3D Models.html页面中
样例的模型文件在:SampleData的文件夹中
以下是加载模型的详细代码:
//位置信息,x、y、高度信息
var position = Cesium.Cartesian3.fromDegrees(-123.0744619, 44.0503706, height);
//模型的三个方向转角,在三维立体空间中的三个转角方向,可以参见上图
//的小飞机示意图(其中direction对应heading ,tilt对应pitch)
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 : url,
position : position,
orientation : orientation,
model : {
//模型的路径
uri : url,
//模型的比例
scale:1.0,
//最小的像素尺寸
minimumPixelSize : 128,
//最大显示比例
maximumScale : 20000
}
});
模型的加载效果,代码使用时,去掉注释信息: