Building on past projects, my aim here is to create an application for rendering to be used in a small game engine at some point in the future.
- Deferred rendering
- shadow mapping (point light)
- skybox
- textured model loading
- physically based shading (cook-torrance brdf with a selection of distribution functions)
- sort out command buffers
- sort out render pass, make use of subpasses and subpass dependencies
- sort out attachments
- fix rotations
- improve shadows (shadow cascades, omni-directional and directional light sources)
- post processing of final image (High dynamic range lighting and bloom)
- basic material system (revise descriptor sets and pipelines)
- Screen space ambient occlusion
This is a long term project (like a lot of my projects). When I finish an important milestone on my other projects, I will return to this one. Conceptually, these features are not difficult to understand but adapting them to Vulkan adds some overhead to development time.
Developing on windows visual studio 2019, C++ 17.
- ImGui
- GLM
- tinygltf and tinyobj
- stbimage
lear opengl and opengl tutorials Understanding conceprtually in OpenGL helps. Vulkan example, excellent examples of important graphics techniques in Vulkan Vulkan tutorial.