Sign in

OwenTheProgrammer

@owentheprogrammer.bsky.social
119 followers 75 following 291 posts

Game dev / Graphics dev. All I know is math now.

PostsRepliesMedia
OwenTheProgrammer @owentheprogrammer.bsky.social · 28/09/2026
yet another magic data texture I had to create RGBA8_UNorm 16x16 (z-order) 40 pixels left, all for some damn lightning
050
OwenTheProgrammer @owentheprogrammer.bsky.social · 22/09/2026
ohhh my god. I might actually have a valid use to train a neural network on something. LTCs GGX approximation uses a 3x3 matrix with five variables, which they normalize one to make it four and store that in a texture. They later just use two textures, but I dont like that.. z = f(x,y).. smooth.. :O
000
OwenTheProgrammer @owentheprogrammer.bsky.social · 20/09/2026
juuuust in case you were curious, these are my solutions to the width, height, and centroid of the Henyey-Greenstein Phase Function. I was trying to reparameterize it into a linear transform for reasons
040
OwenTheProgrammer @owentheprogrammer.bsky.social · 17/09/2026
incredible.
130
OwenTheProgrammer @owentheprogrammer.bsky.social · 16/09/2026
light irradiance is actually quite easy btw, its just *rest* thats hard.
161
OwenTheProgrammer @owentheprogrammer.bsky.social · 15/09/2026
Literally half my notes are like this lol
020
OwenTheProgrammer @owentheprogrammer.bsky.social · 14/09/2026
ohh the half vector "normalize(lightDir + viewDir)" is the direction in which a surface normal reflects all the light from into the cameras view! Always wondered wtf the half vector was www.desmos.com/calculator/y...
desmos.com
Light-View Half Vector
040
OwenTheProgrammer @owentheprogrammer.bsky.social · 13/09/2026
a fun problem for the nerds www.desmos.com/calculator/s... this one actually has a very simple form!
desmos.com
Triangle Bisection Problem
000
OwenTheProgrammer @owentheprogrammer.bsky.social · 12/09/2026
im tellin you right now, dont sleep on avif as an image file format. the only downside I see so far is simply how long it takes to encode
000
OwenTheProgrammer @owentheprogrammer.bsky.social · 11/09/2026
dude im telling you, the people that designed power supply connectors on the power supply side Ḅ̶̢̛͎̗̹̖̯̽̾̊͝͝͠Ĕ̵̜̤̪̮͐̔̊͠ͅT̴̙̠͉͎͇̆̐̒͋̋͒͝͠ͅT̶̥͎̝̲̱̦͛̒͆̌̒́̑Ę̵̱̻͕̰̒̇̐Ř̶̙̣͎̫̯̺͌̃̓͋́̕͝ ̸̢͉̩̞̱̣̪̬͋̅B̸̠̙̹̯̈́̔̾̈́ͅḘ̴͍̦͈̣̿̂̉̓͊͝ͅ ̴̡̨̹̜̖̠̋̉̏̄M̵͍̼͉͍͍͔̯̰̐̈́̂̃̇́̚͠A̷̭̒̿K̶̼͋̏͂͗̈́̂Ī̷̡̦̹͓̝͑́ͅN̵̠̂̚ͅͅG̸͇̩̅̈ ̸̡̥̟̔͐͐̓̓͐̚͝S̶̛̬̘̹͖̭̭͔̒͑͌̔̋͝ͅĔ̴͎̌Á̸͓͎̩̳͔̖̱̀͜T̷̙̳̜͓̱͑̔̑͐͜ ̸͚͖̖͇̤̮̗̈͌̂̒̑͜B̷̹̉́E̶̡̦͉͂̿̄̎̑̕L̶̖̩͇͚̍͑͋̿̒T̷̨̮̰̬̻͉̲̍̏̕S̵͖̱͑
010
OwenTheProgrammer @owentheprogrammer.bsky.social · 08/09/2026
Found yet another project that I never had enough time to finish
120
OwenTheProgrammer @owentheprogrammer.bsky.social · 08/09/2026
good lord my desmos looks schizophrenic
011
OwenTheProgrammer @owentheprogrammer.bsky.social · 28/08/2026
Yo, im fuckin sick of dragging a bunch of things around in large heirarchies, so I made a tool in like ten minutes. Select all the shit you want, then right click some other game object, and "Reparent to Selection." I havent tested this, but it works so far lol
5153
OwenTheProgrammer @owentheprogrammer.bsky.social · 25/08/2026
I havent even finished this video and I've added like three things to my wtf list. This guys also making a camera emulation series as well; all round decent channel it seems youtu.be/5_Jy97TzZuM
youtu.be
30 little-known Blender tricks
YouTube video by Robin Squares
020
OwenTheProgrammer @owentheprogrammer.bsky.social · 20/08/2026
God if only building stupidly strong server style computers wasn’t a fortune right now mannn I’ve spent like the last two-ish three weeks doing at least one *heavy* compute task that pins my cpu or gpu to 100% usage for an hour or two, per day.
100
OwenTheProgrammer @owentheprogrammer.bsky.social · 19/08/2026
shout out this website, pretty dope ciechanow.ski/lights-and-s...
ciechanow.ski
Lights and Shadows – Bartosz Ciechanowski
Interactive article explaining how lights and shadows behave.
081
OwenTheProgrammer @owentheprogrammer.bsky.social · 17/08/2026
@moi2x.bsky.social imagine getting your discord hacked smh
110
OwenTheProgrammer @owentheprogrammer.bsky.social · 14/08/2026
to the blender power users, do you have any extremely esoteric keybinds / Quick favourites that you set and actually use? mine off the top of my head are - Q: Reload Scripts (I do a lot of blender plugin stuff) - F1 -> Set Attribute (To set custom data for faces and such, like a vertex integer)
210
OwenTheProgrammer @owentheprogrammer.bsky.social · 07/08/2026
you know I find a certain type of beauty in doing things "well" in the sense of graphics. Like this shit lowkey dope looking as hell XD
150
OwenTheProgrammer @owentheprogrammer.bsky.social · 07/08/2026
Oh my god I figured out how to get blender orientations to work with unity. Do everything like you would in blender, but export with (image 1) then on the UNITY SIDE, enable (image 2) and apply. magically coordinates and rotations are the SAME.
Image depicting blender FBX export settings, with Apply Scalings set to FBX All, Forward set to Y Forward, and Up set to Z Up.Image depicting Bake Axis Conversion enabled in the FBX importer settings on Unity.
040
Reposted by OwenTheProgrammer
AcChosen @acchosen.com · 06/08/2026
Hot Take: As a world creator, I'd be willing to live with having performance rankings for worlds if it meant we could reduce the current limits on avatars. I don't know if this post is satire or not.
162
OwenTheProgrammer @owentheprogrammer.bsky.social · 24/07/2026
huh. turns out dithering doubles the size of your normals if you export from blender.. good to know.
230
OwenTheProgrammer @owentheprogrammer.bsky.social · 19/07/2026
I always see some crazy shit when im trying to do some outlandish stuff lol
Attempt to reconstruct mesh face normals with a very colourful mistake
130
OwenTheProgrammer @owentheprogrammer.bsky.social · 15/07/2026
fun fact: converting LinearEyeDepth to Linear01Depth is stupid fuckin easy. z_eye / far = z_01 and if you're using _ZBufferParams, the w component just so happens to be 1/far.. so z_eye * _ZBufferParams.w = z_01
030
OwenTheProgrammer @owentheprogrammer.bsky.social · 14/07/2026
Over time I may get back to pushing the rest of the shaders, but here's the spot light and point light. feel free to replace the normal reconstruction method if you wish. github.com/OwenTheProgr...
github.com
GitHub - OwenTheProgrammer/ObjectGI: The shaders I made for ObjectGI a long time ago
The shaders I made for ObjectGI a long time ago. Contribute to OwenTheProgrammer/ObjectGI development by creating an account on GitHub.
052
OwenTheProgrammer @owentheprogrammer.bsky.social · 14/07/2026
Distilled my normal reconstruction stuff over the past three years into something readible, sadly work in progress has been held up by job searching github.com/OwenTheProgr...
github.com
010
OwenTheProgrammer @owentheprogrammer.bsky.social · 10/07/2026
Spent the pass few days trying to make a PS1 gpu emulator as faithfully as possible. Still trying to figure out how theyd do the rasterization in hardware with fixed point math (the GTE is documented far more than the GPU is) and of course im curious if this will work with VR projection matrices :3
041
OwenTheProgrammer @owentheprogrammer.bsky.social · 04/07/2026
It seems I may be destined for Staples after all.
000
OwenTheProgrammer @owentheprogrammer.bsky.social · 26/06/2026
aaand the game developer / shader developer / software thats not IT and web job search begins!
1141
OwenTheProgrammer @owentheprogrammer.bsky.social · 25/06/2026
I seem to have walked my ass through a shower thought into a long long month. yes this is reconstructed entirely from the depth buffer, nothing else, not even a grabpass.
292
OwenTheProgrammer @owentheprogrammer.bsky.social · 09/06/2026
yet another one of those "damn I really hope I didnt screw anything up XD" types of problems.. Reducing the Perspective-N-Point design matrix through partitioned low-rank approximation (EYM). The original 2N x 12 SVD reduced to 2N x 4, the rest is back substitution under x = (A A+)x + (I - A A+)x
150
OwenTheProgrammer @owentheprogrammer.bsky.social · 02/06/2026
oh my god the hlsl tables are an XY selection table. that took me months to figure out..
030
OwenTheProgrammer @owentheprogrammer.bsky.social · 02/06/2026
fun fact, if you go through the work to derive the quadratic equation, the point where you convert the sqrt(b^2 - 4ac / (4a^2)) is often factored out as sqrt(b^2 - 4ac) / 2a, but if you want the +sqrt to be the larger root, and the -sqrt to be the smaller root, you need this instead.
130
OwenTheProgrammer @owentheprogrammer.bsky.social · 15/05/2026
To my shader devs, I have made a unitypackage that adds a menu create context to create a new CGINC file, you're welcome 💜 github.com/OwenTheProgr...
github.com
040
OwenTheProgrammer @owentheprogrammer.bsky.social · 14/05/2026
eyo this canny would be pretty cool to have if not the screenspace normal stuff feedback.vrchat.com/feature-requ...
feedback.vrchat.com
Add 'Replaced Shaders' options to VRCCameraSettings | Feature Requests | VRChat
Please expose Camera.RenderWithShader and Camera.SetReplacementShader to the list of options exposed via VRCCameraSettings.
142
OwenTheProgrammer @owentheprogrammer.bsky.social · 07/05/2026
We really eating hot pockets in the garage, contemplating life choices at 2am
020
OwenTheProgrammer @owentheprogrammer.bsky.social · 03/05/2026
I fear I may need to job hunt soon, as much as I hate the industry as it currently stands, I dont know how long a can hold to "stability" in my life
010
OwenTheProgrammer @owentheprogrammer.bsky.social · 30/04/2026
just found out GPUs dont like running 100% utilization, vram at 7GHz, 2^80 operations total, but im still amazed at the fact it only left to cry at.. ahem. operation 7,409,760,794,050,560. and I accidentally asked it to allocate 17.7GB of vram and compute 2 billion things.. which it did in 9 seconds
141
OwenTheProgrammer @owentheprogrammer.bsky.social · 29/04/2026
I remember seeing this shader and wanting to some day create something like it. Im definitely capable of such things now, and much more.. but I should have known why shadertoy had it featured again. rest in peace kali. yet another brick in my road gone. www.shadertoy.com/view/XsBXWt
shadertoy.com
040
Reposted by OwenTheProgrammer
Pema99 @pema99.bsky.social · 23/04/2026
(🧵 1/6) Recently I've been working on an HLSL interpreter, which can execute shader code entirely on the CPU github.com/pema99/HLSLI... I used it to make a cute little interactive debugger demo. You can try it yourself at pema.dev/hlsl/
56824
OwenTheProgrammer @owentheprogrammer.bsky.social · 22/04/2026
you ever just store a 64x64x32 texture3D in a single 32x32 RGBAFloat texture?
040
OwenTheProgrammer @owentheprogrammer.bsky.social · 21/04/2026
(obvious flashing light warning) I figured id make a debug shader for this wack ass processor layout and even for 16x16, theres a lot of data. Each bar represents a decoded value of some kind.
271
OwenTheProgrammer @owentheprogrammer.bsky.social · 18/04/2026
For fuck sake can the barometric pressure stop swinging wildly above and below 1000mbar? My brain contains zero coherent thoughts FOR ONCE
030
OwenTheProgrammer @owentheprogrammer.bsky.social · 15/04/2026
040
OwenTheProgrammer @owentheprogrammer.bsky.social · 03/04/2026
Redid my error function approximation for really no reason lol but I got the deviation terms down even more! it also doesnt die past like 14.. so thats a bonus.. For anyone curious why the erf(x) function is useful, erf(x) = 2/sqrt(pi) * int_0^x{e^{-t^2} dt}
020
OwenTheProgrammer @owentheprogrammer.bsky.social · 31/03/2026
trippy.. (64x64 conformal mapping from polar coordinates to [-1, 1] x [-1, 1] square; dont worry bout it :3)
270
OwenTheProgrammer @owentheprogrammer.bsky.social · 23/03/2026
aint no one gonna be ready for this one lmao
021
OwenTheProgrammer @owentheprogrammer.bsky.social · 15/03/2026
Every professional beatsaber player will eventually end up reading: "lighthouse: LHR-18765EEA C: IMU went off scale." and once you do, you will see it many, many, maaanyyy times.
020
OwenTheProgrammer @owentheprogrammer.bsky.social · 14/03/2026
PSA on cos(atan(y,x)), sin(atan(y,x)) cos(atan(y,x)) = x/sqrt(x*x+y*y) = normalize(float2(x,y)).x sin(atan(y,x)) = y/sqrt(x*x+y*y) = normalize(float2(x,y)).y
020
OwenTheProgrammer @owentheprogrammer.bsky.social · 25/02/2026
My god I’m gonna know AleXas music very well by the end of the night lmao
010