@guycalledfrank.bsky.social
Graphics programmer, indie game developer. Developed Bakery (a GPU lightmapper) and some other tools. Ex-PlayCanvas engine dev. Working on Faded: https://linktr.ee/fadedthegame Other stuff: https://ndotl.wordpress.com/cv/
Along the river Gradac, near Valjevo π
04.08.2025 16:56 β π 23 π 2 π¬ 1 π 0The terrain above is based on an erosion noise implemented by clayjohn and Fewes in this Shadertoy:
www.shadertoy.com/view/7ljcRW
It's really impressive, more people doing terrain generation should know about it!
#ProcGen
π’
31.07.2025 19:39 β π 0 π 0 π¬ 1 π 0Using Bakery realtime preview by @guycalledfrank.bsky.social to check area lights... to be baked into volumes for Light Volumes by @sim.red ... to THEN be used to provide the walls, fog and avatars in #VRChat with realtime light information from the screen.
The FUTURE baby~ Β¦D
Did you know that GetWindowRect returns -32000 for a minimized window position?
And it's not mentioned in msdn docs.
Well, now you know.
How to speed up random memory accesses
blog.s-schoener.com/2025-07-28-r...
Random observation: I'm noticing that when I'm doing graphics programming, 50% of my work is finding ways to compress and pack data... and when I'm doing gameplay programming, 50% of it is fixing all sorts of jitter/shakiness/abrupt transitions...
28.07.2025 22:56 β π 9 π 0 π¬ 0 π 0Questionable UI, but Decalery now allows you to project receiver's UV1 (for the normal map) to the decal, while moving original decal's UV1 to UV3 (for color/gloss/etc maps).
Basically cheap forward-rendered normal-mapped decals.
I'm just an indie gamedev...
bsky.app/profile/stei...
It prevents the knee from bending outwards or in other axes. It doesn't prevent the thigh from being rotated anywhere (like upwards into the head), but I'm just... not gonna put IK targets there π
25.07.2025 19:52 β π 1 π 0 π¬ 0 π 0Yep! I'm also experimenting to change walking speed of the character. Currently all walks are root-motion based, but it makes it annoying hard to position at the exact spot, and generally feels kinda unresponsive. But if I move characters via code and compensate foot sliding with IK... might work
25.07.2025 17:35 β π 1 π 0 π¬ 0 π 0Oh, Bakery is on a sale again!
#gamedev
...then spend half a day flipping signs and axes until it works
25.07.2025 09:33 β π 17 π 0 π¬ 1 π 0But the basic idea is:
- Build a lookat matrix that defines leg bending space, aimed at target
- Use the law of cosines to figure out knee angle knowing thigh->target distance
- Use this angle to find out knee point
- Rotate thigh to this point and knee to target
There must be something... but I just attempted it naively, almost got it but had a few errors and then my friend ABTOMAT also attempted it, fixed these errors and shared it with me π
25.07.2025 09:25 β π 2 π 0 π¬ 2 π 0Basic trigonometric IK, but it's satisfying when it finally works.
Previously I wrote an overly complicated position-based solver, but it was buggy and wasn't worth it π₯²
Added de-ringing option to L2 light probes. Unlike Unity's "remove ringing" checkbox, this one is actually a slider you can tweak to remove less/more. At max value it gets almost close to L1, but seems to fix ringing/negative values completely.
Oh, I also made L2 work for APV.
...and If you're wondering how one can possibly avoid various artifacts using just L1, here is my favourite paper from Geomerics:
web.archive.org/web/20160313...
(this solution with some additional tweaks is what I use in my shaders)
and a new one from Activision: activision.com/cdn/research...
You can try it via my github patches: geom.io/bakery/wiki/...
Benefits over Legacy are: it's faster; it's more consistent (everything happens within the lightmapper, no engine rendering involved).
So previously Bakery had 2 light probe baking modes: L1 and Legacy (=L2 but via convolving in-engine rendered cubemaps). L1 was 1st-class citizen, since it also works for dense 3D texture volumes (no way anyone's reading 9 textures).
Well, now L2 is finally a "native" mode too.
Thought it was a shadertoy screenshot for a moment
04.07.2025 09:16 β π 0 π 0 π¬ 0 π 0Some interesting new upscaling technique from the almighty Suslik www.shadertoy.com/view/MXjcWK
04.07.2025 09:16 β π 22 π 4 π¬ 0 π 0"Phosphor"
for(float i,z,d;i++<8e1;o+=(cos(d/.1+vec4(0,2,4,0))+1.)/d*z){vec3 p=z*normalize(FC.rgb*2.-r.xyy),a=normalize(cos(vec3(4,2,0)+t-d*8.));p.z+=5.,a=a*dot(a,p)-cross(a,p);for(d=1.;d++<9.;)a+=sin(a*d+t).yzx/d;z+=d=.05*abs(length(p)-3.)+.04*abs(a.y);}o=tanh(o/1e4);
Hardware virtual textures look like a marvelous tool for large terrains or volume compression.
Alas, they are in a sad state in terms of performance and usability. And strangely, the (very bad) binding perfs varies a lot with the driver.
β read here: hal.science/hal-05138369
@rcmz0.bsky.social
In C# at least they're sort of just a syntactic sugar. They compile into giant switch-cases and gotos and store the current state in a hidden variable. Funnily enough you can get/set that variable via reflection and effectively (de)serialize state.
27.06.2025 10:14 β π 1 π 0 π¬ 0 π 0Isn't it basically a coroutine though?
27.06.2025 09:35 β π 1 π 0 π¬ 1 π 0Long time no quack π¦ Progress is slow, but I'm still doing important work on @awaddlefullife.bsky.social!
#screenshotsaturday #gamedev
ok I'll do one of those threads too... +1 like = +1 level design aphorism that may or may not be true
15.10.2024 23:04 β π 299 π 36 π¬ 5 π 7Well it seems to still solve collisions in discrete steps, but improves in other areas
20.06.2025 19:16 β π 1 π 0 π¬ 0 π 0