Support us on Patreon to keep GamingOnLinux alive. This ensures we have no timed articles and no paywalls. Just good, fresh content! Alternatively, you can donate through PayPal, Flattr, Liberapay or Buy us a Coffee. You can also buy games using our partner links for GOG and Humble Store.
Useless Personal Projects
mirv 27 May

So I thought that in case it wasn't entirely useless to others, I'd post a couple of links to hacked together little programs that have helped me somewhat. They're from open source projects and tutorials around the 'net, which saved me having to reinvent a few wheels.

First is because I wanted to generate UV maps from gltf mesh data. The UV layout, normal map (corresponding to UV layout), and height data (again as a UV layout). Main aim was actually texture blending for terrain with non-grid UV layouts (avoiding stretched textures on slopes), and so I needed normal and height data in the UV layout. This is possible using blender of course, but I was having some trouble there and decided that it would just be quicker to use Vulkan for off-screen rendering. Plus, the absurd amount of raw processing that a GPU can do makes it so much faster than firing up blender.
https://gitlab.com/mirv/uvgen
Mostly based off Sascha Willems' Vulkan tutorials, and then butchered to fit my needs.

Second is because I wanted to more than anything else. A while back I wanted to generate BC7 compressed images for use in a Vulkan project, and there really wasn't much around that was a) command line and scriptable, b) available for GNU/Linux, and c) wasn't some shady license. Fortunately Rich Geldreich wrote bc7enc16, which is really fast and does everything I needed. Purely for the sake of "why not", I decided to spend a day using the core of that (the encoding only) and run it multi-threaded with some C++'isms. And generate mipmap levels while I'm at it, though I haven't actually checked that they're valid (working on that with a separate side project) so there might be more than a few mistakes. Experimental ktx2 output, and again I'm not sure I have that right as it's still a new (and not yet fully official) format.
https://gitlab.com/mirv/bc7enc16_plusplus

Not professional level code. Hacked together. MIT, because I used MIT licensed code to base things on. C++20 support needed, because I want to learn more of that and need something to practice on.

You need to Register and Login to comment, submit articles and more.


Or login with...