Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
var camera, scene, renderer; var mesh; init(); animate(); function init() { camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 1, 1000 ); camera.position.z = 400; scene = new THREE.Scene(); var loader = new THREE.TextureLoader(); var materialArray = [ new THREE.MeshBasicMaterial( { map: loader.load("images/seasons_01.jpg") } ), new THREE.MeshBasicMaterial( { map: loader.load("images/seasons_02.jpg") } ), new THREE.MeshBasicMaterial( { map: loader.load("images/seasons_03.jpg") } ), new THREE.MeshBasicMaterial( { map: loader.load("images/seasons_04.jpg") } ), new THREE.MeshBasicMaterial( { map: loader.load("images/seasons_01.jpg") } ), new THREE.MeshBasicMaterial( { map: loader.load("images/seasons_02.jpg") } ) ]; var geometry = new THREE.BoxBufferGeometry( 200, 200, 200 ); mesh = new THREE.Mesh( geometry, materialArray ); scene.add( mesh ); renderer = new THREE.WebGLRenderer( { antialias: true } ); renderer.setPixelRatio( window.devicePixelRatio ); renderer.setSize( window.innerWidth, window.innerHeight ); document.body.appendChild( renderer.domElement ); // window.addEventListener( 'resize', onWindowResize, false ); } function onWindowResize() { camera.aspect = window.innerWidth / window.innerHeight; camera.updateProjectionMatrix(); renderer.setSize( window.innerWidth, window.innerHeight ); } function animate() { requestAnimationFrame( animate ); mesh.rotation.x += 0.005; mesh.rotation.y += 0.01; renderer.render( scene, camera ); } |
Reference:
- Both MeshFaceMaterial and MultiMaterial are deprecated:
https://stackoverflow.com/questions/35877484/three-js-using-cubetextureloader-to-create-a-different-image-on-each-face-of-a/35883939