← 프로젝트 목록

ENGINE / ARCHIVE

DevMiniEngine

DirectX 12 기반 학습용 미니 엔진. 모듈 분리, ECS, 모델 로딩과 디버그 UI를 구현하고 참고용으로 보존한 프로젝트입니다.

C++20DirectX 12ECSImGui개발 종료

프로젝트 소개

엔진의 구조와 렌더링 흐름을 직접 이해하기 위해 만든 개인 학습 프로젝트입니다. Core·Math·Platform·Graphics·ECS·Framework로 역할을 나누고, ECS의 장면 데이터를 DX12 렌더러로 전달하는 구조를 구현했습니다.

구현한 내용

  • 렌더링: DirectX 12 파이프라인, Phong 조명과 노멀 매핑, 메시·재질·텍스처 리소스 관리.
  • ECS: 엔티티와 컴포넌트 관리, 부모·자식 Transform 계층, 카메라·조명·렌더 시스템 연결.
  • 모델 로딩: Assimp로 GLB 모델을 읽고 메시·재질·노드 계층을 엔진 리소스와 ECS로 변환.
  • 디버그 UI: ImGui 기반 ECS Inspector와 성능 패널로 실행 중 상태를 확인하고 값을 편집.

짧은 회고

모듈 분리로 코드를 체계화하고 실시간 편집 도구를 만드는 경험을 얻었습니다. 다만 외부 모델 처리와 도구가 늘면서 전체 흐름을 다시 이해하기 어려워졌고, 문서와 주석도 양보다 다시 읽고 활용할 수 있는지가 중요하다는 점을 느꼈습니다.

ECS를 구현했지만 실제 사용 사례에서 장점과 제약을 확인하는 단계까지 이어가지 못했습니다. 개별 시스템 구현에 집중하면서 엔진 전체를 사용하는 결과물과 기존 샘플의 실행 상태를 충분히 유지하지 못한 점이 아쉬움으로 남았습니다.

다음 프로젝트로 이어갈 점

다음 작업은 스스로 설명할 수 있는 작은 구조에서 시작하고, 공통 인터페이스와 데이터 규격을 명확히 하는 방향입니다. Unity에서 내보낸 데이터 활용, ECS·PBR이 함께 동작하는 데모, 샘플의 지속적인 실행 확인을 시도하려 합니다. 이는 회고에 기록한 방향이며 구현 완료 항목은 아닙니다.

보존과 실행

보존 실행 기준은 VS2026의 ModelViewer(Debug / x64)입니다. 에셋과 Assimp 바이너리는 별도로 준비해야 하며, 실행 기준 문서 작성 당시 빌드와 화면 동작을 재검증한 상태는 아닙니다.

관련 프로젝트와 소스 코드