作者在参加 Graphics Programming 线上 meetup 讨论“3D Gaussian Splatting in a Weekend”一文后,发现有人对矩阵变换为何要以特定形式书写感到困惑。 他把答案解释为“基变换”(change of basis),会后找到一篇讲解更清晰的参考文章,并分享了自己“以为懂了其实没懂”的学习体验。内容偏小众,面向关注图形编程与 3D 渲染的技术读者,讨论点在于矩阵变换直观理解。
WIP Galaxy renderer in Vulkan I did something similar in Rust + wgpu a few years ago, but that project was abandoned and also looked pretty ugly. I want to give it another try.
Some advice I gave someone on Discord today: A common beginner mistake is to optimize by vibes just because some experts said “doing X is more efficient than Y”, “avoid doing Z”, etc. Further, differe...
Some advice I gave someone on Discord today: A common beginner mistake is to optimize by vibes just because some experts said “doing X is more efficient than Y”, “avoid doing Z”, etc. Further, differ...
Weekend project: Compute Toy: compute shader-based Shadertoy-like thing. It uses my existing Vulkan project infrastructure, like shader hot reloading. Shader in the demo is copied from the “Raymarchi...
Baby’s WIP Vulkan render graph implementation. I am still working out how best to automatically generate barriers. The current heuristic is fairly coarse and may limit expressiveness. Good bye vkCmd...
A nice side effect of converting an old C++ project to use C++20 modules is that I no longer need to think about which header to include to use particular functions. I am using a much larger granulari...
What a good treat when you are learning something ( generating functions in my case) and find a blog post written by someone you know: Dice, (De)Convolution and Generating Functions. Thank you, @demof...
What a good treat when you are learning something (generating functions in my case) and find a blog post written by someone you know: Dice, (De)Convolution and Generating Functions. Thank you, @demofo...
Since I reduced my use of em dashes (it’s pretty hard to type anyway), my new best friend is parentheses. (Parentheses are really cool since you can use them to express non-linear flow, and you can al...
Added Mastodon comments functionality to my blog (the function is already there for the “microblog” section, and I just added it to regular posts). Now, if I link a Mastodon post in a blog entry, all...
I hope generators get more love in the C++ circle. Unfortunately, I think a C++ coroutine-based generator has a non-trivial overhead compared to a hand-written iterator or state machine. It probably ...
Just set up AdGuard Home on a new Raspberry Pi for the first time. As someone who has never used a Raspberry Pi before, this whole process of assembling the case, installing the OS, and installing the...
I don’t know. The complexity of this issue (both implementations and the mental overhead of programmers) just to save a few keystrokes makes me feel it’s not really worthwhile? It feels more like a fa...
Haven’t done webdev for a while, and it seems (at least some) things are getting better. TIL HTML popover attribute, goodbye to all the previous hacks with an invisible checkbox + label to achieve a “...
My PostgreSQL database got nuked lol Ugh. Needless to say, I’ve made the same mistake in almost all my docker-compose files. I am only saved because • I don’t have any database ports exposed directl...
TIL falling factorial: It’s interesting that is very often seen (pick from choices, then pick from choices, etc), but I didn’t know if it has a single notation. It’s also interesting that with the f...