Sphere Geometry using Three.js

JavaScript

var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(50, 500 / 400, 0.1, 1000);

var renderer = new THREE.WebGLRenderer();
renderer.setSize(500, 400);
document.body.appendChild(renderer.domElement);

var geometry = new THREE.SphereGeometry(3, 50, 50, 0, Math.PI * 2, 0, Math.PI * 2);
var material = new THREE.MeshNormalMaterial();
var cube = new THREE.Mesh(geometry, material);
cube.renderDepth = 1;
scene.add(cube);

var cube2 = new THREE.Mesh(geometry, material);
cube2.position.x = 1;
cube2.renderDepth = 2;
scene.add(cube2);

// with any one of these lines the renderDepth has an effect
// but then of course the depth test/write is wrong within the same object
//material.depthWrite = false;
//material.depthTest = false;

camera.position.z = 10;
var render = function () {
    requestAnimationFrame(render);

    cube.rotation.y += 0.01;

    renderer.render(scene, camera);
};

render();