Simple 3D game engine using Vulkan

Short Introduction

Vulkan이라는 3D 그래픽 밎 GPU API를 활용해 간단한 게임 엔진을 만들고자 한다.

Content

  • 프로젝트 진행 동기

Vulkan이라는 low-level 그래픽 라이브러리를 알게 되었고 사용하는 방법을 알고 싶었고, 그냥 강의를 따라하며 간단한 모델 로딩하는 프로그램들 만들기보다는 좀 더 사용성이 있는 프로그램을 만들고 싶었다.

  • 프로젝트의 진행 과정

3D 공간에 삼각형들을 그리고 이에 필요한 Vulkan 셋업, 창 만들기, 그래픽 파이프라인 만들기, 스왑체인과 부착 이미지들을 만들기 등을 성공했다. 또 VK_KHR_DYNAMIC_RENDERING Extention을 이용하기를 성공했다. 이를 실제 3D 모델을 띄울수 있도록 배치하려면 Vertex Buffer이라는 것을 셋업해야 하고, 모델의 Texture, 위치, 방향 등을 정할 수 있으려면 Descriptor Sets라는 것을 메모리에 할당하고 사용해야 된다. 이것들의 구현은 아직 진행 중이다

  • 프로젝트의 결과

원하는 개수의 삼각형들을 스크린의 지정된 위치에 그리고, 색을 정할 수 있으며, 그래픽 파이프라인에서 사용할 Shader도 지정할 수 있다.

Github 링크:
GitHub – programmer3481/VroomEngine: simple 3d engine. work in progress.

*ReLU function: f(x)=0 for x<0, f(x)=x for x>0

  • 프로젝트 진행 소감

모델 로딩까지 완성하고 싶었지만 못해서 조금 아쉽다. 다음번에는 못한것들을 완성하여 엔진의 렌더링/그래픽 부분을 완성하고 엔진 자체 디자인을 본격적으로 시작하고 싶다.

Attachments


About

본 글은 2022년도 1학기에 22 조건우 연구회원이 진행한 프로젝트입니다.

Leave a Reply

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다