流动材质线
对特定材质设置流动动画
参数
new MMSDT.lineFlow( parameter )
parameters = {
texture: dirUrl+"models/line/xunjian.png", //指定贴图箭头
repeat: [1,2], //[x,z]轴向的贴图重复率
speed: 13, //流动速度,数字越大越快
}
代码示例
//加载流动路线模型
MMSDT.getJson( dirUrl+"models/mms3D1619438307436.json", callBack);
function callBack(dateJson){
var modelList = [
dirUrl+"models/line/xunjian.gltf",
]
MMSDT.modelsLoader( dateJson, modelList, complete);
function complete(list){
models[list].scale.set(1,1,1);
models[list].rotation.set(0,0,0);
models[list].position.set(0,45,0);
//让线条流动起来
var parameter = {
texture: dirUrl+"models/line/xunjian.png", //指定贴图箭头
repeat: [1,2], //[x,z]轴向的贴图重复率
speed: 13, //流动速度,数字越大越快
}
var material = new MMSDT.lineFlow( parameter ); //新建流动材质
models[list].traverse( function ( child ) {
if ( child.isMesh ) {
child.material = material; //把流动材质赋予流动模型
}
});
}
}
//初始化自动巡游
var autoCruise;
MMSDT.getJson( dirUrl+"models/paths2.json", callback);
function callback( dateJson ){
var parameters = {
model: 'models/fly.gltf', //三维模型
scale: 0.002, //三维模型缩放大小
rotation: Math.PI, //模型面向前,旋转偏移
distance: 8, //默认镜头与中心模型的距离
height: 3, //默认镜头与中心点的高度
speed: 0.1, //巡游速度
veer: 0.2, //镜头转向速度
repetition: false, //一圈后是否重复
}
autoCruise = new MMSDT.routingInspection( dateJson, parameters, cruiseEnd ); //初始化
function cruiseEnd(){
//漫游完成
MMSDT.cameraTarget([0,0,0], [-224,108,47], 1000 ); //镜头复位
MMSDT.controlsTarget( [0,0,0], 400, 1000 ); //控制器复位
controls.maxPolarAngle = Math.PI*0.498;
controls.minPolarAngle = Math.PI*0.35;
}
}
//使用MMAPI类,自定义外部函数接口
MMAPI.startCruise = function(){
autoCruise.onOff( true ); //开启自动巡游
models[1].visible = true;
}
MMAPI.pauseCruise = function(){
autoCruise.onOff( false ); //暂停巡游
}
MMAPI.person1 = function(){
autoCruise.person( 1 ); //第一人称视角
}
MMAPI.person3 = function(){
autoCruise.person( 3 ); //第三人称视角
}
MMAPI.stop = function(){
autoCruise.stop(); //停止巡游
}
在线演示
Powered by mms3D