Scene with SSAO

regular scene with SSAO settings

HTML

<script src="http://mrdoob.github.com/three.js/build/three.min.js"></script>
<script src="https://dl.dropboxusercontent.com/u/3587259/Code/Threejs/OrbitControls.js">
    
</script>

<script src="http://mrdoob.github.com/three.js/examples/js/shaders/CopyShader.js"></script>
<script src="http://mrdoob.github.com/three.js/examples/js/shaders/SSAOShader.js"></script>
<script src="http://mrdoob.github.com/three.js/examples/js/postprocessing/EffectComposer.js"></script>
<script src="http://mrdoob.github.com/three.js/examples/js/postprocessing/RenderPass.js"></script>
<script src="http://mrdoob.github.com/three.js/examples/js/postprocessing/MaskPass.js"></script>
<script src="http://mrdoob.github.com/three.js/examples/js/postprocessing/ShaderPass.js"></script>

CSS

body {
    background-color: #000000;
    margin: 0;
    overflow: hidden;
}

JavaScript

// from: http://goo.gl/RzfwH


var camera, scene, renderer, controls;
var group;
var depthMaterial, depthTarget, composer;

init();
animate();

function init() {

    renderer = new THREE.WebGLRenderer();
    renderer.setSize(window.innerWidth, window.innerHeight);
    document.body.appendChild(renderer.domElement);

    camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 1, 1500);
    camera.position.z = 500;

    scene = new THREE.Scene();
    controls = new THREE.OrbitControls(camera, renderer.domElement);
    
    geometry = new THREE.TorusKnotGeometry( 50, 23, 100, 36 )
    material = new THREE.MeshBasicMaterial(
        {
             opacity: 0.5
        }
    );

    mesh = new THREE.Mesh(geometry, material);
    scene.add(mesh);

    ground = new THREE.Mesh (new THREE.BoxGeometry (200,200,5),
                             new THREE.MeshBasicMaterial());
    ground.rotation.x = -Math.PI/2;
    scene.add (ground);
    /*    
    group = new THREE.Object3D();
    scene.add(group);

    
    var geometry = new THREE.BoxGeometry(10, 10, 10);
    var material = new THREE.MeshBasicMaterial({
        color: 0xffffff
    });

    for (var i = 0; i < 100; i++) {

        var mesh = new THREE.Mesh(geometry, material);
        mesh.position.x = Math.random() * 400 - 200;  // random() [0,1)
        mesh.position.y = Math.random() * 400 - 200;
        mesh.position.z = Math.random() * 400 - 200;
        mesh.rotation.x = Math.random();
        mesh.rotation.y = Math.random();
        mesh.rotation.z = Math.random();
        mesh.scale.x = mesh.scale.y = mesh.scale.z = Math.random() * 10 + 1;
        group.add(mesh);

    }
*/
    
    // depth

    var depthShader = THREE.ShaderLib["depthRGBA"];
    var depthUniforms = THREE.UniformsUtils.clone(depthShader.uniforms);

    depthMaterial = new THREE.ShaderMaterial({
        fragmentShader: depthShader.fragmentShader,
        vertexShader: depthShader.vertexShader,
        uniforms:...