Feels good to be doing some low level Vulkan coding with Jai after a long break. Chill music, a distraction-free text editor and Vulkan documentation on the side. Hopefully soon I'll have a colorful triangle on the screen 
An inevitable step in any graphics engine development: rendering Sponza. Doesn't look particularly great yet without proper shadows or indirect lighting, but at least the direct lighting looks okay.
I think I'll look into shadow mapping next. It would be nice to use hardware ray tracing for shadows and reflections, but Vulkan/MoltenVK does not yet support it on macOS. Oh well, this is a learning project anyways, so it's good to practice different techniques.
Partial glTF loading and normal mapping done, with basic Blinn-Phong shading. I think I'll do physically based shading next. I've only ever implemented that from some tutorials, but this time I want to learn it properly, theory and all.
Basic texture loading and mipmapping done.
After cleaning up the code a little bit, I think I'll add actual 3d model loading so I can show something other than a hardcoded cube.
The plan is to eventually have physically based shading, global illumination, reflections, shadows and all sorts of other fancy features.
A basic cube done. Next up: textures.
Vulkan has changed a lot since its 1.0 release over 10 years ago. It used to be quite painful to use, but not so much anymore. Less boilerplate-heavy and way more flexible.