728x90
반응형
- 개요
각 픽셀의 깊이 값이 어떻게 저장되었는지 확인하기 위해 깊이 버퍼를 시각화하여 화면에 표현한다
프로젝트에서는 F3키를 누르면 깊이 버퍼를 확인할 수 있다

이때 설정한 깊이 버퍼 값의 범위는 [-1, 1]이므로 깊이 값을 무채색으로 표시할 수 있도록
위와 같이 1을 더하고 0.5을 곱하여 [0, 1]의 범위를 가지도록 식을 구성할 수 있다
- 예제

게임 로직을 담당하는 Update3D 함수에 위와 같이 코드를 추가한다
스페이스 바를 눌러 깊이 버퍼 값의 선형화 여부를 저장하는 useLinearVisualization 변수의 값을 설정한다

메시를 구성하는 삼각형을 그리는 DrawTriangle3D 함수에 위와 같이 코드를 추가하여
F3키가 눌러졌는지 감지하고 위의 식을 활용하여 NDC 공간의 깊이 값을 [0, 1]로 정규화하여 grayScale 변수에 저장한다
이후 grayScale 값을 사용하여 무채색을 계산하고 삼각형의 픽셀을 그린다
- 최종 실행 결과

F3키를 누르면 위와 같이 모두 흰색에 가까운 이미지로 변환되는 것을 확인할 수 있다
위와 같이 나타나는 이유는 NDC 공간에서 깊이 값의 변화가 y = -(1/x) 그래프 형태로 비선형 형태이기 때문이다
카메라에서 조금 떨어지면 깊이 값이 급격하게 올라가 대부분 1에 근접한 값이 된다
따라서 대부분의 깊이 값이 흰색에 가까운 밝은색으로 표시된다
728x90
반응형
'수학 > 이득우의 게임 수학' 카테고리의 다른 글
| 절두체 컬링 (1) 평면의 방정식 (0) | 2026.06.24 |
|---|---|
| 원근 투영 (7) 깊이 버퍼의 시각화 (2) (0) | 2026.06.17 |
| 원근 투영 (5) - 깊이 버퍼와 깊이 테스팅 (0) | 2026.06.17 |
| 원근 투영 (4) - 원근 보정 매핑 (0) | 2026.06.10 |
| 원근 투영 (3) - 깊이 값 (0) | 2026.06.03 |