About the Book
When people do multi-platform graphics programming on macOS they usually use Vulkan API.
The best resources on learning Vulkan include:
- The unofficial Sascha Willems tutorial
- Alexander Overrode unofficial tutorial
- Khronos documentation
These are absolutely amazing sources of information and I still recommend them to anyone.
Writing a rendering framework is the next step and just like going through the Vulkan API details - might just not be so obvious to everyone. Also, considering small tweaks one has to deal with when starting implementation on macOS.
This brings me to my goal I put myself in front of:
I want to provide an introduction and some examples of steps one needs to take to write a Vulkan rendering framework on macOS in 2023, so that people familiar or unfamiliar with Vulkan or being pros or beginners in C++ could take advantage from.
I decided to put together some information, which otherwise you would need to find by yourself including “How to”s of:
- Installing necessary software on macOS.
- Preparing the Environment (Build systems, IDEs, and Window creation frameworks, SDK).
- Making a simple game that will rely entirely on a single command buffer. To effectively use the CPU offloading features of this API.
- Some sneak peak of how to build with CMake all official Apple Metal examples (released during WWDC 2022) so you could have a base to learn Metal in future.
Why I decided to write the book ? What value does it bring ?
- Saves time (configuration, Vulkan specific things in regard to macOS)
- Small little things that make it possible to start more
- Share my approach to writing a Vulkan framework
Did I write all of this code by myself ?
- I used helper functions from Sascha Willems examples and many other official materials from Khronos are MIT licensed code regarding Vulkan.
- I used the official Apple Metal examples released during WWDC 2022.
- I used my own rendering framework written on top of Vulkan API.
Is this book for me ?
Targets of this book are:
- Beginners of graphics development in Vulkan.
- People moving from Windows and Linux to macOS with their Vulkan projects.
- People who already went through the unofficial tutorials and want to write actual application.
Advanced users may skip most of the book and go the code directly. Beginners are advices to go through the book first.
About the Author
I am a C++ graphics programmer from planet Earth with 8 Years of experience in the area.
My projects include:
- OpenGL trainings
- OpenGL presentations
- Open Source 3D graphics renderers (Fillwave, and RearWing)
- Various internal and public presentations on C++/Graphics related topics on conferences like WroCpp or QT World Summit
- Vulkan engine development for commercial projects
- Vulkan demo project in the Automotive area (link)