|
79 | 79 | Cineon: THREE.CineonToneMapping
|
80 | 80 | };
|
81 | 81 |
|
82 |
| - var camera, scene, renderer, controls, objects = []; |
| 82 | + var camera, scene, renderer, controls, group; |
83 | 83 | var composer;
|
84 | 84 | var standardMaterial, standardMaterialPremultiplied, floorMaterial;
|
85 | 85 |
|
|
97 | 97 | scene = new THREE.Scene();
|
98 | 98 |
|
99 | 99 | renderer = new THREE.WebGLRenderer( { antialias: false } );
|
100 |
| - renderer.setClearColor( new THREE.Color( 0xffffff ) ); |
101 | 100 |
|
102 | 101 | standardMaterial = new THREE.MeshStandardMaterial( {
|
103 | 102 | bumpScale: - 0.05,
|
|
135 | 134 | standardMaterial.needsUpdate = true;
|
136 | 135 | } );
|
137 | 136 |
|
| 137 | + group = new THREE.Group(); |
| 138 | + scene.add( group ); |
| 139 | + |
138 | 140 | var geometry = new THREE.TorusKnotGeometry( 18, 8, 150, 20 );;
|
139 |
| - var torusMesh1 = new THREE.Mesh( geometry, standardMaterial ); |
140 |
| - torusMesh1.position.x = 0.0; |
141 |
| - torusMesh1.castShadow = true; |
142 |
| - torusMesh1.receiveShadow = true; |
143 |
| - scene.add( torusMesh1 ); |
144 |
| - objects.push( torusMesh1 ); |
| 141 | + var mesh = new THREE.Mesh( geometry, standardMaterial ); |
| 142 | + mesh.castShadow = true; |
| 143 | + mesh.receiveShadow = true; |
| 144 | + group.add( mesh ); |
145 | 145 |
|
146 | 146 | floorMaterial = new THREE.MeshStandardMaterial( {
|
147 | 147 | map: null,
|
148 | 148 | roughnessMap: null,
|
149 |
| - color: 0xffffff, |
| 149 | + color: 0x888888, |
150 | 150 | metalness: 0.0,
|
151 |
| - roughness: 0.0, |
152 |
| - shading: THREE.SmoothShading |
| 151 | + roughness: 1.0, |
| 152 | + side: THREE.BackSide |
153 | 153 | } );
|
154 | 154 |
|
155 |
| - var planeGeometry = new THREE.PlaneBufferGeometry( 200, 200 ); |
156 |
| - var planeMesh1 = new THREE.Mesh( planeGeometry, floorMaterial ); |
157 |
| - planeMesh1.position.y = - 50; |
158 |
| - planeMesh1.rotation.x = - Math.PI * 0.5; |
159 |
| - planeMesh1.receiveShadow = true; |
160 |
| - scene.add( planeMesh1 ); |
| 155 | + var geometry = new THREE.BoxBufferGeometry( 200, 200, 200 ); |
| 156 | + var mesh = new THREE.Mesh( geometry, floorMaterial ); |
| 157 | + mesh.position.y = 50; |
| 158 | + mesh.rotation.x = - Math.PI * 0.5; |
| 159 | + mesh.receiveShadow = true; |
| 160 | + scene.add( mesh ); |
161 | 161 |
|
162 | 162 | // Materials
|
163 | 163 | var hdrpath = "../examples/textures/cube/hdrPisa/";
|
|
183 | 183 |
|
184 | 184 | // Lights
|
185 | 185 |
|
186 |
| - scene.add( new THREE.AmbientLight( 0x222222 ) ); |
| 186 | + scene.add( new THREE.HemisphereLight( 0x111111, 0x000000 ) ); |
187 | 187 |
|
188 | 188 | var spotLight = new THREE.SpotLight( 0xffffff );
|
189 | 189 | spotLight.position.set( 50, 100, 50 );
|
190 | 190 | spotLight.angle = Math.PI / 7;
|
191 |
| - spotLight.penumbra = 0.8 |
| 191 | + spotLight.decay = 2; |
| 192 | + spotLight.distance = 300; |
| 193 | + spotLight.penumbra = 0.8; |
192 | 194 | spotLight.castShadow = true;
|
193 | 195 | scene.add( spotLight );
|
194 | 196 |
|
|
277 | 279 |
|
278 | 280 | camera.lookAt( scene.position );
|
279 | 281 |
|
280 |
| - for ( var i = 0, l = objects.length; i < l; i ++ ) { |
| 282 | + for ( var i = 0, l = group.children.length; i < l; i ++ ) { |
281 | 283 |
|
282 |
| - var object = objects[ i ]; |
| 284 | + var object = group.children[ i ]; |
283 | 285 | object.rotation.y += 0.005;
|
284 | 286 |
|
285 | 287 | }
|
|
0 commit comments