Files
game_engine/docs/DEFERRED.md
tolelom df2082f532 docs: update STATUS.md and DEFERRED.md for completed Phase 2-3a items
Mark PNG/JPG/glTF, query3/4, query filters, scheduler,
Capsule/GJK, Coulomb friction, Lua engine API as completed.
Update test count from 255 to 324.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 20:16:37 +09:00

160 lines
7.2 KiB
Markdown

# 미뤄진/간소화된 구현 항목
## Phase 2
- ~~**PNG 디코더 자체 구현**~~ ✅ `png.rs` + `deflate.rs` 구현 완료.
- ~~**JPG 디코더 자체 구현**~~ ✅ `jpg.rs` Baseline JPEG (Huffman/IDCT/MCU/YCbCr) 구현 완료.
- ~~**glTF 파서**~~ ✅ `gltf.rs` + `json_parser.rs` glTF 2.0 / GLB 구현 완료.
- **JPG Progressive** — Baseline만 지원. Progressive JPEG 미구현.
- **glTF 애니메이션/스킨** — 메시+머티리얼만 지원. 애니메이션, 스킨, 카메라, 라이트 확장 미구현.
## Phase 3a
- **Archetype 기반 스토리지** → SparseSet 사용 중. 대규모 씬에서 성능 이슈 시 전환.
- ~~**시스템 스케줄러**~~ ✅ 순서 기반 Scheduler (System trait + FnMut blanket impl) 구현 완료.
- ~~**쿼리 필터**~~ ✅ query_with/query_without, query2_with/query2_without 구현 완료. Changed 미구현.
- ~~**query3+**~~ ✅ query3, query4 구현 완료.
- **Changed 필터** — 컴포넌트 변경 감지 미구현. 프레임별 dirty flag 필요.
- **의존성 기반 스케줄러** — 순서 기반만 구현. 읽기/쓰기 의존성 자동 정렬/병렬 실행 미구현.
## Phase 3b
- **JSON 직렬화** → 커스텀 .vscn 텍스트 포맷 사용.
- **바이너리 씬 포맷** — 미구현.
- **임의 컴포넌트 직렬화** — Transform/Parent/Tag만 지원.
## Phase 3c
- **비동기 로딩** — 동기 insert만.
- **핫 리로드** — 파일 변경 감지 미구현.
## Phase 4a
- **Metallic/Roughness/AO 텍스처 맵** → 파라미터 값만 사용. 텍스처 샘플링 미구현.
- **Emissive 맵** — 미구현.
## Phase 4b
- **CSM (Cascaded Shadow Maps)** → 단일 캐스케이드만. 원거리 그림자 해상도 낮음.
- **Point Light Shadow (큐브맵)** — 미구현.
- **Spot Light Shadow** — 미구현.
- **라이트 컬링** — 타일/클러스터 기반 미구현.
## Phase 4c
- **HDR 큐브맵 환경맵** → 프로시저럴 sky 함수로 대체.
- **Irradiance/Prefiltered Map 컨볼루션** → 프로시저럴 근사.
- **GPU 컴퓨트 BRDF LUT** → CPU 생성 (256x256).
## Phase 5-1
- ~~**Capsule, Convex Hull 콜라이더**~~ ✅ Capsule + GJK/EPA 구현 완료. Convex Hull은 미구현.
- ~~**OBB (회전된 박스) 충돌**~~ ✅ GJK/EPA로 대체 완료.
- **Incremental BVH 업데이트** — 매 프레임 전체 rebuild. 성능 이슈 시 incremental update 적용.
- **연속 충돌 감지 (CCD)** — 이산 충돌만. 빠른 물체의 터널링 미처리.
## Phase 5-2
- **각속도/회전 물리** — angular_velocity 필드만 존재, 적분 미구현. 관성 텐서 필요.
- ~~**마찰 (Coulomb)**~~ ✅ Coulomb friction 구현 완료.
- **Sequential Impulse 솔버** — 단일 반복 충돌 응답만. 다중 물체 쌓기 불안정.
- **Sleep/Island 시스템** — 정지 물체 최적화 미구현.
## Phase 5-3
- **Ray vs Plane, Triangle, Mesh** — 콜라이더 기반만 지원. 메시 레벨 레이캐스트 미구현.
- **raycast_all (다중 hit)** — 가장 가까운 hit만 반환.
- **BVH 조기 종료 최적화** — 모든 리프 검사 후 최소 t 선택. front-to-back 순회 미구현.
## Phase 8-4
- **씬 뷰포트** — 3D 렌더러 임베드 미구현.
- **엔티티 인스펙터** — ECS 컴포넌트 편집 미구현.
- **에셋 브라우저** — 파일 시스템 탐색 미구현.
- **텍스트 입력** — 키보드 → 문자열 입력 미구현.
- **스크롤, 드래그앤드롭** — 미구현.
- **도킹, 탭, 윈도우 드래그** — 미구현.
- **TTF 폰트** — 비트맵 고정폭만. 가변 크기 미지원.
## Phase 8-3
- **핫 리로드** — 파일 변경 감지 + Lua state 재로드 미구현.
- ~~**엔진 API 노출**~~ ✅ 기본 엔진 API (spawn, position, entity_count) Lua 바인딩 구현 완료. 물리/오디오 API는 미구현.
- **Lua 테이블 ↔ Rust 구조체** — 복잡한 데이터 변환 미구현.
- **코루틴** — Lua 코루틴 래핑 미구현.
- **샌드박싱** — Lua 보안 제한 미구현.
## Phase 8-2
- **상태 동기화 (스냅샷)** — 미구현. 서버→클라이언트 월드 상태 전송.
- **보간 / 예측** — 미구현. 클라이언트 측 스무딩.
- **지연 보상** — 미구현. 서버 측 히트 판정 보정.
- **신뢰성 계층** — 미구현. 패킷 재전송, 순서 보장.
- **암호화 / 인증** — 미구현.
## Phase 8-1
- **자동 내비메시 생성** — Recast 스타일 복셀화 미구현. 수동 정의만.
- **String Pulling (Funnel)** — 삼각형 중심점 경로만. 최적 경로 스무딩 미구현.
- **동적 장애물 회피** — 정적 내비메시만. 런타임 장애물 미처리.
- **ECS 통합** — AI 컴포넌트 미구현. 함수 직접 호출.
- **내비메시 직렬화** — 미구현.
## Phase 7-4
- **TAA** — Temporal Anti-Aliasing 미구현. Motion vector 필요.
- **SSR** — Screen-Space Reflections 미구현.
- **Motion Blur, DOF** — 미구현.
- **Auto Exposure** — 고정 exposure만. 적응형 노출 미구현.
- **Bilateral Bloom Blur** — 단순 box/tent filter. Kawase blur 미적용.
## Phase 7-3
- **RT Reflections** — 미구현. BLAS/TLAS 인프라 재사용 가능.
- **RT AO** — 미구현.
- **Point/Spot Light RT shadows** — Directional만 구현.
- **Soft RT shadows** — 단일 ray만. Multi-ray soft shadow 미구현.
- **BLAS 업데이트** — 정적 지오메트리만. 동적 메시 변경 시 BLAS 재빌드 필요.
- **Fallback** — RT 미지원 GPU에서 자동 PCF 폴백 미구현.
## Phase 7-2
- **Bilateral Blur** — SSGI 노이즈 제거 블러 미구현. 4x4 노이즈 타일링만.
- **반해상도 렌더링** — 풀 해상도에서 SSGI 실행. 성능 최적화 미적용.
- **Temporal Accumulation** — 프레임 간 누적 미구현. 매 프레임 독립 계산.
- **Light Probes** — 베이크 기반 GI 미구현.
## Phase 7-1
- **투명 오브젝트** — 디퍼드에서 처리 불가. 별도 포워드 패스 필요.
- **G-Buffer 압축** — Position을 depth에서 복원, Normal을 octahedral 인코딩 등 미적용.
- **Light Volumes** — 풀스크린 라이팅만. 라이트별 sphere/cone 렌더 미구현.
- **Stencil 최적화** — 미구현.
## Phase 6-3
- **동적 그룹 생성** — 고정 4개(Master/Bgm/Sfx/Voice)만. 런타임 추가 불가.
- **그룹 간 라우팅/버스** — 미구현. 단순 Master → 개별 그룹 구조만.
- **이펙트 체인** — Reverb, EQ 등 미구현.
- **비선형 페이드 커브** — 선형 페이드만.
## Phase 6-2
- **도플러 효과** — 미구현. 상대 속도 기반 주파수 변조.
- **HRTF** — 미구현. 헤드폰용 3D 정위.
- **Reverb/Echo** — 미구현. 환경 반사음.
- **Occlusion** — 미구현. 벽 뒤 소리 차단.
## Phase 6-1
- **macOS/Linux 백엔드** — WASAPI(Windows)만 구현. CoreAudio, ALSA 미구현.
- **OGG/Vorbis 디코더** — WAV PCM 16-bit만 지원.
- **24-bit/32-bit WAV** — 16-bit만 파싱.
- **ECS 통합** — AudioSource 컴포넌트 미구현. AudioSystem 직접 호출.
- **비동기 로딩** — 동기 로딩만.
## 렌더링 한계
- **per-entity dynamic UBO** — 수천 개 이상은 인스턴싱 필요.
- **max_bind_groups=4** — IBL을 shadow group에 합쳐서 해결. 추가 group 필요 시 리소스 합치거나 bindless 활용.