Vulkan Learning RoadMap
Vulkan Learning RoadMap
Fullfill list
- https://vulkan-tutorial.com/
- My Vulkan Introduction
- https://github.com/SaschaWillems/Vulkan#Examples
- Basic
- First triangle
- Pipelines
- Descriptor sets
- Dynamic uniform buffers
- Push constants
- Specialization constants
- Texture mapping
- Texture arrays
- Cube map textures
- Cube map arrays
- 3D texture
- Input attachments
- Sub passes
- Offscreen rendering
- CPU particle system
- Stencil buffer
- Vertex attributes
- glTF
- glTF model loading and rendering
- glTF vertex skinning
- glTF scene rendering
- Advanced
- Multi sampling
- High dynamic range
- Shadow mapping
- Cascaded shadow mapping
- Omnidirectional shadow mapping
- Run-time mip-map generation
- Capturing screenshots
- Order Independent Transparency
- Performance
- Multi threaded command buffer generation
- Instancing
- Indirect drawing
- Occlusion queries
- Pipeline statistics
- Physically Based Rendering
- PBR basics
- PBR image based lighting
- Textured PBR with IBL
- Deferred
- Deferred shading basics
- Deferred multi sampling
- Deferred shading shadow mapping
- Screen space ambient occlusion
- Compute Shader
- Geometry Shader
- Tessellation Shader
- Hardware accelerated ray tracing
- Headless
- User Interface
- Text rendering
- Distance field fonts
- ImGui overlay
- Basic
RoadMap
Learning Vulkan, a low-level graphics and compute API, can be challenging but rewarding. Vulkan offers high performance and control over GPU resources, making it a popular choice for graphics and parallel computing applications. Here’s a step-by-step guide on how to learn Vulkan:
Prerequisites:Before diving into Vulkan, ensure you have a solid understanding of computer graphics concepts, linear algebra, and basic programming skills (C++ is recommended).Official Documentation:Start by reading the official Vulkan documentation provided by the Khronos Group. The documentation includes specifications, guides, tutorials, and code examples that cover all aspects of Vulkan programming.Programming Environment Setup:Set up your development environment with the necessary tools and libraries. You’ll need a compatible GPU, a Vulkan-capable driver, and an SDK. The Vulkan SDK provides headers, libraries, and tools for development.Tutorials and Books:There are several online tutorials and books available to help you learn Vulkan. Some recommended resources include:Vulkan Tutorial: A comprehensive tutorial that covers Vulkan fundamentals with code examples.- 🤩LunarG: Introduction to Vulkan
- Vulkan Guide
- “Introduction to Computer Graphics and the Vulkan API” by Kenwright and Shreiner: A book that offers an in-depth introduction to Vulkan.
- “Vulkan Programming Guide: The Official Guide to Learning Vulkan” by Munshi, et al.: A comprehensive guide for learning Vulkan programming.
Sample Code and Demos: Study existing Vulkan sample code and demos to understand how different features are implemented. Many SDKs and tutorials provide sample projects that you can explore.
Practice Projects: Start with small projects to implement basic graphics rendering using Vulkan. Gradually increase the complexity of your projects as you become more comfortable with the API.
API Reference: Familiarize yourself with the Vulkan API reference to understand available functions, structures, and enumerations. This knowledge will be crucial for creating your own applications.
Debugging and Profiling: Learn how to use debugging and profiling tools provided by the SDK to identify and fix issues in your Vulkan applications.
Online Communities and Forums: Join online communities and forums dedicated to Vulkan development. Engage with other developers, ask questions, and share your experiences. Some platforms include:
Continuous Learning: Keep up with the latest developments in Vulkan and graphics programming. As technology evolves, new features and extensions may be introduced.
Remember that learning Vulkan takes time and practice. Be patient and persistent, and don’t hesitate to ask for help when you encounter challenges. Building a strong foundation in Vulkan will open up exciting opportunities in graphics and parallel computing.