three.js

camera.updateProjectionMatrix()

폴리프레임 2024. 10. 11. 17:21
반응형

Three.js에서 카메라의 투영 행렬(projection matrix)을 갱신하는 역할을 합니다. 주로 카메라의 설정이 변경된 후, 그 변경 사항을 반영하여 화면에 정확하게 렌더링되도록 하기 위해 호출됩니다.

 

투영 행렬(projection matrix)이란?

투영 행렬은 3D 공간의 객체들을 2D 화면에 어떻게 보여줄지를 결정하는 수학적 변환입니다. 카메라의 투영 행렬은 카메라의 화각(FOV), 종횡비(aspect ratio), 클리핑 평면(clipping planes) 등과 같은 카메라의 설정에 따라 만들어집니다.

주로 사용되는 경우:
  1. 화면 크기 변경: 창 크기나 캔버스 크기가 변경되면, 종횡비(aspect ratio)가 달라지므로 카메라의 aspect 속성을 수정한 뒤 updateProjectionMatrix()를 호출해야 합니다.
  2. 카메라 설정 변경: 카메라의 fov(화각)나 near, far 클리핑 평면이 변경되었을 때도 투영 행렬을 업데이트해야 합니다.
  3. 종횡비 변경: 종횡비를 조정한 경우에도 투영 행렬이 갱신되어야 합니다.
function handleWindowResize() {
  camera.aspect = window.innerWidth / window.innerHeight;
  camera.updateProjectionMatrix();
  renderer.setSize(window.innerWidth, window.innerHeight);
}
window.addEventListener("resize", handleWindowResize);