| | |
| | | initScene = () => { |
| | | const scene = new THREE.Scene(); |
| | | // scene.background = new THREE.Color(0xf0f0f0); |
| | | scene.background = new THREE.Color(0x333333); |
| | | // scene.background = new THREE.Color(0x333333); |
| | | if (help) { |
| | | scene.add(new THREE.AxesHelper(1000)); |
| | | } |
| | |
| | | |
| | | initCamera = () => { |
| | | const camera = new THREE.PerspectiveCamera(70, this.fullWidth / this.fullHeight, 1, 60000); |
| | | camera.position.set(200, 200, 200); |
| | | camera.position.set(-300, 300, 300); |
| | | this.scene.add(camera); |
| | | return camera; |
| | | } |
| | |
| | | }; |
| | | |
| | | const initLight = (scene) => { |
| | | const directionalLight = new THREE.DirectionalLight(0xffffff, 0.6); // 光颜色,强度 |
| | | directionalLight.position.set(1, 1, 1).normalize(); |
| | | const directionalLight = new THREE.DirectionalLight(0xffffff, 8); |
| | | directionalLight.position.set(-300, 300, 300); |
| | | scene.add(directionalLight); |
| | | |
| | | const ambientLight = new THREE.AmbientLight(0xf0f0f0, 3); |
| | | const ambientLight = new THREE.AmbientLight(0xf0f0f0, 8); |
| | | scene.add(ambientLight); |
| | | |
| | | const spotLight = new THREE.SpotLight(0xffffff, 8); |
| | | spotLight.position.set(0, 1000, 0); |
| | | spotLight.position.set(-300, 300, 0); |
| | | spotLight.angle = Math.PI / 4; // 角度 |
| | | spotLight.distance = 1500; // 距离 |
| | | spotLight.distance = 800; // 距离 |
| | | spotLight.decay = 0; // 光衰 |
| | | // 光照阴影及其生效范围 |
| | | spotLight.castShadow = true; |
| | |
| | | |
| | | const buildDemo = (scene) => { |
| | | const boxGeometry = new THREE.BoxGeometry(100, 100, 100); |
| | | const boxMaterial = new THREE.MeshBasicMaterial({ color: 0x40739e }); |
| | | const boxMaterial = new THREE.MeshStandardMaterial({ |
| | | color: '#222f3e', |
| | | }); |
| | | const boxMesh = new THREE.Mesh(boxGeometry, boxMaterial); |
| | | boxMesh.position.set(0, 0, 0); |
| | | scene.add(boxMesh) |