Graphic System using Vulkan 1

The final goal for the graphic system is this below

1. Replace the graphics system to my original module using Vulkan API from the professor's one 

2. Improve the graphic quality to the modern 3d game level (something like 5 years ago?).

Achieving the final goal at once is a bit ambitious with my current skill. So I set an intermediate goal. Firstly, I have decided to understand the basic concept of graphics API and pipeline as my first goal. 

1. Understand Vulkan API and graphic pipeline and everything related to those 

2. Display 3D graphic image on display.

Since I just knew few things about graphics and Vulkan, I started to learn it with the resource on the internet. I took the reference from this tutorial 

https://vulkan-tutorial.com/Introduction 

and go throw the instructions to be able to show a 3D model on the window.

It took me literally 2 whole weeks to transcribe the source code from tutorial to the game engine.  Still, I don't understand what the heck the whole setups and initialization are for. I have summarize the procedures for rendering the 3D model below, trying to organize my thought for low level graphics API and it's concept

Create Logical Device

Create Surface

Create Vulkan Instance

Pick Physical Device

Create Present Queue

Create Graphic Queue

Create Render Pass

Create Swap Chain

Create Image Views

These are the web sites I used for resources for learning Vulkan and graphics API

2016-vulkan-devu-seoul :

https://www.khronos.org/assets/uploads/developers/library/2016-vulkan-devu-seoul/1-Vulkan-Tutorial_English.pdf

FASTER THAN LIFE

https://www.fasterthan.life/blog/2017/7/11/i-am-graphics-and-so-can-you-part-1