2012-12-26 32 views
-1
// set the scene size 
var WIDTH = 800; 
var HEIGHT = 640; 

// set some camera attributes 
var VIEW_ANGLE = 45, 
ASPECT = WIDTH/HEIGHT, 
NEAR = 0.1, 
FAR = 10000; 

var $container = $('#container'); 

// create a WebGL renderer, camera 
var renderer = new THREE.WebGLRenderer(); 
var camera = new THREE.PerspectiveCamera(VIEW_ANGLE, 
             ASPECT, 
             NEAR, 
             FAR); 
var scene = new THREE.Scene(); 

// the camera starts at 0,0,0 so pull it back 
camera.position.z = 1000; 

// start the renderer 
renderer.setSize(WIDTH, HEIGHT); 

// attach the render-supplied DOM element 
$container.append(renderer.domElement); 

// create the sphere's material 
var sphereMaterial = new THREE.MeshLambertMaterial({ 
    color: 0xCC0000 
}); 

// set up the sphere vars 
var radius = 50, segments = 16, rings = 16; 

// create a new mesh with sphere geometry - 
// we will cover the sphereMaterial next! 
var sphere = new THREE.Mesh(
    new THREE.SphereGeometry(radius, segments, rings), 
    sphereMaterial); 

sphere.position.x = 20; 
sphere.doubleSided = true; 

// add the sphere to the scene 
scene.add(sphere); 

// and the camera 
scene.add(camera); 

/* Light it up */ 
var pointLight = new THREE.PointLight(0xFFFFFF); 
pointLight.position.x = 10; 
pointLight.position.y = 50; 
pointLight.position.z = 130; 
scene.add(pointLight); 

window.setInterval(update, 16.66666666); 

var keyboard = new THREEx.KeyboardState(); 

function update() { 
    if (keyboard.pressed("W")) { 
    camera.position.z -= 5; 
    } else if (keyboard.pressed("S")) { 
    camera.position.z += 5; 
    } 

    renderer.render(scene, camera); 
} 

這是我的代碼,一個簡單的demow這裏使用W和S鍵讓我去放大/縮小一個3D球體。如何查看球面的背面?

然而,當我拿到「內部」的球,我不能看到它的背面,即使我把sphere.doubleSided = true;

我試過把renderer.setFaceCulling(true);(也是假),但他們都沒有修復它。

任何想法?

回答

2

材料

使用side: THREE.DoubleSide您使用哪個three.js所的版本?

jsfiddle

+1

這個怎麼樣[的jsfiddle](http://jsfiddle.net/jFyFJ/20/)? – Valay

+0

完美的工作,謝謝! –