three.js で立方体を 3 つの異なる色で色付けしようとしていますが、シーンに追加できる THREE.DirectionalLight オブジェクトの量に上限があるようです。ドキュメントでは、このような制限について言及していないので、これが本当に当てはまるのか、それとも他に何か不足しているのか疑問に思っています。
var renderer = new THREE.WebGLRenderer();
renderer.setSize( 800, 600 );
document.body.appendChild( renderer.domElement );
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(
35, // Field of view
800 / 600, // Aspect ratio
0.1, // Near plane
10000 // Far plane
);
camera.position.set( -15, 10, 10 );
camera.lookAt( scene.position );
scene.add( camera );
var cube = new THREE.Mesh(
new THREE.CubeGeometry( 5, 5, 5 ),
new THREE.MeshLambertMaterial( { color: 0xFFFFFF } )
);
scene.add( cube );
// top
light = new THREE.DirectionalLight( 0x0DEDDF );
light.position.set( 0, 1, 0 );
scene.add( light );
// bottom
light = new THREE.DirectionalLight( 0x0DEDDF );
light.position.set( 0, -1, 0 );
scene.add( light );
// back
light = new THREE.DirectionalLight( 0xB685F3 );
light.position.set( 1, 0, 0 );
scene.add( light );
// front
light = new THREE.DirectionalLight( 0xB685F3 );
light.position.set( -1, 0, 0 );
scene.add( light );
// right
light = new THREE.DirectionalLight( 0x89A7F5 );
light.position.set( 0, 0, 1 );
scene.add( light );
// left
light = new THREE.DirectionalLight( 0x89A7F5 );
light.position.set( 0, 0, -1 );
scene.add( light );
renderer.render( scene, camera );
</p>
ここでは、上、下、前、後、左、右の側面に色が付けられています。最初の 4 人は引き分け、最後の 2 人は引き分けません。それらを並べ替えて見てください。何かご意見は?