JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r79/three.min.js"></script>
<script src="https://cdn.rawgit.com/mrdoob/three.js/dev/examples/js/renderers/Projector.js"></script>
<script src="https://cdn.rawgit.com/mrdoob/three.js/dev/examples/js/renderers/CanvasRenderer.js"></script>
JavaScript
var camera, scene, renderer, geometry, material, mesh;
init();
animate();
function init() {
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 10000);
camera.position.z = 500;
scene.add(camera);
geometry = new THREE.CubeGeometry(200, 200, 200);
material = new THREE.MeshNormalMaterial();
mesh = new THREE.Mesh(geometry, material);
scene.add(mesh);
renderer = new THREE.CanvasRenderer({
antialias: true
});
renderer.setSize(500, 500);
document.body.appendChild(renderer.domElement);
}
function animate() {
requestAnimationFrame(animate);
render();
}
var frames = 0
var isSmall = false
function render(time) {
mesh.rotation.x += 0.01;
mesh.rotation.y += 0.02;
if (frames % 100 === 0) {
isSmall = !isSmall
renderer.setPixelRatio(isSmall ? 0.2 : 1);
renderer.setSize(500,500);
}
renderer.render(scene, camera);
frames ++;
}