-
Notifications
You must be signed in to change notification settings - Fork 0
Module HUD
yoshin edited this page Feb 12, 2026
·
4 revisions
HUD(Head-Up Display) 오버레이와 키가이드를 담당하는 모듈입니다.
| 파일 | 역할 |
|---|---|
hud_init.c |
HUD 초기화 및 페이지 수 계산 |
hud_render.c |
HUD 렌더링 진입점 |
hud_scene.c |
씬 정보 (카메라, 조명, 오브젝트 수) |
hud_objects.c |
오브젝트 목록 페이지네이션 |
hud_obj_render.c |
개별 오브젝트 정보 렌더링 |
hud_performance.c |
성능 메트릭 (FPS, 렌더 시간, BVH 통계) |
hud_text.c |
HUD dirty 마킹, vec3 포맷 출력 |
hud_format.c |
숫자/벡터 포맷팅 |
hud_format_helpers.c |
포맷 헬퍼 |
hud_format_simple.c |
간단한 포맷 유틸리티 |
hud_color.c |
HUD 배경/텍스트 색상 |
hud_color_extract.c |
색상 추출 유틸리티 |
hud_transparency.c |
반투명 배경 렌더링 |
hud_toggle.c |
HUD 토글 (H 키) |
hud_navigation.c |
페이지 네비게이션 |
| 파일 | 역할 |
|---|---|
keyguide_init.c |
키가이드 초기화 |
keyguide_render.c |
키가이드 오버레이 렌더링 |
keyguide_render_extra.c |
추가 키 정보 렌더링 |
keyguide_cleanup.c |
키가이드 리소스 해제 |
hud_render(render)
├── [visible 아님] → return
├── hud_render_content()
│ ├── hud_render_camera() // 카메라 위치, 방향
│ ├── render_camera_fov() // FOV 값
│ ├── hud_render_ambient() // 환경광
│ ├── hud_render_light() // 광원 위치
│ ├── render_light_bright() // 광원 밝기
│ ├── hud_render_objects() // 오브젝트 목록 (현재 페이지)
│ └── hud_render_performance() // 성능 메트릭
└── hud.dirty = 0
typedef struct s_hud_state
{
int visible; // 표시 여부
int current_page; // 현재 페이지
int objects_per_page; // 페이지당 오브젝트 수
int total_pages; // 전체 페이지 수
int dirty; // 재렌더링 필요 여부
} t_hud_state;- 카메라 위치, 방향, FOV
- 조명 위치, 밝기
- 오브젝트 수 (sphere/plane/cylinder 별)
- 타입, ID, 위치, 크기/반지름
- 선택된 오브젝트 강조 표시
- 페이지네이션 (오브젝트 수가 많을 때)
- FPS
- 프레임 렌더 시간 (ms)
- BVH 상태 (ON/OFF)
키가이드는 화면에 현재 사용 가능한 키 바인딩을 오버레이로 표시합니다.
- H 키로 HUD와 함께 토글
- 카메라, 오브젝트, 광원 조작 키 목록 표시 (정적 텍스트)
오브젝트 수가 objects_per_page를 초과하면 페이지 단위로 분할합니다:
전체 오브젝트: 40개
페이지당: 8개
전체 페이지: 5
현재 페이지: 1/5
Up / Down 키로 페이지 이동