three.js ~ example ~ Mr.doob
2012-01-05 ~
by mikola
JavaScript
var camera, scene, renderer, geometry, material, shape;
init();
animate();
function init() {
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 10000);
camera.position.z = 100;
scene.add(camera);
var mesh = document.mesh;
geometry = new THREE.Geometry();
for(var i=0; i<mesh.positions.length; ++i) {
var p = mesh.positions[i];
geometry.vertices.push(new THREE.Vector3(p[0]-10, p[1]-10, p[2]-10));
}
for(var i=0; i<mesh.faces.length; ++i) {
var f = mesh.faces[i];
var face = new THREE.Face3(f[0], f[1], f[2]);
for(var j=0; j<3; ++j) {
var n = vnormals[f[j]];
face.vertexNormals[j] = new THREE.Vector3(n[0], n[1], n[2]);
var c = new THREE.Color(0xff00ff);
if(f[j] in distances) {
var br = 1.0 - 0.1 * distances[f[j]];
c.setRGB(br, br, br);
}
face.vertexColors[j] = c;
}
var n = fnormals[i];
face.normal = new THREE.Vector3(n[0], n[1], n[2]);
geometry.faces.push(face);
//asdfasdf
}
//material = new THREE.MeshNormalMaterial({ shading: THREE.SmoothShading });
material = new THREE.MeshBasicMaterial( { color: 0xffffff, shading: THREE.SmoothShading, vertexColors: THREE.VertexColors } ),
shape = new THREE.Mesh(geometry, material);
scene.add(shape);
renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
}
function animate() {
shape.rotation.x += 0.01;
shape.rotation.y += 0.02;
requestAnimationFrame(animate);
render();
}
function render() {
renderer.render(scene, camera);
}