Game Dev그래픽스와 렌더링

카메라, projection, depth

view matrix, perspective/orthographic projection, depth buffer가 각각 무엇을 하는지와 카메라 문제를 어떻게 읽을지 정리합니다.

마지막 수정 2026년 3월 22일

기본 패턴

text
world -> view -> projection -> depth test

설명

  • 카메라는 단순히 화면을 비추는 개념이 아니라, 월드를 camera 기준 공간으로 바꾸는 view transform입니다. 그래서 카메라를 앞으로 움직인다는 것은 수학적으로는 세상을 뒤로 옮기는 쪽에 가깝습니다.
  • projection은 3D 공간을 2D 화면으로 보이게 만드는 규칙입니다. perspective는 멀수록 작아 보여 깊이감을 만들고, orthographic은 크기 왜곡 없이 설계적 정렬과 UI/2D 작업에 유리합니다.
  • depth buffer는 "무엇이 앞에 보이는가"를 픽셀 단위로 판정합니다. 깊이 테스트가 없으면 뒤에 있어야 할 삼각형이 앞에 그려질 수 있고, near/far plane 설정이 나쁘면 precision 문제로 z-fighting이 보일 수 있습니다.
  • 카메라 문제는 종종 이동 로직 문제와 projection 문제, depth precision 문제가 섞여 보입니다. 그래서 먼저 "시점 변환", "투영 방식", "깊이 판정"을 분리해 보는 습관이 중요합니다.
  • 이 카드를 이해하면 3인칭 카메라, minimap camera, orthographic 2D camera, shadow camera 같은 다양한 카메라 문제를 같은 틀로 읽을 수 있게 됩니다.

짧은 예제

text
2D UI/타일맵: orthographic가 자연스럽다
3D 탐험 게임: perspective가 자연스럽다
원거리 z-fighting: near/far plane 설정부터 점검한다

빠른 정리

개념핵심 포인트
view카메라 기준으로 월드를 본다
perspective projection멀수록 작게 보인다
orthographic projection거리와 무관하게 크기를 유지한다
depth buffer앞뒤 가림을 픽셀 단위로 판정한다
z-fightingdepth precision이 부족할 때 보이는 깜빡임

주의할 점

카메라 clipping 문제를 오브젝트 로직 문제로 착각하거나, z-fighting을 셰이더 버그로 오해하는 경우가 많습니다. 카메라 문제는 이동, projection, depth precision을 분리해서 점검하는 편이 빠릅니다.

참고 링크

2 sources