2012-12-27 2 views
0

투영 행렬과 프로젝트 투영 대상을 수동으로 변경하고 싶지만, 투영 할 때 아무것도 투영되지 않습니다. 내 코드는 다음과 작성 : 내가 잘못 뭐하는 거지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 = []; 

에 코드가 올바르게 카메라 투영 매트릭스를 변경 선언.

관련 문제