Vulkan Renderer Progress: Lights

I started working on a Vulkan renderer for Virtual Paradise back in 2016. Halfway through 2017 it could render most static models without any materials or lighting. Until recently I didn’t really put a lot of effort into actually getting it to work. Over the last few weeks I’ve been working on it some more and have actually made some progress! ?

Materials, world light and positional lights are working now:

Lighting working with Vulkan renderer

And this is how it is supposed to look:

The same scene using the Direct3D 11 renderer

So, there is still some work to do! A few things that are missing: textures, spot lights, sky rendering, anti-aliasing, normal mapping, particle systems, 2D elements like avatar name tags, shader based skeletal animation, selection bounding boxes, and probably more.

I’m still getting used to how things work compared to APIs like OpenGL or Direct3D. It’s definitely a lot more difficult to get started (so I took two years to do so ?, although I rarely even looked at it during this time). To take better advantage of this API and use multiple threads for rendering, the main (non-Vulkan-specific) code will also need to be changed, but I think I will focus on functionality first.