Skip to content

Latest commit

 

History

History
42 lines (33 loc) · 2.14 KB

README.md

File metadata and controls

42 lines (33 loc) · 2.14 KB

Vulkan Examples

Vulkan API learning repository.

Within this repository aditional libaries are used:

  • GLFW - window and input handling.
  • GLM - C++ mathematics library for graphics software.
  • tinyobjectloader - Loading models from *.obj files.
  • stb image - Loading images to be used as textures.

Vulkan_Tutorial

Project which follows "Vulkan Tutorial" by Alexander Overvoorde available on vulkan-tutorial website and github repository.

Main topics covered in tutorial:

  • Instance and physical device selection
  • Validation Layers
  • Logical device and queue families
  • Swap chains
  • Shader Modules
  • Fixed functions and render passes
  • Descriptor pool and sets
  • Command buffers
  • Image view and sampler
  • Depth buffering

ShadowMapping

Calculating shadows based on 'Vulkan_Tutorial' project and Mr. Sascha Willems "Vulkan-Example" repository available here.

Shadow creation is divided into two render passes:

  • First one- 'offscreen' render pass is used to calculate depth map from light's point of view (ortographic projection to simulate sunlight). Calculated depth map is stored into texture and used in second render pass.
  • Second one- 'scene' render pass uses depth texture to determine if specified fragment is placed within or not in shadow.

Logic of shadow mapping technique is well described in learningopengl.com website and opengl-tutorial.org

Camera movement:

  • W/A/S/D keys to move camera forward/left/backward/right.
  • Mouse to rotate camera around.

Prepared build: Visual Studio [Debug|Release] x86