Skip to Content

Antialiasing in Three.js

| 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);
}

Share This

«
»