September 2020

This is when things started getting exciting. Actually...no. Progressing from a triangle to rendering a 3D model was exciting. But progressing to an actual scene I could move around in was mind blowing!

First 3D scene in Nim.

This scene -- which was based on Diligent Engine's Shadow sample -- proved that I could create interactive 3D scenes using Diligent Engine and my cinterop library.

At this point the code to load GLTF models had taken shape, as that was required to load the entire scene in the first place. Diligent Engine already came with an asset loader implementation for GLTF files, so all that had to be done was to wrap the existing C++ code into Nim.

It was also at this point that I decided to stick with Vulkan as my primary rendering target due to its ubiquity. It took a degree of fiddling since the original Shadow sample used DirectX, but thankfully the API abstracted away the differences between rendering targets well enough to let me figure out the equivalent Vulkan calls quickly.

Now that I had a scene I could see, the next frontier was a scene that I could touch. Or one that my avatar could touch, anyway.

Comments

Back to top