Quick Reference
text
View: eye, target, up, handedness (`forward` 입력이면 target = eye + forward)
Perspective: vertical FOV, width/height aspect, nearZ, farZ
Orthographic: view width, view height, nearZ, farZFOV는 radians이고 aspect는 render target 크기에서 계산합니다. Near는 0보다 커야 하며 지나치게 작은 near와 큰 far 조합은 depth precision을 악화시킵니다.
카메라 입력
Orbit camera는 target을 중심으로 yaw·pitch와 distance에서 eye를 계산하고, top-down camera는 world up과 pitch 제한을 고정하는 편이 안정적입니다. Forward와 up이 거의 평행하면 basis 계산이 불안정해지므로 pitch와 입력을 제한합니다.
Window resize 때 aspect와 projection을 다시 만들고 viewport도 같은 dimensions로 갱신합니다. Perspective와 orthographic을 바꿀 때 화면에서 같은 크기를 유지하려면 FOV·distance와 ortho width의 관계를 따로 계산합니다.
자주 틀리는 점
- Degree를 DirectXMath FOV 함수에 그대로 넘기지 않습니다.
- LH view와 RH projection을 섞지 않습니다.
- Zero-size minimized window에서 aspect를 나누지 않습니다.
- Camera transform 자체와 그 inverse 역할인 view matrix를 혼동하지 않습니다.
참고 링크
2 sources