Saturday, 10 September 2022

Home Engine - Texture Mapping & Camera Update

I wish I had found more time this week to work on my home game engine, but I've been stuck doing DIY like things; including sorting out the installation of a new gas boiler after going through every possible green energy alternative and finding none for less than £15,000.....

So, what did I get done in code land?  Well, I added texture mapping to my home engine, this was a major step, I also sacked off the blender exporter which I wrote in Python to expose the blender meshes and loops into my own format.  I've simply reworked that hand written format to be less verbose and simply be simple.

I've improved the camera controls added previously, but still have things I want to try there, but for the feel of the game I have in mind for my first pass "project" in the engine this will suffice.

Ray Casting is next on my list, and to that end I started to write my own little Physics solution providers, the first thing added was simply to collide the camera point with the ground plane and bounce it back up and point it slightly skywards again; this both stopped the camera going out of bounds, but also hides the near clipping plane cutting off the ground as the camera gets too close to the ground geometry.

Ground geometry is perhaps one of the higher priority things I want, a bit of diversity in what I'm seeing, but also a heightmap and collision solution against that for the camera.

I also plan to put the Tank & Turret problem solution I have back in, it just needs a clean pair of new models.

And that's the big word for the next couple of hours I find spare... CLEAN UP... I have a lot of cruft in the code, from hard coded models in arrays, to unused vertex descriptors to simply some areas where I've not followed my own coding standards (I found two of these very frustrating in my Vulkan API to transfer images from staging buffers to actual images & views on the device earlier).

I'm not talking about a full pass through the whole vulkan demo, more just the demo I have.

Ultimately I will need to stop writing this demo and start to back port all the code into a Vulkan Renderer Implementation proper (like the DirectX11 one I have), but that's going to take a little more head scratching.


My Physics solver is very rudimentary too, points within boxes, checking which side of a plane they're on or being parallel to.  I plan to add rays and spheres soon, then boxes of course, and I'll have a very basic rigid body and intersection test system; I'm sure the depth buffer will come into this, but for now I'm keeping it all on the CPU.

No comments:

Post a Comment