투영 행렬(projection matrix)은 3D 그래픽스에서 카메라의 시야를 정의하는 중요한 요소입니다. fieldOfView (시야각, FOV)는 이 투영 행렬에서 카메라의 수직 시야각을 나타내며, 일반적으로 라디안 단위로 지정됩니다.

코드에서 fieldOfView = 3.141592654f / 4.0f;로 설정하는 이유를 설명하겠습니다.

1. 시야각(Field of View, FOV)

시야각은 카메라의 렌즈가 볼 수 있는 장면의 각도를 나타냅니다. 이것은 보통 수직 시야각을 의미하며, 넓은 시야각은 더 많은 장면을 볼 수 있게 하고, 좁은 시야각은 덜 볼 수 있게 합니다.

2. 라디안 단위

시야각은 라디안 단위로 설정되며, 3.141592654f는 원주율 π\pi를 나타냅니다. 1라디안은 약 57.3도의 각도입니다.

3. 코드에서 FOV 설정

fieldOfView = 3.141592654f / 4.0f;는 다음과 같은 계산을 나타냅니다:

fieldOfView=π4\text{fieldOfView} = \frac{\pi}{4}

이는 라디안 단위로 시야각을 설정하는 것입니다. π/4\pi/4는 45도에 해당합니다.

4. 왜 45도인가?

45도의 시야각은 3D 그래픽스와 게임에서 흔히 사용되는 기본 값입니다. 그 이유는 다음과 같습니다:

  • 균형잡힌 시야: 45도는 너무 넓지도, 너무 좁지도 않은 균형 잡힌 시야각을 제공합니다. 이것은 많은 응용 프로그램에서 자연스럽고 현실감 있는 장면을 제공하는 데 도움을 줍니다.
  • 왜곡 최소화: 시야각이 너무 넓으면 화면의 가장자리에서 왜곡이 발생할 수 있고, 너무 좁으면 터널 비전(tunnel vision) 효과가 생길 수 있습니다. 45도는 이러한 왜곡을 최소화하면서 적절한 시야를 제공합니다.
  • 표준 설정: 많은 3D 그래픽 엔진과 애플리케이션에서 기본 값으로 45도를 사용하기 때문에, 개발자들이 이 값을 기준으로 작업하기 편리합니다.

결론

fieldOfView = 3.141592654f / 4.0f;는 시야각을 45도로 설정하기 위한 코드입니다. 이 값은 3D 그래픽스에서 균형 잡힌 시야를 제공하여 자연스럽고 현실감 있는 장면을 연출하는 데 도움을 줍니다. 이는 많은 응용 프로그램에서 기본값으로 사용되며, 왜곡을 최소화하고 사용자에게 편안한 시각 경험을 제공합니다.

'Diary > Notepad' 카테고리의 다른 글

WIN32_LEAN_AND_MEAN 매크로 존재 이유  (0) 2024.07.31
앞으로 할 일 메모  (0) 2023.09.07
리눅스 메모  (0) 2023.08.21
[스크랩] git submodule 기능들  (0) 2023.08.01
그래픽스 강의 목록  (0) 2023.06.29