创建模型线框风格

MMSDT.createGrids()

       创建模型线框风格,用于科技感水晶模式、或线框网格模式。

       该方法包括透明渐变动效,生长或缩进(反生长)动效。该线框占用硬件性能开销大,尽量在小范围内使用。

       Tips:因模型线框是独立于原模型并新创建的,所以创建线框需在模型加载完成之后执行,之后并不受原模型的任何影响。

       Tips:不支持创建动画线框。

构造函数

      MMSDT.createGrids( mesh:array, parameters:object )

       mesh - 数组,初始化创建包含子网格名称的字符串, 如为['']则包含整个场景的模型元素。

       parameters - json参数,设置颜色及透明度。

属性

       .add( array, time, grow )

       显示指定名称的子网格

       array - 数组,包含子网格名称的字符串。如为['']则包含整个场景的模型元素。

       time - 数字,透明渐变的持续时间,毫秒

       grow - 是否展现生长动画,true有生长动画,false无生长动画

       .remove(time, grow)

       移除线框网格

       time - 数字,透明渐变的持续时间,毫秒

       grow - 是否展现缩进(反向生长)动画,true有缩进动画,false无缩进动画

       .add2( arrayIndex, time, grow )

       显示指定下标模型的线框网格(Tips:注意和add的区别)

       arrayIndex - 数字,显示指定下标模型的线框网格。

       time - 数字,透明渐变的持续时间,毫秒

       grow - 是否展现生长动画,true有生长动画,false无生长动画

       .remove2( arrayIndex, time, grow)

       移除指定下标模型的线框网格(Tips:注意和remove的区别)

       arrayIndex - 数字,移除指定下标模型的线框网格。

       time - 数字,透明渐变的持续时间,毫秒

       grow - 是否展现缩进(反向生长)动画,true有缩进动画,false无缩进动画

代码示例

var MMS3D_exceptionMesh = []; //需要材质拆分的网格 var MMS3D_instancingMesh = ["shu"]; //合并实例化网格 //初始化场景 MMSDT.initScene( false, MMS3D_exceptionMesh, MMS3D_instancingMesh ); //设置第3人称鼠标控制器 controls3.maxPolarAngle = Math.PI*0.49; //向下,最大角度限制 controls3.maxDistance = 1000; //最远距离限制 controls3.enablePan = false; //是否开启鼠标右键屏幕空间平移 controls3.enableDamping = true; //是否开启惯性阻尼 controls3.dampingFactor = 0.1; //惯性阻尼系数 //使用json文件让场景还原 MMSDT.onloadScene( "models/mms3D_fdc3.json", function(progress){ if( progress == 'done' ){ //加载完成 onloadDone(); }else if( progress == 'ok' ){ //渲染完成 }else{ //显示进度条数字 document.getElementById("loadNum").innerHTML = Math.round( progress )+'%'; } }); //线框网格的颜色和透明度 var techStyle = { color: 0x0041ac, //设置颜色 opacity: 0.03, //设置透明度 bloom: true, //线框是否发光 } var gridStyle; //场景加载完成 function onloadDone(){ //加载完成,播放风机动画 for( var i=0; i<actions[0].length; i++ ){ actions[0][i].play(); } //依据现有网格创建新的线框网格,需在模型加载完成之后进行 gridStyle = new MMSDT.createGrids( [''], techStyle ); } //自定义对外函数接口------------------------------------------------------------------------ //显示方式 MMAPI.objStyle = function(num){ switch(num) { case 0: //恢复实景 gridStyle.remove2( 0, 1000, false ); gridStyle.remove2( 1, 1000, false ); MMAPI.modelVisible(0, true); MMAPI.modelVisible(1, true); break; case 1: //全部线框 gridStyle.add2( 0, 2000, true ); gridStyle.add2( 1, 2000, true ); MMAPI.modelVisible(0, false); MMAPI.modelVisible(1, false); break; case 2: //线框树木 gridStyle.remove2( 0, 1000, false ); gridStyle.add2( 1, 1000, false ); MMAPI.modelVisible(0, true); MMAPI.modelVisible(1, false); break; case 3: //线框风机 gridStyle.remove( 0, false ); MMAPI.modelVisible(0, false); MMAPI.modelVisible(1, false); setTimeout(function(){ gridStyle.add( ['feiji'], 1000, false ); },100) break; case 4: //风机和道路线框 gridStyle.remove( 0, false ); MMAPI.modelVisible(0, false); MMAPI.modelVisible(1, false); setTimeout(function(){ gridStyle.add( ['feiji','ffhhh04','ddds03'], 1000, false ); },100) break; } }

点击查看示例演示 →