|
24 | 24 | import { OrbitControls } from './jsm/controls/OrbitControls.js'; |
25 | 25 | import { HDRCubeTextureLoader } from './jsm/loaders/HDRCubeTextureLoader.js'; |
26 | 26 | import { RGBMLoader } from './jsm/loaders/RGBMLoader.js'; |
| 27 | + import { RoomEnvironment } from './jsm/environments/RoomEnvironment.js'; |
27 | 28 |
|
28 | 29 | const params = { |
29 | 30 | envMap: 'HDR', |
|
42 | 43 | init(); |
43 | 44 | animate(); |
44 | 45 |
|
45 | | - function getEnvScene() { |
46 | | - |
47 | | - const envScene = new THREE.Scene(); |
48 | | - |
49 | | - const geometry = new THREE.BoxGeometry(); |
50 | | - geometry.deleteAttribute( 'uv' ); |
51 | | - const roomMaterial = new THREE.MeshStandardMaterial( { metalness: 0, side: THREE.BackSide } ); |
52 | | - const room = new THREE.Mesh( geometry, roomMaterial ); |
53 | | - room.scale.setScalar( 10 ); |
54 | | - envScene.add( room ); |
55 | | - |
56 | | - const mainLight = new THREE.PointLight( 0xffffff, 50, 0, 2 ); |
57 | | - envScene.add( mainLight ); |
58 | | - |
59 | | - const lightMaterial = new THREE.MeshLambertMaterial( { color: 0x000000, emissive: 0xffffff, emissiveIntensity: 10 } ); |
60 | | - |
61 | | - const light1 = new THREE.Mesh( geometry, lightMaterial ); |
62 | | - light1.material.color.setHex( 0xff0000 ); |
63 | | - light1.position.set( - 5, 2, 0 ); |
64 | | - light1.scale.set( 0.1, 1, 1 ); |
65 | | - envScene.add( light1 ); |
66 | | - |
67 | | - const light2 = new THREE.Mesh( geometry, lightMaterial.clone() ); |
68 | | - light2.material.color.setHex( 0x00ff00 ); |
69 | | - light2.position.set( 0, 5, 0 ); |
70 | | - light2.scale.set( 1, 0.1, 1 ); |
71 | | - envScene.add( light2 ); |
72 | | - |
73 | | - const light3 = new THREE.Mesh( geometry, lightMaterial.clone() ); |
74 | | - light3.material.color.setHex( 0x0000ff ); |
75 | | - light3.position.set( 2, 1, 5 ); |
76 | | - light3.scale.set( 1.5, 2, 0.1 ); |
77 | | - envScene.add( light3 ); |
78 | | - |
79 | | - return envScene; |
80 | | - |
81 | | - } |
82 | | - |
83 | 46 | function init() { |
84 | 47 |
|
85 | 48 | container = document.createElement( 'div' ); |
|
162 | 125 | const pmremGenerator = new THREE.PMREMGenerator( renderer ); |
163 | 126 | pmremGenerator.compileCubemapShader(); |
164 | 127 |
|
165 | | - const envScene = getEnvScene(); |
166 | | - generatedCubeRenderTarget = pmremGenerator.fromScene( envScene, 0.04 ); |
| 128 | + const envScene = new RoomEnvironment(); |
| 129 | + generatedCubeRenderTarget = pmremGenerator.fromScene( envScene ); |
167 | 130 |
|
168 | 131 | renderer.setPixelRatio( window.devicePixelRatio ); |
169 | 132 | renderer.setSize( window.innerWidth, window.innerHeight ); |
|
0 commit comments