practice repo for Vulkan game engine lecture and Vulkan tutorial
all the base codes and materials from
- Vulkan Game Engine lecture (Lec1~Lec27)
https://www.youtube.com/playlist?list=PL8327DO66nu9qYVKLDmdLW_84-yE4auCR
https://github.com/blurrypiano/littleVulkanEngine - Vulkan Tutorial (texture mapping ~ compute shader)
https://vulkan-tutorial.com/
https://github.com/Overv/VulkanTutorial
-
~Lec08
- covered:
- env setup
- window, glfw, glm, RAII
- pipeline, shader, glsl
- device, validatioin layer,
- pipeline stage configuration, pipeline layout, render pass
- frame buffer, v-sync, swap chain
- command buffer, recording
- vertex buffer, binding, attribute
- interpolation
- swap chain recreation, dynamic viewport and scissors

- covered:
-
Lec09
-
Lec10
-
Lec11
-
Lec12
-
covered:
- homogeneous coordinates
- Euler angle
- 3d rendering
-
intrinsic rotation, extrinsic rotation
4개의 basis와 변환. rotation mat들은 모두 similar.
$$ \begin{align} P_0 = S_{world_0}^{-1} \\ P_0: xyz \rightarrow x_0y_0z_0 \\ P_1: x_0y_0z_0 \rightarrow x_1y_1z_1 \\ P_2: x_1y_1z_1 \rightarrow x_2y_2z_2 \end{align} $$ intrinsic xyz 순서로 alpha, beta, gamma 회전을 한다는것은 다음 mat연산
$$ R = Z''(\gamma) P_2 Y'(\beta) P_1 X(\alpha) $$ $$ \begin{align} X: A_{x_{0} y_{0} z_{0}} \rightarrow A_{x_{0} y_{0} z_{0}} \\ Y' P_1: A_{x_{0} y_{0} z_{0}} \rightarrow A_{x_{1} y_{1} z_{1}} \\ Z'' P_2: A_{x_{1} y_{1} z_{1}} \rightarrow A_{x_{2} y_{2} z_{2}} \end{align} $$ Claim) : extrinsic으로 볼 수도 있다. (회전 축 순서는 반대방향)
$$ \begin{align} S_{world_2}Z''(\gamma) P_2 Y'(\beta) P_1 X(\alpha) S_{world_0}^{-1} = X^{*}(\alpha) Y^{*}(\beta) Z^{*}(\gamma) \\ where \; S_{world_2} = (P_0 P_1 P_2)^{-1} \; and \; S_{world_0}^{-1} = P_0 \\ X^{*}: A_{xyz} \rightarrow A_{xyz} \\ Y^{*}: A_{xyz} \rightarrow A_{xyz} \\ Z^{*}: A_{xyz} \rightarrow A_{xyz} \end{align} $$ Pf)
$$ \begin{align} Y^{*} = S_{world_1} Y' S_{world_1}^{-1} = (P_1 P_0)^{-1} Y'(P_1 P_0) \\ Z^{*} = (P_2 P_1 P_0)^{-1} Z''(P_2 P_1 P_0) \\ \Rightarrow X^{*} Y^{*} Z^{*} = S_{world_2} Z''P_2 Y' P_1 X P_0 = \\ P_0^{-1}(P_1^{-1} P_2^{-1} Z''P_2 Y' P_1 X ) P_0 \end{align} $$
-
-
Lec13
-
Lec14
- covered:
- cameara transformation
- Viewing transformation (model - camera - perspective - orthographic - viewport)
- covered:
-
Lec15
- covered:
- game loop and time
- camera controller
- covered:
-
Lec16
- covered:
- index buffer
- staging buffer
- covered:
-
Lec17
-
Lec18
-
Lec19
- covered:
- uniform buffer, alignment
- refactoring buffer abstraction, descriptor set intro
- refactoring frame info
- covered:
-
Lec20
- covered:
- Descriptors, descriptor set, descriptor set layout, descriptor pool
- update projection view model matrix to use uniform buffer.
- covered:
-
Lec21
-
Lec22
-
Lec23
- covered:
- build system refactoring with cmake
- covered:
-
Lec24
-
Lec25
-
Lec26
-
Lec27
-
Tutorial Texture mapping
-
Tutorial Depth buffering
-
Tutorial Loading models
-
Tutorial Generating mipmaps
-
Tutorial Multi-Sampling-Anti-Aliasing
-
Tutorial Compute Shader





















