2012-12-27 264 views
0

我想手動更改投影矩陣和項目obejects,但是當我這樣做時,什麼都不會被投影。 我的代碼寫在下面:Three.js投影矩陣不投影

container = document.createElement('div'); 
    document.body.appendChild(container); 
    scene = new THREE.Scene(); 
    scene.matrixAutoUpdate = false; 

    camera = new THREE.PerspectiveCamera(45, width/height, 1, 10000);     
    camera.position.z = 1000; 

    sm = [0.00276099, 0.00450188, 0.0029867, 0, -0.0003996, 0.00351491, -0.00492164, 0, -0.0053816, 0.00203048, 0.00189776, 0 ,0, 0, 0, 1]; 
    for (var i=0;i<16;i++){ 
     camera.projectionMatrix.elements[i] = sm[i]; 
    } 

    scene.add(camera); 

    siz = 20; 
    geometry = new THREE.CubeGeometry(siz, siz, siz); 
    material = new THREE.MeshBasicMaterial({ map: THREE.ImageUtils.loadTexture("{{ STATIC_URL }}images/middle.jpg") }); 

    mesh = new THREE.Mesh(geometry, material); 
    mesh.matrixAutoUpdate = false; 
    scene.add(mesh); 
    objects.push(mesh); 

    mesh.updateMatrix(); 
    scene.updateMatrixWorld(); 

    projector = new THREE.Projector(); 

    renderer = new THREE.WebGLRenderer({ antialias: true }); 
    renderer.sortObjects = false; 
    renderer.setSize(width, height); 

    renderer.shadowMapEnabled = true; 
    renderer.shadowMapSoft = true; 

    container.appendChild(renderer.domElement); 

我在做什麼錯了?

在此先感謝

回答

2

您的相機太遙遠了,就這樣。

camera.position.z = 100; 

此外,申報

var objects = []; 

您的代碼正確地改變相機投影矩陣。