Octahedron
by Paul West
HTML
<script src="//cdn.rawgit.com/mrdoob/three.js/master/build/three.min.js"></script>
CSS
body {
overflow: hidden;
margin: 0;
}
JavaScript
var cubeA, cubeB;
init();
animate();
function init() {
camera = new THREE.PerspectiveCamera(30, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.set(0, 0, 20);
scene = new THREE.Scene();
var geometry = new THREE.OctahedronGeometry(1, 0)
var color = new THREE.Color("#7833aa");
var color2 = new THREE.Color("#cccccc");
var material1 = new THREE.MeshLambertMaterial({
color: color.getHex()
});
var material2 = new THREE.MeshLambertMaterial({
color: color2.getHex()
});
cubeA = new THREE.Mesh(geometry, material1);
cubeA.position.set(0, 0, 0);
cubeB = new THREE.Mesh(geometry, material2);
cubeB.position.set(1, 1, 1);
//create a group and add the two cubes
//These cubes can now be rotated / scaled etc as a group
var group = new THREE.Group();
group.add(cubeA);
group.add(cubeB);
scene.add(group);
// so many lights
var light0 = new THREE.DirectionalLight(0xffffff, 1);
light0.position.set(0, 1, 0);
scene.add(light0);
var light1 = new THREE.DirectionalLight(0xffffff, 0.5);
light1.position.set(0, -1, 0);
scene.add(light1);
var light2 = new THREE.DirectionalLight(0xffffff, 1);
light2.position.set(1, 0, 0);
scene.add(light2);
var light3 = new THREE.DirectionalLight(0xffffff, 0.5);
light3.position.set(0, 0, 1);
scene.add(light3);
var light4 = new THREE.DirectionalLight(0xffffff, 1);
light4.position.set(0, 0, -1);
scene.add(light4);
var light5 = new THREE.DirectionalLight(0xffffff, 0.5);
light5.position.set(-1, 0, 0);
scene.add(light5);
renderer = new THREE.WebGLRenderer({
antialias: true
});
renderer.setPixelRatio(window.devicePixelRatio);
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
window.addEventListener('wheel', onMouseWheel, false);
window.addEventListener('resize', onWindowResize, false);
var animate = function() {
requestAnimationFrame(animate);
renderer.render(scene,...