| | |
| | | |
| | | // scene.background = new THREE.Color(0xf8f8f8); |
| | | scene.background = new THREE.Color(0x7a7a7a); |
| | | scene.fog = new THREE.Fog(scene.background, 1, 5000); |
| | | if (help) { |
| | | scene.add(new THREE.AxesHelper(1000)); |
| | | } |
| | |
| | | initControls = () => { |
| | | const controls = new OrbitControls(this.camera, this.renderer.domElement); |
| | | // controls.enableRotate = false; // 禁用整体旋转功能 |
| | | controls.enablePan = true; // 允许平移 |
| | | controls.enablePan = false; // 允许平移 |
| | | controls.enableDamping = true; // 开启阻尼 |
| | | controls.dampingFactor = 0.08; // 阻尼因子 |
| | | controls.enableZoom = true; // 允许缩放 |
| | | // controls.minDistance = 1; // 最小缩放距离 |
| | | // controls.maxDistance = 30; // 最大缩放距离 |
| | | controls.minPolarAngle = 0; // 最小俯仰角度(向下看) |
| | | controls.minPolarAngle = Math.PI / 2.1; |
| | | controls.maxPolarAngle = Math.PI / 2.1; // 最大俯仰角度(向上看) |
| | | controls.rotateSpeed = 0.6; // 视角移动速度减慢 |
| | | controls.autoRotate = true; // 自动旋转 |
| | |
| | | loader.load('model/04.fbx', (mesh) => { |
| | | mesh.position.set(0, 10, 0); |
| | | mesh.scale.set(5, 5, 5); |
| | | // mesh.name = '1-1-1'; |
| | | // mesh.rotation.x = Utils.rotationParseNum(270); |
| | | mesh.name = '1-1-1'; |
| | | mesh.traverse(function (child) { |
| | | if (child.isMesh) { |
| | | if (child.name === '不规则') { |
| | |
| | | // child.visible = false; |
| | | child.material.color.set(0xBEBEBE); |
| | | } |
| | | child.name = '1-1-1' |
| | | child.castShadow = true; |
| | | child.receiveShadow = true; |
| | | } |
| | |
| | | }; |
| | | |
| | | const initLight = (scene) => { |
| | | const directionalLight = new THREE.DirectionalLight(0xffffff, 5); |
| | | directionalLight.position.set(1, 1, 1); |
| | | scene.add(directionalLight); |
| | | const hemiLight = new THREE.HemisphereLight(0xffffff, 0xffffff, 6); |
| | | hemiLight.color.setHSL(0.6, 1, 0.6); |
| | | hemiLight.groundColor.setHSL(0.095, 1, 0.75); |
| | | hemiLight.position.set(0, 1500, 0); |
| | | scene.add(hemiLight); |
| | | |
| | | const ambientLight = new THREE.AmbientLight(0xffffff, 3); |
| | | scene.add(ambientLight); |
| | | const dirLight = new THREE.DirectionalLight(0xffffff, 2.5); |
| | | dirLight.color.setHSL(0.1, 1, 0.95); |
| | | dirLight.position.set(-10, 10, 10); |
| | | dirLight.position.multiplyScalar(30); |
| | | scene.add(dirLight); |
| | | |
| | | // const spotLight = new THREE.SpotLight(0xffffff, 5); |
| | | // spotLight.position.set(-300, 1000, 0); |
| | | // spotLight.angle = Math.PI / 4; // 角度 |
| | | // spotLight.distance = 800; // 距离 |
| | | // spotLight.decay = 0; // 光衰 |
| | | // // 光照阴影及其生效范围 |
| | | // spotLight.castShadow = true; |
| | | // spotLight.shadow.camera.near = 50; |
| | | // spotLight.shadow.camera.far = 2000; |
| | | // spotLight.shadow.bias = - 0.000222; |
| | | // // 阴影特效高低值 |
| | | // spotLight.shadow.mapSize.width = 1024; |
| | | // spotLight.shadow.mapSize.height = 1024; |
| | | // scene.add(spotLight); |
| | | |
| | | // if (help) { |
| | | // scene.add(new THREE.SpotLightHelper(spotLight)); |
| | | // } |
| | | const dirLight1 = new THREE.DirectionalLight(0xffffff, 2.5); |
| | | dirLight1.color.setHSL(0.1, 1, 0.95); |
| | | dirLight1.position.set(10, 10, -10); |
| | | dirLight1.position.multiplyScalar(30); |
| | | scene.add(dirLight1); |
| | | } |