Sign in

OwenTheProgrammer

@owentheprogrammer.bsky.social
120 followers 75 following 297 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 · 27/09/2026
ah yes, first image is without the IgnoreProjector tag, second is with. I cant recall if this fucks with other things though :/
001
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
like ooooo~ shiny bolll
120
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
im familiar with that brand :3 first time ive heard it out in the wild!
010
OwenTheProgrammer @owentheprogrammer.bsky.social · 08/09/2026
ive got a bit of ocd under my belt
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 · 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
OwenTheProgrammer @owentheprogrammer.bsky.social · 25/07/2026
oh lmao alright how to get a 1K x 1K normal down to 37kb apperantly do this (image) and colour pick a spot in your normal where its for sure flat. For me that was (0.50001, 0.50656, 0.99991) which youll want this to be pixel perfect for the png compression to do its job.
000
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 · 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 · 25/06/2026
it even captures dithering effects.
030
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
im going to verify all this work is correct and put it into LaTeX of course
010
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 · 23/04/2026
This is the layout FYI.
000
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
A joke taking Rice Krispies famous "Snap, Crackle, Pope" as the calculus equivalent "Snap" being the fourth derivative, "Crackle" being the fifth, and "Pop" being the sixth derivative.
010
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 · 02/04/2026
figured I'd relay my current list of min and max properties since I've found them quite useful for simplification. I haven't put the time and effort into formal proofs of each property since its part of my personal math property list
040
OwenTheProgrammer @owentheprogrammer.bsky.social · 01/04/2026
just fyi as I was passing through the shader code (and not a joke lol) use if you wish github.com/REDSIM/VRCLi... github.com/OwenTheProgr... shader-playground.timjones.io/dafec0022fbf...
Desmos graph comparing the errors of both LV_FastAcos (the red line) and The Shader Grimoires acos function (the blue line) against the Desmos arccosine function.
030
OwenTheProgrammer @owentheprogrammer.bsky.social · 31/03/2026
bros about to read a research paper if this works as intended lol
010
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 · 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 · 22/01/2026
id put an unpopulated resistor on ITERM for when you want to change the current from 10% threshold, also 10u decoupling capacitors are great, but they're better with ones that act quicker (10u + 100n type beat) although the datasheet has 1u on input, 4u7 on output.. so good jab
110
OwenTheProgrammer @owentheprogrammer.bsky.social · 11/01/2026
Ever wanted to store a quaternion / versor in 3 floats instead of four? there is actually a mathematically 1:1 (in practice e05 error terms for FP16, e09 for F32) representation using lie algebra. Heres all the code to encode / decode that. Versor -> rotation axis with length of the angle.
140
OwenTheProgrammer @owentheprogrammer.bsky.social · 04/12/2025
P = MAN lol
020
OwenTheProgrammer @owentheprogrammer.bsky.social · 22/11/2025
Probably not you, I couldn’t give a single fuck about 99% of my feed at the moment
100
OwenTheProgrammer @owentheprogrammer.bsky.social · 21/11/2025
I knew it would be directly equivalent, but im still surprised its directly equivalent lol This actually might make things for latrix ever so slightly faster / easier to work with, although it does come with the prerequisite of complex analysis, since I cant preprocessor test for i^2=-1 it seems..
010
OwenTheProgrammer @owentheprogrammer.bsky.social · 14/11/2025
eeeeexcuse me?
340
OwenTheProgrammer @owentheprogrammer.bsky.social · 09/11/2025
@freya.bsky.social biblically accurate Unity gimbal
Typically, X is red, Y is green, Z is blue
150
OwenTheProgrammer @owentheprogrammer.bsky.social · 31/10/2025
and after a quick verification, it seems to hold true
000
OwenTheProgrammer @owentheprogrammer.bsky.social · 31/10/2025
I've been chugging away at the 3D one all day, but in the 2D solution, I may have found a property that makes things more elegant. The first image is the actual integral (ln -> arcsinh), which is meant to handle one of the four triangle sweeps. The second image is the splitting of the unit square
100
OwenTheProgrammer @owentheprogrammer.bsky.social · 09/10/2025
4 bits per sample, 2x2 block segments, 32 samples per colour channel, on a 512x512 CRT
150
OwenTheProgrammer @owentheprogrammer.bsky.social · 07/10/2025
wait yeah holy shit ive reinvented xray reconstruction like to a T lmao en.wikipedia.org/wiki/Tomogra...
000
OwenTheProgrammer @owentheprogrammer.bsky.social · 07/10/2025
normal latrix on the left, the texture sampled one on the right
000
OwenTheProgrammer @owentheprogrammer.bsky.social · 07/10/2025
I fixed the weird fringing from before 512x512 render texture, genuinely insane how it got to this point wtf
230
OwenTheProgrammer @owentheprogrammer.bsky.social · 06/10/2025
That normal reconstruction methods pretty solid (doing the normal reconstruction from the point of view of the laser) but its slightly weighted incorrectly, since it solves the direction vector to the tangent plane, not the planes normal itself. Ill try to fix that at some point
030