Karl
banner
hexaquo.at
Karl
@hexaquo.at
1.2K followers 920 following 170 posts
Researcher, teacher and activist somewhere at the intersection of landscape perception, graphics programming, open source, and climate change. Working on VR landscape visualization with Godot. Maintaining Geodot: https://github.com/boku-ilen/geodot-plugin
Posts Media Videos Starter Packs
🔜 #GodotFest

Want to see these slides (and many more) live? Then join my presentation on November 11th at GodotFest in Munich :)

#godot #gamedev
Reposted by Karl
Graphics Programming weekly - Issue 413 - October 19th, 2025 www.jendrikillner.com/post/graphic...
Reposted by Karl
That was fascinating, thanks for sharing! I felt really unsure, but got 72% on the 160kbps lame mp3 test. Seems like the very subtle perceived difference (where I wasn't sure if I was imagining it or not) was right more often than not.
Karl @hexaquo.at · 10d
now I'm curious too, did you figure it out?
Reposted by Karl
Trying out 2 different approaches to leaf rendering on trees.

The first is a custom mesh, where each quad of the mesh is extended along the normals.

The second is are multimeshes of quads, where the normal is based on the vertex position relative to the center of the multimesh.

#GodotEngine
Reposted by Karl
Graphics Programming weekly - Issue 411 - October 5th, 2025 www.jendrikillner.com/post/graphic...
Reposted by Karl
So-called #genAI means the abolition of the future through the proliferation of endless streams of stochastically rendered generic pasts. Having turned large parts of the cultural archive into training data, it now traps us in a foreverized pastness, a 24/7 nostalgia for a past that never existed
have just come across a YouTube account that has been using Sora to upload reels of fake, AI-generated “90s sitcoms” every few hours
Karl @hexaquo.at · 17d
Ahh right, of course. I knew I was missing something 😅 that's tricky!
Karl @hexaquo.at · 17d
I see, and if I understand correctly, what you'd want is for this "next pass" to only render on top of back-faces (as in the first picture), but not on top of front-faces (second picture), right? Could you use something like sign(dot(camera_direction, normal)) to differentiate between that?
Karl @hexaquo.at · 17d
Oh interesting! I might be missing something but could you check the dot product between camera direction and mesh normal and use the inverted depth test only if that is negative, i.e. if the thing that's currently being rendered is a back-face and not a front-face?
Karl @hexaquo.at · 17d
Using a sphere made it a bit easier because I could pass the radius for figuring out when the camera has reached the other side. Maybe that could at least be generalized to symmetric meshes by using the model-space vertex length or something? (But maybe using an approximate radius is good enough)
Karl @hexaquo.at · 17d
The idea is: make the vertices stick to the camera rather than passing behind it, and use alpha to make these vertices fade out as the camera is moving through the mesh.
Karl @hexaquo.at · 17d
This got me wondering what would be the easiest way to make meshes appear like a volume when moving through them (using only shaders). This is what I came up with:
Reposted by Karl
In light of EA's upcoming change of ownership... here's your annual reminder that Will Wright's original GDC 2005 demo of Spore was one of the most incredible game demos every presented, before the game was utterly and totally ruined by EA's meddling.

www.youtube.com/watch?v=ofA6...
Will Wright GDC 2005 Spore (The Future of Content) Remastered
YouTube video by Zeusmonomon
www.youtube.com
Reposted by Karl
This is not only introducing a new approach to OIT, but it's a comprehensive overview of various OIT techniques and a history of transparency in COD.

One thing that seems to be missing is CPU-side depth sorted transparency, which I implemented in SHG's COD branch and IIRC Treyarch had also
#SIGGRAPH2025 Advances in Real-Time Rendering in Games course talks slides posted: "Adaptive Voxel-Based Order-Independent Transparency" shipping in the upcoming Call of Duty: Black Ops 7 by Michal Drobot from Activision Central Tech is now online: advances.realtimerendering.com/s2025/index....
Karl @hexaquo.at · 17d
It's a bit unintuitive but the light shader is primarily used for controlling how shadows work, e.g. for imlementing toon shading. I wrote a tutorial on them here: hexaquo.at/pages/unders...

If you just want your object to glow, what you want is probably the EMISSION in the fragment shader.
Karl @hexaquo.at · 19d
Really cool! Good idea to combine it with the ProtonScatter addon. Thanks for the shout-out :)
Reposted by Karl
It sure is windy here 🍃

Rendering is based on this great tutorial (hexaquo.at/pages/grass-...) by @hexaquo.at

Placement is done with ProtonScatter (github.com/HungryProton...) by @hungryproton.bsky.social

#GodotEngine #IndieDev #shader #grass #rendering
Reposted by Karl
Unused pre-rendered backgrounds from The Legend Of Zelda: Ocarina Of Time (1998)
Karl @hexaquo.at · Sep 18
Oh good idea! Shader debugging is pretty arcane haha, I'll try to collect and write up some of the tricks I've come up with. And it'd be a good opportunity to dive into "proper" debugging tools like RenderDoc too. Thanks for the suggestion :)
Reposted by Karl
Graphics Programming weekly - Issue 408 - September 14th, 2025 www.jendrikillner.com/post/graphic...