three.js ~ example ~ Mr.doob
2012-01-05 ~
HTML
<script src="https://cdn.skypack.dev/three@137"></script>
JavaScript
import * as THREE from 'https://cdn.skypack.dev/three@0.137.5'
var camera, scene, renderer, geometry, material, mesh;
init();
animate();
function init() {
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 1, 1000);
camera.position.set(15, 9, 15);
scene.add(camera);
geometry = new THREE.DodecahedronGeometry(1, 0);
material = new THREE.MeshNormalMaterial();
const dummy = new THREE.Object3D()
const inst = new THREE.InstancedMesh(geometry, material, 1000)
for (let i = 0; i < 1000; i++) {
dummy.position.set(-100 + i, 0, -100 + i)
dummy.updateMatrixWorld(true)
inst.setMatrixAt(i, dummy.matrixWorld)
}
inst.instanceMatrix.needsUpdate = true
scene.add(inst)
mesh = new THREE.Mesh(geometry, material);
scene.add(mesh);
renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.shadowMap.enabled = true
document.body.appendChild(renderer.domElement);
}
function animate() {
requestAnimationFrame(animate);
render();
}
function render() {
renderer.render(scene, camera);
}
(function(){var script=document.createElement('script');script.onload=function(){var stats=new Stats();document.body.appendChild(stats.dom);requestAnimationFrame(function loop(){stats.update();requestAnimationFrame(loop)});};script.src='//mrdoob.github.io/stats.js/build/stats.min.js';document.head.appendChild(script);})() //