小物体层级控制

MMSDT.smallPartLOD()

       层级控制小体积模型的显示隐藏,远处的小体积模型自动隐藏,近处显示,以提高硬件的渲染效率。

构造函数

      MMSDT.smallPartLOD( parameters: object )

        models - 数组,需要层级控制的,场景中模型的数组下标。

        distance - 数组,层级显隐,距离阈值(数组内可设置任意层级,按从近到远)。

        volume - 数组,子网格包围体积、正射面积。小于此值的子网格模型超过距离阈值会被隐藏(数组内可设置任意层级,按从小到大)。

属性

       .enabled( Boolean )

       是否开启或关闭该功能。true开启,false关闭。

代码示例

var MMS3D_exceptionMesh = []; //需要材质拆分的网格 var MMS3D_instancingMesh = []; //合并实例化网格 //初始化场景 MMSDT.initScene( false, MMS3D_exceptionMesh, MMS3D_instancingMesh ); //设置第3人称鼠标控制器 controls3.maxPolarAngle = Math.PI*0.49; //向下,最大角度限制 controls3.maxDistance = 1700; //最远距离限制 controls3.screenSpacePanning = false; //右键平移是否上下移动 controls3.enableDamping = true; //是否开启惯性阻尼 controls3.dampingFactor = 0.1; //惯性阻尼系数 controls3.autoRotateSpeed = 2; //自动旋转速度 //使用json文件让场景还原 MMSDT.onloadScene( "models/mms3D_cangku1.json", function(progress){ if( progress == 'done' ){ //加载完成,播放动画 for( var i=0; i<actions[0].length; i++ ){ actions[0][i].play(); actions[0][i].timeScale = 0.5; } }else if( progress == 'ok' ){ //渲染完成 onloadDone(); }else{ //显示进度条数字 document.getElementById("loadNum").innerHTML = Math.round( progress )+'%'; } }); var calculate; //定义小物体层级控制全局变量 //场景加载完成 function onloadDone(){ var config = { models:[0], //数组,需要层级控制的,场景中模型的数组下标 distance: [400,700], //层级显隐,距离阈值(数组内可设置任意层级,按从近到远) volume: [30,100] //子网格包围体积、正射面积。小于此值的子网格模型超过距离阈值会被隐藏(数组内可设置任意层级,按从小到大) } calculate = new MMSDT.smallPartLOD( config ); //初始化小物体层级控制 } //自定义对外函数接口------------------------------------------------------------------------ //开启关闭 MMAPI.switchOnOff = function(Boolean){ calculate.enabled( Boolean ); //开启或关闭该功能 }

点击查看示例演示 →