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>
7.2 KiB
7.2 KiB
미뤄진/간소화된 구현 항목
Phase 2
PNG 디코더 자체 구현✅png.rs+deflate.rs구현 완료.JPG 디코더 자체 구현✅jpg.rsBaseline JPEG (Huffman/IDCT/MCU/YCbCr) 구현 완료.glTF 파서✅gltf.rs+json_parser.rsglTF 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 활용.