Antialiasing in Three.js
One of the hurdles of 3D is aliasing (jagged edges when rendering). Depending on your hardware and browser, three.js has a built in function to help with this (top left: without antialiasing, top right: with antialiasing). Here is the code to enable it:
renderer2 = new THREE.WebGLRenderer({ antialias: true });
The full .js code below…
var scene, camera, renderer, geometry, material, cube, group; var scene2, camera2, renderer2, geometry2, material2, cube2, group2; init(); render(); function init() { scene = new THREE.Scene(); camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 10000 ); camera.position.z = 5; //set background to have transparency - alpha: true renderer = new THREE.WebGLRenderer({ alpha: true }); renderer.setSize(window.innerWidth, window.innerHeight); document.getElementById("viewport1").appendChild(renderer.domElement); geometry = new THREE.CubeGeometry(1, 1, 1); material = new THREE.MeshBasicMaterial({ wireframe: true, color: 'black' }); cube = new THREE.Mesh(geometry, material); // scene.add(cube); group = new THREE.Object3D(); group.add(cube); scene.add( group ); // 2----------------------------- scene2 = new THREE.Scene(); camera2 = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 10000 ); camera2.position.z = 5; //set background to have transparency - alpha: true renderer2 = new THREE.WebGLRenderer({ alpha: true, antialias: true }); renderer2.setSize(window.innerWidth, window.innerHeight); document.getElementById("viewport2").appendChild(renderer2.domElement); geometry2 = new THREE.CubeGeometry(1, 1, 1); material2 = new THREE.MeshBasicMaterial({ wireframe: true, color: 'black' }); cube2 = new THREE.Mesh(geometry2, material2); group2 = new THREE.Object3D(); group2.add(cube2); scene2.add( group2 ); } function render() { requestAnimationFrame(render); cube.rotation.x += 0.01; cube.rotation.y += 0.01; renderer.render(scene, camera); cube2.rotation.x += 0.01; cube2.rotation.y += 0.01; renderer2.render(scene2, camera2); }