Check out our Monthly Survey Page to see what our users are running.
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.
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.

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.

While you're here, please consider supporting GamingOnLinux on:

Patreon, Liberapay or PayPal Donation.

We have no adverts, no paywalls, no timed exclusive articles. Just good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register

Or login with...
Sign in with Steam Sign in with Twitter Sign in with Google
Social logins require cookies to stay logged in.