webp-ify more

This commit is contained in:
lynxize 2025-04-25 09:55:31 -06:00
parent 94ff22870b
commit 266cea0f65
Signed by: lynxize
GPG key ID: 8615849B8532CD77
46 changed files with 18 additions and 18 deletions

View file

@ -20,7 +20,7 @@ I got as far as a pig in a spotlight before bad design decisions and my inexperi
*Maybe in retrospect trying to learn graphics programming and C++ at the same time was not the best idea*...
{{ image(src="/assets/6months/pig.png", alt="Minecraft pig model drawn in front of a space-themed skybox", caption="piiiiiiiggggg") }}
{{ image(src="/assets/6months/pig.webp", alt="Minecraft pig model drawn in front of a space-themed skybox", caption="piiiiiiiggggg") }}
Fast-forward to 8 or so months ago, and I finally thought up a game idea I thought was worth persuing.
Something I could stay motivated to work on in the longer-term, and hopefully stick with long enough to complete.
@ -41,7 +41,7 @@ When I started, [LWJGL](https://github.com/LWJGL/lwjgl3) didn't have bindings fo
The first triangle was fairly straightforward.
{{ image(src="/assets/6months/triangle.png", alt="A window displaying a rainbow triangle", caption="hello triangle") }}
{{ image(src="/assets/6months/triangle.webp", alt="A window displaying a rainbow triangle", caption="hello triangle") }}
And I guess it just spiraled out of control from there. Instead of making a game I've been making a game framework.
@ -92,9 +92,9 @@ I am *very* new to graphics programming, all things considered, and trying to im
I did get some cool screenshots before I realized my game wouldn't even benefit from this kind of lighting in the first place.
I probably could have figured it out if I'd spent a little more time, but I was getting bored.
{{ image(src="/assets/6months/idk.png", alt="Very broken scene", caption="yeah I don't even know lmao") }}
{{ image(src="/assets/6months/idk.webp", alt="Very broken scene", caption="yeah I don't even know lmao") }}
{{ image(src="/assets/6months/brokenrc.png", alt="Very broken scene", caption="significantly closer") }}
{{ image(src="/assets/6months/brokenrc.webp", alt="Very broken scene", caption="significantly closer") }}
{% note() %}
It wasn't helped by the fact that my test scene was almost entirely text and thin debug lines left over from messing with Box2D.
@ -110,7 +110,7 @@ If I could draw the pig with OpenGL, maybe I could do something similar with wha
It went... about as well as could be expected.
{{ image(src="/assets/6months/brokenfox.png", alt="A fox with extremely broken textures", caption="biblically accurate fox or something idk") }}
{{ image(src="/assets/6months/brokenfox.webp", alt="A fox with extremely broken textures", caption="biblically accurate fox or something idk") }}
I did eventually unbreak the fox and get a cubemap skybox mostly working.
@ -123,7 +123,7 @@ and some [neat tricks](https://www.saschawillems.de/blog/2016/08/13/vulkan-tutor
I initially tried plugging an opus decoder more or less directly into an `SDL_AudioStream`, but it turns out that was a bad idea.
So for now, I'm using [miniaudio](https://miniaud.io/).
{{ image(src="/assets/6months/audio.png", alt="debug ui for audio, with volume, pitch, and pan options", caption="little sound ui thing I made with Dear ImGui") }}
{{ image(src="/assets/6months/audio.webp", alt="debug ui for audio, with volume, pitch, and pan options", caption="little sound ui thing I made with Dear ImGui") }}
It supports basically everything I want to do anyway, like audio streaming, looping, pitch and pan modification, and more.
@ -144,7 +144,7 @@ I was almost tempted to try to use [Dear ImGui](https://github.com/ocornut/imgui
I figured drawing [9-slices](https://en.wikipedia.org/wiki/9-slice_scaling) would be a good place to start, using the sprite batch code I'd written earlier.
{{ image(src="/assets/6months/brokenui.png", alt="Extremely broken 9-slice drawing", caption="Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") }}
{{ image(src="/assets/6months/brokenui.webp", alt="Extremely broken 9-slice drawing", caption="Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") }}
I decided to try to decouple the layout and the functionality a little, keeping the logic in Kotlin and the layout in [HOCON](https://en.wikipedia.org/wiki/JSON#HOCON).