53 lines
1.3 KiB
JavaScript
53 lines
1.3 KiB
JavaScript
import {
|
|
BackSide,
|
|
BoxGeometry,
|
|
Mesh,
|
|
MeshLambertMaterial,
|
|
MeshStandardMaterial,
|
|
PointLight,
|
|
Scene,
|
|
} from 'three';
|
|
|
|
class DebugEnvironment extends Scene {
|
|
|
|
constructor() {
|
|
|
|
super();
|
|
|
|
const geometry = new BoxGeometry();
|
|
geometry.deleteAttribute( 'uv' );
|
|
const roomMaterial = new MeshStandardMaterial( { metalness: 0, side: BackSide } );
|
|
const room = new Mesh( geometry, roomMaterial );
|
|
room.scale.setScalar( 10 );
|
|
this.add( room );
|
|
|
|
const mainLight = new PointLight( 0xffffff, 50, 0, 2 );
|
|
this.add( mainLight );
|
|
|
|
const material1 = new MeshLambertMaterial( { color: 0xff0000, emissive: 0xffffff, emissiveIntensity: 10 } );
|
|
|
|
const light1 = new Mesh( geometry, material1 );
|
|
light1.position.set( - 5, 2, 0 );
|
|
light1.scale.set( 0.1, 1, 1 );
|
|
this.add( light1 );
|
|
|
|
const material2 = new MeshLambertMaterial( { color: 0x00ff00, emissive: 0xffffff, emissiveIntensity: 10 } );
|
|
|
|
const light2 = new Mesh( geometry, material2 );
|
|
light2.position.set( 0, 5, 0 );
|
|
light2.scale.set( 1, 0.1, 1 );
|
|
this.add( light2 );
|
|
|
|
const material3 = new MeshLambertMaterial( { color: 0x0000ff, emissive: 0xffffff, emissiveIntensity: 10 } );
|
|
|
|
const light3 = new Mesh( geometry, material3 );
|
|
light3.position.set( 2, 1, 5 );
|
|
light3.scale.set( 1.5, 2, 0.1 );
|
|
this.add( light3 );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
export { DebugEnvironment };
|