From 3b08efb54dc9ef1f5ac9b39a159db540635ae0a5 Mon Sep 17 00:00:00 2001 From: yoshin Date: Fri, 17 Apr 2026 09:26:17 +0900 Subject: [PATCH] docs: sync README and CHANGELOG through v2.8.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit README was stuck at v2.6.0 and docs/CHANGELOG.md at v2.4.0, both missing the accumulated release history from the package restructuring work. - README: rewrite the project structure tree to reflect the 7-package feature-based layout introduced in v2.8.0 (common, scene, spatial, render, lighting, interact, metrics), replacing the stale flat layout. Extend the release history table with entries for v2.4.1, v2.5.0, v2.5.1, v2.6.0, v2.6.1, v2.6.2, v2.7.0, v2.8.0, and v2.8.1. - CHANGELOG: add full Keep-a-Changelog entries for v2.4.1 through v2.8.1, including the module restructurings, header cleanups, camera pitch fix, and the v2.8.1 maintenance cleanup (PRs #19, #20). Pure documentation update — no source or build changes. Co-Authored-By: Claude --- README.md | 58 +++++++++++++++---------- docs/CHANGELOG.md | 106 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 142 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index fd69f1c..989f228 100644 --- a/README.md +++ b/README.md @@ -132,31 +132,38 @@ co 0,5,0 0,1,0 4 8 255,128,0 ## 프로젝트 구조 +v2.8.0 이후 7개의 feature 기반 패키지로 재조직되었습니다. + ``` miniRT/ ├── src/ -│ ├── main.c # 진입점 -│ ├── parser/ # .rt 파일 파싱 (16) -│ ├── render/ # 렌더링 루프, 카메라, 디바운스 (8) -│ ├── spatial/ # BVH 공간 가속 구조 (10) -│ ├── intersect/ # 광선-오브젝트 교차 판정 (4) -│ ├── shading/ # Phong 조명 (2) -│ ├── shadow/ # 소프트 섀도우, offset LUT (3) -│ ├── display/ # MiniLibX 초기화/이벤트 (4) -│ ├── input/ # 키 입력 분기(dispatch) (7) -│ ├── hud/ # HUD 오버레이 (11) -│ ├── keyguide/ # 키가이드 렌더링 (3) -│ ├── metrics/ # 성능 메트릭 수집 (4) -│ ├── math/ # 벡터 연산 (2) -│ ├── scene/ # 씬 관리 (3) -│ ├── texture/ # 체커보드, 범프맵 (4) -│ ├── bvh_vis/ # BVH 시각화 (8) -│ └── utils/ # 에러, 타이머 (3) -├── includes/ # 헤더 파일 (22) -├── scenes/ # 테스트 씬 파일 -├── lib/ # libft, MiniLibX +│ ├── main.c +│ ├── common/ # vec3, 에러, 타이머, 포맷 헬퍼 +│ ├── scene/ # 씬 라이프사이클, 오브젝트 리스트 +│ │ └── parser/ # .rt 파싱 (엄격 검증 + 보너스 옵션) +│ ├── spatial/ +│ │ ├── aabb/ # AABB 생성/병합/교차 +│ │ ├── bvh/ # BVH 구축/순회/any-hit +│ │ ├── debug/ # BVH 트리 콘솔 덤프 (`--bvh-vis`) +│ │ └── intersect/ # 광선-오브젝트 교차 (sp/pl/cy/co) +│ ├── render/ # 렌더 루프, 카메라, 디바운스, MLX 윈도우 +│ ├── lighting/ +│ │ ├── shading/ # Phong 모델 +│ │ ├── shadow/ # 소프트 섀도우, offset LUT +│ │ └── texture/ # 체커보드, XPM 범프맵 +│ ├── interact/ # 이벤트 디스패치 (close/key/expose) +│ │ ├── input/ # 키보드 핸들러 +│ │ ├── hud/ # HUD 오버레이 +│ │ └── keyguide/ # 온스크린 키 가이드 +│ └── metrics/ # 프레임 타이밍, shadow/intersection 카운터 +├── includes/ # 모든 헤더 (src/ 구조 미러링) +├── scenes/ # 씬 파일 (valid/, invalid/, perf/) +├── textures/ # XPM 범프맵 에셋 +├── lib/ # libft, MiniLibX (서브모듈) ├── wiki/ # Wiki 문서 소스 -├── docs/ # 상세 모듈 레퍼런스 +├── docs/ # 상세 모듈 레퍼런스, CHANGELOG +├── specs/ # Feature specs (speckit) +├── scripts/ # norminette 검사, 벤치마크 스크립트 └── Makefile ``` @@ -178,8 +185,15 @@ miniRT/ | 버전 | 날짜 | 주요 변경 | |------|------|----------| +| v2.8.1 | 2026-04 | 유지보수 아티팩트 정리 (`tests/`, 죽은 `scripts/` 15개, 낡은 `.gitignore` 항목) | +| v2.8.0 | 2026-04 | 7-패키지 구조 재조직 (common/scene/spatial/render/lighting/interact/metrics), 카메라 pitch 360° 복원 | +| v2.7.0 | 2026-03 | 헤더 의존성 최소화, 다량 심볼 리네이밍 (bvh_vis→bvh_debug, is_in_shadow→shadow_is_occluded 등) | +| v2.6.2 | 2026-03 | 카메라 상대 up 벡터로 수직 이동 수정 | +| v2.6.1 | 2026-03 | `lib/` 서브모듈 인라인, wiki 용어 갱신 | | v2.6.0 | 2026-03 | 모듈 재구조화 (ray→intersect, lighting→shading+shadow), 헤더 리네이밍, 파서 강화 | -| v2.5.0 | 2026-03 | display 모듈 분리 (window→display), dead code 제거, wiki 개편 | +| v2.5.1 | 2026-03 | display 리네이밍, dead code 제거 (`aabb_surface_area` 등) | +| v2.5.0 | 2026-03 | 키 디스패치 바인드 테이블, `render_init` 통합, 다수 버그 수정 | +| v2.4.1 | 2026-03 | keyguide dirty 플래그 조건 수정 | | v2.4.0 | 2026-03 | 모듈 리팩토링 (input/metrics 분리), 파일 리네이밍, 문서 전면 갱신 | | v2.3.0 | 2026-02 | 디바운스 FSM 재설계, 키맵 재배치 (리사이즈/회전/광원), dead code 제거 | | v2.2.0 | 2026-02 | Plane BVH 분리, shadow BVH any-hit, 4라운드 성능 최적화 (S4 77.7%↑) | diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 3296614..9114ffd 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -5,6 +5,112 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [2.8.1] - 2026-04-17 + +### Removed +- **`tests/` 전체 삭제**: `test_shadow_calc.c`는 `calculate_shadow_bias`가 static 전환 후 링크 불가, `test_shadow_config`는 소스 없는 고아 바이너리, `baselines/metadata.json`은 종료된 016-compliance-refactoring 스냅샷 +- **죽은 스크립트 15개 제거**: 아카이브된 spec 012/013 전용 검증 스크립트, BVH 통합 수정 1회용, Norm에 역행하는 `fix_whitespace.sh`, 존재하지 않는 경로를 참조하는 `fix_line_continuations.sh`, `.github/scripts/sync-wiki.sh`로 대체된 `create_wiki.sh`, 하드코딩된 macOS 절대경로가 있는 `scripts/test/test_progress.sh` 등 +- **.gitignore 정리**: 존재한 적 없는 테스트 바이너리 패턴(`test_vector`, `test_parser`, `test_mlx` 등) 및 삭제된 `test_optimizations.sh` 항목 제거 + +순수 삭제 릴리스 (20개 파일, 977줄 삭제). 런타임/API/빌드 동작 변경 없음. + +## [2.8.0] - 2026-04-15 + +### Refactored +- **Feature-based packaging**: 16 flat modules → 7 packages (common, scene, spatial, render, lighting, interact, metrics) +- **Circular dependency resolution**: render↔interact 순환을 타입 전용 헤더(`ui_types.h`, `key_binds.h`)로 분리 +- **Inverted dependency fix**: scene→lighting 역방향 의존 제거 (`t_shadow_config`를 `t_scene`에 임베드) +- **Public API minimization**: bvh_debug 17→1 함수, 21개 헤더 선언 제거, 18개 함수 static 전환 +- **100% function documentation**: 310개 함수에 doxygen 스타일 문서 추가 + +### Fixed +- **Camera pitch rotation**: 360° 회전 복원 (이전에 클램프되던 버그) + +## [2.7.0] - 2026-03-27 + +### Refactored +- **Include dependency minimization**: 모듈 간 헤더 의존 최소화 +- **Prototype relocation**: 적절한 헤더로 함수 선언 재배치 +- **Debounce timer**: 래퍼 함수 인라인화 +- **Utils 이동**: `timer_elapsed_us`를 utils 모듈로 이동 +- **Scene helpers**: flag 헬퍼 인라인화, `object_list_grow` static 전환 +- **Parser consolidation**: 작은 파서 유틸 파일 통합, 에러 처리 단순화 + +### Renamed +- `mlx_context.h` → `display.h` +- `minirt.h` → `scene.h` +- `is_in_shadow` → `shadow_is_occluded` +- `intersect_*_new` → `intersect_*` (`_new` 서픽스 제거) +- `scene_build_bvh` → `build_scene_bvh` +- `bvh_vis` 모듈 → `bvh_debug` +- HUD 함수들에 `hud_` 프리픽스 통일 (`ft_strcpy` → `hud_strcpy`, `ft_itoa_buf` → `hud_itoa_buf`) + +## [2.6.2] - 2026-03-27 + +### Fixed +- **Input**: 수직 이동에 카메라 상대 up 벡터 사용 (월드 up 대신) + +## [2.6.1] - 2026-03-25 + +### Changed +- **lib/ 서브모듈 인라인**: libft, MiniLibX을 일반 소스 파일로 편입 + +### Docs +- v2.6.0 기반으로 README.md 갱신 +- Wiki 용어 및 설명 업데이트 + +## [2.6.0] - 2026-03-25 + +### Added +- **Parser 강화**: 좌표 범위 검증, 숫자 파싱 강화 +- **테스트 씬**: invalid 파서 씬 34개, valid 씬 2개 추가 + +### Refactored +- **모듈 분할**: `ray/` 및 `lighting/`을 `intersect/`, `shading/`, `shadow/`로 분할 +- **HUD 헤더 통합**: 작은 헤더 4개를 `hud_internal.h`로 병합 +- **minirt.h 정리**: 이동된 타입과 프로토타입 제거 + +### Renamed +- `window.h` → `render.h`, `window_internal.h` → `input.h` +- window → display + +### Docs +- Architecture 문서 및 wiki를 v2.6.0 모듈 구조에 맞게 갱신 +- CLAUDE.md 재구조화 반영 + +## [2.5.1] - 2026-03-24 + +### Refactored +- **Display 리네이밍**: `window/` MLX 파일을 `src/display/`로 이동, 픽셀 연산 단순화 +- **Parser**: 오브젝트 타입 카운팅을 `get_type_count`로 중복 제거 + +### Removed +- 미사용 `aabb_surface_area`, `bvh.max_depth` 제거 +- 미사용 bvh_vis 포맷 헬퍼 및 `max_depth` 경고 제거 + +## [2.5.0] - 2026-03-24 + +### Refactored +- **Key dispatch**: 키 디스패치 체인을 바인드 테이블로 교체 +- **Render init 통합**: `window_init` + `window_lifecycle` → `render_init` +- **파일 분할**: `mlx_context_destroy`, `bvh_vis prefix_push`를 별도 파일로 분리 + +### Fixed +- **macOS**: window에서 NULL 해석을 위해 `stdlib.h` 무조건 포함 +- **HUD**: `hud_toggle`을 항상 버퍼 리페인트하도록 단순화 +- **Input**: KEY_1/KEY_3 카메라 yaw 방향 교환 + +### Style +- 공백 및 norminette 이슈 수정 + +## [2.4.1] - 2026-03-24 + +### Fixed +- **Render**: HUD가 보일 때만 keyguide를 dirty로 표시 + +### Docs +- 모든 docs/ 및 wiki/ 페이지를 v2.4.0 코드베이스에 맞게 갱신 + ## [2.4.0] - 2026-03 ### Refactored