2015-01-20 2 views
0

창 높이와 너비의 크기를 조정했습니다. 문제는 그것들이 다르게 행동한다는 것입니다. 여기 three.js 창의 크기 조정 동작이 다르게 동작합니다.

은 예입니다 -> Example 1

renderer.setSize (window.innerWidth, window.innerHeight); 
camera.aspect = window.innerWidth/window.innerHeight; 
camera.updateProjectionMatrix(); 

사람들은 두 경우 모두 같은 방식으로 행동한다면 그것은 좋은 것입니다.

그래서 내가 쓴 -> Example 2

renderer.setSize (window.innerWidth, window.innerHeight); 
var aspect = window.innerWidth/window.innerHeight; 
var fov = 90; 
camera.aspect = aspect; 

if (aspect > 1.0) { 
    ymax = camera.near * Math.tan (
      THREE.Math.degToRad(fov*0.5)); 
    ymin = - ymax; 
    xmin = ymin * aspect; 
    xmax = ymax * aspect; 
} else { 

    xmax = camera.near * Math.tan (
      THREE.Math.degToRad(fov*0.5)); 
    xmin = - xmax; 
    ymin = xmin/aspect; 
    ymax = xmax/aspect; 
} 

camera.projectionMatrix.makeFrustum(xmin, xmax, 
    ymin, ymax, camera.near, camera.far); 

는 기압 의도 한대로 작동하고 있는지 나도 몰라, 또는 그냥 뭔가를 이해하지 못했지만, 적어도 나중에 작품 더 나은 기본값으로 나를 위해.

질문에 대한 답변이 너무 많으므로 내가 관련있는 것을 놓쳤습니까? 아니면 이런 종류의 기본 동작을 갖는 데 관심이 있습니까?

답변

0

예. 당신은 뭔가 관련성이없는 것을 놓쳤습니다.

원근 카메라의 경우 camera.fov은 항상 수직 시야입니다. 그래서 당신의 접근 방식은 받아 들일 수 없습니다.

three.js r.70

+0

나는 이해합니다. 개발자는 창의 크기에 관계없이 특정 작업이 표시되는 이러한 종류의 크기 조정 동작에 여전히 관심이 있다고 가정합니다. –

관련 문제