2014-09-23 31 views
1

我使用STLLoader插件從threejs github上Threejs網狀擴展到渲染器和不保持縱橫比

這是我的代碼段

this.loadSTL = function(scene, stlFile){ 
     var loader = new THREE.STLLoader(); 
     loader.addEventListener('load', function(geometry, materials){ 
     var geometry = geometry.content; 
     var material = new THREE.MeshPhongMaterial({ambient: 0xff5533, color: 0xff5533, specular: 0x111111, shininess: 200}); 
     var mesh = new THREE.Mesh(geometry, material); 

     mesh.position.set(0, -0.9, 0); 
     mesh.rotation.set(0, 0, 0); 
     mesh.scale.set(0.012, 0.012, 0.012); 

     scene.add(mesh); 
     }); 
     loader.load(stlFile); 
    } 

這裏的問題是物體我通過STL文件增加加載/根據窗口分辨率降低高度。有什麼我們需要設置,以保持網格的寬度/高度不變,並且不隨屏幕/窗口分辨率而變化。

回答

2

也許你應該處理窗口調整大小事件,並執行以下操作:

function OnResize() 
{ 
    camera.aspect = canvas.width/canvas.height; 
    camera.updateProjectionMatrix(); 
    renderer.setSize (canvas.width, canvas.height); 
}; 
0

設置camera.aspect = 1解決了這個問題。正確的解決方案將設置

camera.aspect = $container.width/$container.height