开始项目二次开发
在 mmsDT.project.js 中对MMSDT.programs函数内容进行项目的二次开发。
参数
MMSDT.programs( elements )
elements:场景关键要素,无需改动
elements = {
camera: camera,
scene: scene,
renderer: renderer,
controls: controls,
gltfLoader: gltfLoader,
container: container,
models: models,
actions: actions,
mixer: mixer,
textureCube: textureCube,
scope: scope,
}
代码示例
MMSDT.programs = function( elements ){
//场景关键要素
var camera = elements.camera;
var scene = elements.scene;
var renderer = elements.renderer;
var controls = elements.controls;
var gltfLoader = elements.gltfLoader;
var container = elements.container;
var models = elements.models;
var actions = elements.actions;
var mixer = elements.mixer;
var textureCube = elements.textureCube;
var initScene = elements.scope;
//设置鼠标控制器
controls.maxPolarAngle = Math.PI*0.498;
controls.minPolarAngle = Math.PI*0.35;
controls.minDistance = 10;
controls.maxDistance = 400;
controls.enableDamping = true;
controls.dampingFactor = 0.1;
controls.screenSpacePanning = false;
controls.autoRotate = true;
controls.autoRotateSpeed = 0.5;
//模型再次设置
models[0].traverse( function ( child ) {
if ( child.isMesh ) {
//降低周边环境的亮度
if( child.name == "ml" | child.name == "cao_1" | child.name == "cao_2" | child.name == "cao_3" | child.name == "cao1_3" ){
child.material.color.set(0x000735);
child.material.envMapIntensity = 0.3;
}else if( child.name == "pl" | child.name == "hai" ){
child.material.color.set(0x000735);
child.material.transparent = true;
child.material.opacity = 0.7;
child.material.envMapIntensity = 0.3;
}
//降低周边树木的亮度
if ( child.material.map != null ) {
if( child.material.map.name.indexOf( "S_6.png" ) == 0 | child.material.map.name.indexOf( "S_7.png" ) == 0 ){
child.material.color.set(0x000735);
}
}
}
});
//循环动画
animate();
function animate(){
requestAnimationFrame( animate );
}
}
在线演示
Powered by mms3D