이번에 졸업작품 통과하고 내년 봄 졸업을 앞둔 겜공학생입니다.

3년전 전문대 컴퓨터과에서 고딩때부터 바랬던 4년제 겜공으로 편입하고 드디어 졸업을 앞두고 있네요

겜공졸작 빡세다 어쩐다 말이 많았던걸 알았기에 편입하고 죽기 살기로 덤볐습니다.

하지만 근본이 실업계고-전문대 출신 빡머갈이라 남들보다 이해력이 딸려서 재학생들보다 공부 효율이 구렸기에 더 힘들었던것 같습니다.


그런데 욕심은 또 있어서 유니티, 언리얼 같은 상용화 엔진으로 졸업작품을 하는건 싫어가지고 DirectX12 로 자체 프레임워크를 만들기 위해 지옥길을 맛봤네요

(교수님들도 상용화 엔진을 달갑게 보지 않는 이유도 있고....)

학원이라는 길도 있지만 시간적, 금전적 이유로 학교에서 가르쳐주는 DirectX12 과목 지식을 토대로 프레임워크를 만들었습니다.


졸업작품은 2인 팀이였고 반다이 남코에서 제작한 에이스컴뱃을 모티브로한 3D비행슈팅 게임을 기획했습니다.

(목표는 0.3에컴...현실은ㅠㅠ)


사용한 SDK 및 라이브러리는

Directx12, C++, STL, FMOD, Xinput(Xbox 컨트롤러 지원) 그리고 Visual Studio2019 정도 되겠군요

모델 데이터 수정할때는 3D맥스와 유니티를 통한 익스포터를 종종 사용했습니다.


주요 구현 내용으로는

1.싱글톤 기반 DierectX12프레임워크 제작

2.GPU인스턴싱을 활용한 대규모 구름생성

3.포스트 프로세싱을 사용한 블러효과(중력에 의한 의식상실)

4.렌더 투 텍스쳐 기법을 활용한 굴절 쉐이더 구현

5.절두체 컬링 및 거리기반 컬링 을 활용한 최적화

6.행동트리를 사용한 적 행동패턴 구현

7.Xinput을 사용한 게임 컨트롤러 지원


이것저것 더 있지만 지금당장 생각나는것들을 적어봤습니다.

기하쉐이더 그리고 그림자 쉐이더 및 멀티렌더 타겟 같은건 구현을 못했네요 ㅠㅠ

사실 다렉12의 핵심 기능인 테셀레이션을 못써본게 제일 아쉬웠습니다.

더 공부해서 나중에라도 도전해봐야겠어요


주절거리는건 이만하고 GIF와 유튜브 영상 올리겠습니다.


viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec86fa11d02831e11ed4e1ce518c3fae84bae862998e5b39cb03f834b1e33315b7b9f9c89f83773bc17934be9102cebfe66a016ea250ea0061

카메라 쉐이킹




viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec86fa11d02831e11ed4e1ce518c3fae84bae862998e5b39cb03f834b1e33315b7b9f9c89f83773bc17934be91059fe7e23e046ea150ea8de7

엔진열기-렌더 투 텍스쳐 기법을 활용한 굴절 쉐이더 구현




viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec86fa11d02831e11ed4e1ce518c3fae84bae862998e5b39cb03f834b1e33315b7b9f9c89f83773bc17934be91509ee8e36f503af250ea3374

구름 수증기 맺힘효과-렌더 투 텍스쳐 기법을 활용한 굴절 쉐이더 구현




viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec86fa11d02831e11ed4e1ce518c3fae84bae862998e5b39cb03f834b1e33315b7b9f9c89f83773bc17934be9104c9ece43e063ea450eaab6c

급선회시 G-LOC의 시각적 효과-포스트 프로세싱을 사용한 블러효과(중력에 의한 의식상실)




viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec86fa11d02831e11ed4e1ce518c3fae84bae862998e5b39cb03f834b1e33315b7b9f9c89f83773bc17934be91009fe6e639026bf550eaf95f

viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec86fa11d02831e11ed4e1ce518c3fae84bae862998e5b39cb03f834b1e33315b7b9f9c89f83773bc17934be910ccee7e36e573dac50eab8b2

viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec86fa11d02831e11ed4e1ce518c3fae84bae862998e5b39cb03f834b1e33315b7b9f9c89f83773bc17934be9100c3b8e03d533da350eadd8d

viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec86fa11d02831e11ed4e1ce518c3fae84bae862998e5b39cb03f834b1e33315b7b9f9c89f83773bc17934be9101c2bde86e066ca050ea0b08

전투장면




viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec86fa11d02831e11ed4e1ce518c3fae84bae862998e5b39cb03f834b1e33315b7b9f9c89f83773bc17934be9156cfefb33d526cf550ea639d

viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec86fa11d02831e11ed4e1ce518c3fae84bae862998e5b39cb03f834b1e33315b7b9f9c89f83773bc17934be9102c3e9b16f036fa450ea363c

플레어(미사일 기만)




viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec86fa11d02831e11ed4e1ce518c3fae84bae862998e5b39cb03f834b1e33315b7b9f9c89f83773bc17934be9100ccede86a576bf250ea6f55

적 구축함 함대공 미사일 발사







이제껏 해본 프로젝트중 제일 큰 규모였습니다.

기획포함 3학기를 갈아넣어 만들었지만 실력부족으로 자잘한 버그와 비효율적으로 짜여진 코드가 많아요

취업준비 하면서 코드 리펙토링을 해야겠죠



여러모로 부족한점이 많지만 3D기본지식과 그 기반이 되는 선형대수, 그래픽스 파이프라인 등을 이해하는데 큰 도움이 되었던 프로젝트였네요

감사합니다.