shakedown.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A community for live music fans with roots in the jam scene. Shakedown Social is run by a team of volunteers (led by @clifff and @sethadam1) and funded by donations.

Administered by:

Server stats:

250
active users

#opengl

0 posts0 participants0 posts today
Replied in thread

@grumpygamer generally like having multiple options to be able to check and help with graphics drivers bugs on Linux. Was also surprised that #OpenGL was seemingly faster than #Vulkan with @play0ad on my Lenovo T14s AMD gen3 laptop (only checked briefly though). I'd mostly be concerned about cross platform compatibility, but I guess Vulkan has you covered there. And it's also a little less of a concern for me since #Wine / #Proton and #DXVK have made such a tremendous progress in the last years.

Went to go remove any #microsoft games from my #Steam wishlist, only to realize I don't have a single one on there. No #activison, no #bethesda, no #blizzard. Turns out I haven't really been microsoft's main target for a while. I don't use #Windows. Never used #Bing. Don't write programs with #DirectX, I use Vulkan and #OpenGL and #SDL. Don't use #OneDrive. Never used #Skype. Don't use an #Xbox #controller on my PC, I use an 8bitdo controller. Don't use #Azure. I am disconnected from them.

Testing the Gosper curve in my variable iteration halftoning setup. So far I've only used the Hilbert curve this way, and things get a bit coarser with the Gosper, so it was harder to find images that make nice results. So here we are with the old Venus again.

The number of points multiplies by 4 for Hilbert and 7 for Gosper on each step, so the latter has to get by with fewer iterations for a sensible resolution. Here we have 6 iterations for 6 grey levels.

i had to create my own gpu api abstraction library for my needs in my gui tookit and npainter:

- focused in compatibility supporting at least opengl 3.3
- quite easy and small api design without implicit global state mess, verbosity or very hard niche features
- wrappers for Haxe (through my gui toolkit)

if this become chaotic for me my fail-safe is just only do opengl backend for now, i want wrap something good to Haxe instead raw opengl api 😅

The previous demo made me dig deeper into dithering algorithms. It's something I should have done years ago, as I've been using simple random dithering now and then, and I hadn't even thought of gamma correction. One algorithm in particular caught my eye: Riemersma dithering, which uses the Hilbert curve. Compared to the usual matrices for error diffusion, the curve approach seemed easier to implement in some ways, as it has fewer edge issues.

More interestingly, it struck a chord with my earlier experiments with space-filling curves in image processing. So it was a kind of familiar territory, but it also seemed esoteric enough that I could imagine making some new discoveries. For example, play with other plane-filling curves besides the Hilbert.

The first image uses the boustrophedon curve, which makes the vertical wave patterns I recall from a number of non-dithering demos. The second curve is what I call the diagstrophedon, a diagonal zig-zag starting from the top left corner, and I think its wavy artefacts make a nice match for Venus's hair.

Then in image 3 we have Hilbert, which doesn't seem to make any particular artefacts, and I guess that's a good thing for dithering. Finally 4 uses the Peano curve, which makes some fun wiggles in light areas.

Another visual refinement to a recent demo: adding seams to the optimized tiling scheme. While it breaks the mosaic illusion to some extent, I think it makes the tile sizing idea much clearer. As before, there's a uniform variant with the same number of tiles for comparison.

Source photo: Mary of Egypt by José de Ribera, in public domain.

The recent stipplings and partitionings reminded me of this demo from about 2 years ago. In short, it's a Hilbert curve where the iteration level varies by the colour value. I wanted to make some small changes, but I ended up rewriting it completely. The shader approach seemed needlessly heavy and redundant for something that works more naturally on a CPU. But mostly it was just a fun exercise in looking at the same problem from a different angle.

The first picture shows the original idea. With the new idea, I wanted to get rid of the slanted lines; the result doesn't feel any better to me, but I guess it's interesting in its own way.