Sign in

Karl

@hexaquo.at
1.4K followers 970 following 213 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: github.com/boku-ilen/geodot-plugin

PostsRepliesMedia
Reposted by Karl
Adriaan @adriaan.games · 16/09/2026
We optimized draw calls by 99% (lol) in Hidden Folks 2 by writing some tools to find all textures used in a level, generate a level-specific atlas, and replace individual texture references with atlas textures. Thread below 🧵👇🏼 #godotengine
Two side-by-side screenshots showing before and after we applied a texture atlas optimization to our game Hidden Folks two, the before showing 13318 draw calls and the after showing 113 draw calls
1351678
Reposted by Karl
Ryan Moulton @moultano.bsky.social · 19/06/2026
I spent the last month obsessed with finding colors that can't be displayed on a conventional screen. This is what I found. moultano.wordpress.com/2026/06/19/w...
moultano.wordpress.com
Where to Find the Colors Your Screen Can’t Show You
An atlas of the vibrance of the real world
471129379
Reposted by Karl
Antonio Caggiano @antoniocaggiano.eu · 12/06/2026
For anyone who couldn't make it to GodotCon, the recording of my talk "Integrating Vulkan Ray Tracing in Godot" is now up on YouTube! #Godot #Vulkan #RayTracing
youtube.com
Integrating Vulkan Ray Tracing in Godot – Antonio Caggiano – GodotCon 2026
YouTube video by Godot Engine
4518
Reposted by Karl
nicebyte @nicebyte.bsky.social · 12/04/2026
INTRODUCTION TO SPHERICAL HARMONICS FOR GRAPHICS PROGRAMMERS finally done. gpfault.net/posts/sph.html
gpfault.net
Introduction to Spherical Harmonics for Graphics Programmers
1027886
Karl @hexaquo.at · 12/04/2026
Did you know you can set up a scene and render it to a texture without any nodes in #Godot, by directly using the RenderingServer? We automatically generate billboard sprites for meshes this way. There's not much info about the RenderingServer online, so I wrote about it: hexaquo.at/pages/using-...
a 3D tree asset on the left, with an arrow pointing to spritesheets on the right. The spritesheets contain 2 albedo sprites (front and side) and 2 normal sprites (also front and side).
324343
Reposted by Karl
Victoria Rose Richards @aerialembroidery.bsky.social · 09/04/2026
'A simple (perfect) life' - my spring landscape is finally finished! An apple orchard in bloom, old railway, sheep with their lambs and an allotment being prepared for growing :) Zoom in to see all the other tiny details too... I think this might be my favourite aerial embroidery I've ever done!
An embroidery hoop containing a sewn aerial view landscape. It depicts an apple orchard in bloom in the centre, allotments to the left and sheep in their field at the bottom. Train tracks go past the top of the orchard and allotment.Sewn train tracks past an apple orchard (to the left).An angled view of a sewn vegetable allotment surrounded by rough land, trees and with train tracks to the left.An angled view of embroidered bushes and paths going through them leading to an orchard, allotment and fields.
15061161812
Karl @hexaquo.at · 24/03/2026
Implemented a variable-density Poisson disk sampler as a C++ GDExtension for #Godot: github.com/boku-ilen/go... It generates random points with a variable density, based on e.g. an image. should be very useful for scattering vegetation. based on this article: www.vertexfragment.com/ramblings/va...
the Godot icon, but it is depicted via randomly placed white dots with variable density. a higher density of dots causes the image to look brighter there, thus making the general contrast of the Godot robot head visible.
3646
Reposted by Karl
goosegardenstd.bsky.social @goosegardenstd.bsky.social · 14/03/2026
I just open-sourced a real-time datamosh CompositorEffect for Godot 4.4+ using motion vectors and temporal accumulation. Demo scene and presets included. github.com/goosegarden/... #Godot #gamedev
011026
Reposted by Karl
Roland Meyer @bildoperationen.bsky.social · 03/03/2026
C64 Screenshot: We killed the future and turned the past into training data
0369
Karl @hexaquo.at · 19/02/2026
Orchard #godot #gamedev
Screenshot of a 3D landscape in Godot. The camera stands in the middle of a row of approximately 2m tall fruit apple trees; the rows extend into the far distance, and the sun is low, making them cast long shadows.Screenshot of a 3D landscape in Godot. The camera looks at the sun, with layers of backlit apple trees in front of it.Screenshot of a 3D landscape in Godot. Apple trees again, with a higher sun, but more clouds.
4494
Reposted by Karl
Jendrik Illner @jendrikillner.bsky.social · 15/01/2026
Graphics Programming weekly - Issue 423 - January 11th, 2026 www.jendrikillner.com/post/graphic...
07423
Reposted by Karl
Lionel Lemarié @hikey.org · 14/01/2026
Fractal mitosis 3. #metalrt #rendering
2212
Karl @hexaquo.at · 13/01/2026
#godot #gamedev
Screenshot of a landscape rendered in Godot. View into a hilly landscape from a field track next to a sunflower field, with a small tree in the middle. The sun is fairly low.View up into the sky with a branch in the foreground and another tree in the distance. The sun is visible and creates some slight lens flares.View into the distance onto an expansive, slightly hilly landscape, with different agricultural fields. A few birds are flying in the distance.View over a field onto a village. The sun is low, creating a golden light.
2404
Karl @hexaquo.at · 08/01/2026
#godot #gamedev
3555
Karl @hexaquo.at · 29/12/2025
Lens Flare update: exposed all configurable parameters now. There's probably still a lot of potential for performance optimization, but I'd say it's somewhat usable :) You can check it out here, should work in any project (though requires some HDR care): github.com/kb173/godot-... #Godot #gamedev
1162
Reposted by Karl
LaurieWired @lauriewired.bsky.social · 23/12/2025
Gaussian splats are quite the rage lately (for good reason). Yet the technique is actually quite old!
 35 years ago, Lee Westover created the worlds first splat with the “UNC Head” dataset. A high-res CT scan...much too detailed for computers at the time.
15810
Reposted by Karl
Quest 64 Official @quest64official.bsky.social · 25/12/2025
4444401645
Karl @hexaquo.at · 23/12/2025
If you want your #Godot game to look like Battlefield 3, I got you
Screenshot of a Godot scene with a blue sky and the sun visible through a large window in a concrete structure. The sun (and a reflection of the sun on the concrete) have a strong glare with 6 light streaks going outwards. There is also a lens flare effect with chromatic aberration, and the bloom uses a lens dirt texture to create large circular patterns of higher brightness (like dust on a lens).
0211
Karl @hexaquo.at · 18/12/2025
More work on procedural lens flares in #Godot. If you want to have a look at the (still very messy!) code: github.com/kb173/godot-... Outline of how it works: 1. Clip bright spots from the rendered image 2. Warp these spots to create ghosts and a halo 3. Blur 4. Overlay based on a dirt texture
5306
Reposted by Karl
Sebastian Aaltonen @sebaaltonen.bsky.social · 16/12/2025
My "No Graphics API" blog post is live! Please repost :) www.sebastianaaltonen.com/blog/no-grap... I spend 1.5 years doing this. Full rewrite last summer and another partial rewrite last month. As Hemingway said: "First draft of everything is always shit".
sebastianaaltonen.com
No Graphics API — Sebastian Aaltonen
Graphics APIs and shader languages have significantly increased in complexity over the past decade. It’s time to start discussing how to strip down the abstractions to simplify development, improve pe...
19475194
Karl @hexaquo.at · 16/12/2025
Finally learning CompositorEffects #Godot Lens flare based on this blog: john-chapman-graphics.blogspot.com/2013/02/pseu...
091
Reposted by Karl
Jendrik Illner @jendrikillner.bsky.social · 08/12/2025
Graphics Programming weekly - Issue 419 - December 7th, 2025 www.jendrikillner.com/post/graphic...
04819
Reposted by Karl
Cécile Muller @wildpeaks.fr · 03/12/2025
Good idea using gaussians for tiled floor vegetation: yunfan.zone/gswt_webpage/ #3dgs #gamedev #rendering
111934
Karl @hexaquo.at · 26/11/2025
I often talk about bent normals for billboards, and I keep having to mention the "if (!FRONT_FACING) NORMAL = -NORMAL" workaround for correct backface lighting. I realized I could fix that myself, so I opened a PR for an intuitive material option and render_mode: github.com/godotengine/... #Godot
Left: a plane and a sphere with billboards scattered on it. A text below says "Default", and some billboards are noticeably darker than the others.
Right: the same plane and sphere with billboards, but with smooth lighting without the dark billboards. The text below says "Keep Backface Normals".Schematic drawing. Left, titled "Original normals, matching geometry": a plane with an arrow pointing orthogonally outwards to the right, saying "original normal", and an arrow pointing into the opposite direction, saying "default behavior: flipped normal". Right, titled "Custom normals, do not match geometry": a plane with an arrow pointing straight up, parallel to the plane, saying "original normal", and the same arrow again, saying "intended backface normal". Another arrow points straight down, saying "default behavior: flipped normal".
0150
Reposted by Karl
Andrew Willmott @andrewwillmott.bsky.social · 18/11/2025
I don't understand how they could get (?:(?:\"|'|\]|\}|\\|\d|(?:nan|infinity|true|false|null|undefined|symbol|math)|\`|\-|\+)+[)]*;?((?:\s|-|~|!|{}|\|\||\+)*.*(?:.*=.*))) so wrong
171
Karl @hexaquo.at · 13/11/2025
On my way home from #GodotFest. Thanks so much to everyone for this incredible event! Hope to see you all again soon :) My presentation on foliage rendering in #Godot is already up on YouTube: www.youtube.com/watch?v=U2nB... And I also shared my slides here: slides.com/hexaquo/plan...
youtube.com
Karl Bittner: Plants, Polygons and Pixels: Large-Scale Vegetation Rendering in Godot #GodotFest2025
YouTube video by GodotFest
1215
Reposted by Karl
Robin-Yann Storm @rystorm.com · 11/11/2025
I’m now seeing a talk about large scale vegetation rendering in Godot, by Karl Bittner. He mentions there is an open source alternative to speedtree, which he has barely heard mentioned: EZ tree: www.eztree.dev It even has an in-browser 3D viewer in which you can try different seeds for the trees!
Karl presenting at GodotFest
281
Karl @hexaquo.at · 10/11/2025
on my way to #GodotFest! hope to meet some of you there :)
Laptop on a desk in a train next to a window. A presentation is being edited on the laptop. Outside the window are houses and hills lit by sunset.View out of the train window. A church can be seen on a nearby hill, which is otherwise covered by forest.
060
Reposted by Karl
Fabrizio Espindola @fabrizioespindola.bsky.social · 08/11/2025
The easiest way to create action lines in a shader is to take some noise and convert its UVs to polar coordinates 🙂 #godot #indiedev #gamedev
110515
Karl @hexaquo.at · 21/10/2025
🔜 #GodotFest Want to see these slides (and many more) live? Then join my presentation on November 11th at GodotFest in Munich :) #godot #gamedev
Presentation slide with the text "Plants, Polygons and Pixels: Large-Scale Vegetation Rendering in Godot". The background is a slightly blurred view over a rendered landscape.Presentation slide with the text "Geometry versus Billboards". "Geometry" is bold. On the right, a highly detailed 3D model of a tree is shown, first rendered, then shaded in white to show the intricate geometry.Presentation slide with the text "bend your normals!" and two rendered trees. The tree on the right has a clearer canopy shape due to smoother lighting. An arrow points from the left to the right tree.Presentation slide with the text "Ground-Covering Billboard Clouds" and an image of a rendered landscape. In the right half of the rendering, the plant billboards are rendered as white quads in order to show the geometry.
0579
Reposted by Karl
Jendrik Illner @jendrikillner.bsky.social · 20/10/2025
Graphics Programming weekly - Issue 413 - October 19th, 2025 www.jendrikillner.com/post/graphic...
06625
Reposted by Karl
Fronkon Games @fronkongames.bsky.social · 16/10/2025
Sharp Bilinear Filters: big clean pixels for Pixel Art #gamedev #gamedevelopment #indiedev #pixelart #gameart
bumbershootsoft.wordpress.com
Sharp Bilinear Filters: Big Clean Pixels for Pixel Art
Now that I’ve walked through the history of OpenGL and seen what I can do at what points in history, I can attack one of the long-standing problems I had with my old pixmap library. It’…
0144
Reposted by Karl
passivestar @passivestar.bsky.social · 15/10/2025
Here's how to scatter objects in Blender 5.0 with just a few nodes ✨
passivestar.xyz
Instance scattering in blender
Blender 5.0 is coming to save us from the spaghetti hell! Here’s a ridiculously simple blender 5.0 node setup that scatters objects on the surface of a mesh inside of the volume of some other mesh: An...
418124
Reposted by Karl
Man in Business Suit Levitating @dfeldman.org · 14/10/2025
Can you actually tell the difference between lossless and lossy compressed audio? (With your current headphones/speakers and ears) abx.digitalfeed.net/list.html
abx.digitalfeed.net
ABX High Fidelity Test list
A set of browser-based ABX tests comparing lossless and lossy music samples
292
Reposted by Karl
Kelvin van Hoorn | wishlist Oniros! @kelvinvanhoorn.com · 09/10/2025
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
1133
Reposted by Karl
Jendrik Illner @jendrikillner.bsky.social · 07/10/2025
Graphics Programming weekly - Issue 411 - October 5th, 2025 www.jendrikillner.com/post/graphic...
05922
Reposted by Karl
Roland Meyer @bildoperationen.bsky.social · 07/10/2025
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
13562179
Reposted by Karl
themaister.bsky.social @themaister.bsky.social · 05/10/2025
New blog post: Outlining an alternative path to learn graphics programming. themaister.net/blog/2025/10...
themaister.net
A case for learning GPU programming with a compute-first mindset – Maister's Graphics Adventures
03310
Reposted by Karl
Yining Karl Li @yiningkarlli.bsky.social · 02/10/2025
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...
youtube.com
Will Wright GDC 2005 Spore (The Future of Content) Remastered
YouTube video by Zeusmonomon
3132
Reposted by Karl
Scott Anderson @impossible.bsky.social · 03/10/2025
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
1161
Reposted by Karl
Kelvin van Hoorn | wishlist Oniros! @kelvinvanhoorn.com · 01/10/2025
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
1172
Reposted by Karl
Jendrik Illner @jendrikillner.bsky.social · 15/09/2025
Graphics Programming weekly - Issue 408 - September 14th, 2025 www.jendrikillner.com/post/graphic...
16521
Reposted by Karl
passivestar @passivestar.bsky.social · 12/09/2025
How to make a light beam shader in godot + download
passivestar.xyz
Light beam shader in godot
So I was noclipping through d1_canals_08 in HL2 as one normally does on a saturday night when I saw this: A nice sharp volumetric light that does a lot for the mood of the scene. Half Life 2 was relea...
11558102
Reposted by Karl
GodotFest - GodotCon Europe 26 @godotfest.com · 10/09/2025
Mother nature has created a beautiful place for us. The green and lush forests of the world calm our souls... until we have to render them! Let's hear Karl Bittner's virtual gardening wisdom @ #GodotFest!
Image with text, spotlighting a talk or workshop for GodotFest 2025

Plants, Polygons and Pixels: Large-Scale Vegetation Rendering
A showcase of easy and free workflows for creating 3D assets, the most important shading tricks to get them looking great, and how to use impostors for level-of-detail.
Karl Bittner
hexaquo.at

buy your ticket today: 25.godotfest.com
092
Reposted by Karl
Esther Lin @estheroate.bsky.social · 09/09/2025
Every lens leaves a blur signature—a hidden fingerprint in every photo. In our new #TPAMI paper, we show how to learn it fast (5 mins of capture!) with Lens Blur Fields ✨ With it, we can tell apart ‘identical’ phones by their optics, deblur images, and render realistic blurs.
315647
Reposted by Karl
Rachelf @rachelftech.bsky.social · 29/08/2025
Just posted a new #devlog sharing my process making procedural stained glass windows with dynamic lighting in #Godot! Was cool getting to edit some engine code for the first time to enable this effect! #gamedev
youtube.com
I Modified Godot to Make Procedural Stained Glass
YouTube video by RachelfTech
410115
Reposted by Karl
Kostas Anagnostou @kostasanagnostou.bsky.social · 29/08/2025
New blog post discussing a few approaches to bottleneck reduction and GPU utilisation and performance increase interplayoflight.wordpress.com/2025/08/29/g...
interplayoflight.wordpress.com
GPU utilisation and performance improvements
Drill deep into a GPU’s architecture and at its heart you will find a large number of SIMD units whose purpose is to read data, perform some vector or scalar ALU (VALU or SALU) operation on i…
110124
Reposted by Karl
Jendrik Illner @jendrikillner.bsky.social · 25/08/2025
Graphics Programming weekly - Issue 405 - August 24th, 2025 www.jendrikillner.com/post/graphic...
16419