But it's also ultimately much simpler than the traditional approach to rendering, at least so far: my entire scene is rendered by a single CPU-side draw call, bindless textures are so much nicer to use, LOD could be handled entirely by the compute shader etc.
29.06.2025 20:49 â đ 0 đ 0 đŦ 0 đ 0
The main benefit was performance. While release mode was fine, in debug mode (which I want to use to get wgpu validations) my little test scene was struggling to reach 60 FPS on my very powerful PC. Now it sits comfortably at locked 240 FPS, and release builds run at about 1000 FPS.
29.06.2025 20:49 â đ 1 đ 0 đŦ 1 đ 0
I've continued working on my little 3D engine based on wgpu and #rustlang. This week I managed to implement fully GPU driven rendering. The engine gives the GPU lists of drawables and meshes, and compute shaders perform AABB culling and generate indexed draw commands. 17K objects in about 0.03ms.
29.06.2025 20:49 â đ 3 đ 0 đŦ 1 đ 0
WESL advertises wgsl-analyzer as the official language server (or at least as a potential solution), but it doesn't actually support WESL from what I can tell? github.com/wgsl-analyze...
19.06.2025 09:01 â đ 0 đ 0 đŦ 0 đ 0
wgsl-analyzer provides autocompletion & syntax highlighting for VS Code, but doesn't support the same import syntax as naga_oil (even though it has some Bevy-specific features [which will be removed because of WESL migration?])
So I have to live with non-actionable errors in my IDE.
19.06.2025 09:01 â đ 0 đ 0 đŦ 1 đ 0
I integrated #bevy 's naga_oil to support shader imports. I had to use the version from git because the latest published release uses wgpu 24 (latest is 25). A new version will be released in sync with Bevy, but apparently naga_oil will also be deprecated and replaced with wesl-rs at some point?
19.06.2025 09:01 â đ 0 đ 0 đŦ 1 đ 0
I started this in December and resurrected it a few days ago by updating my dependencies, which took about an hour because of breaking changes in winit and wgpu. Good that these libraries are actively developed, but I imagine building anything bigger on top of these can be somewhat painful.
19.06.2025 09:01 â đ 0 đ 0 đŦ 1 đ 0
A colorful abstract tunnel rendered in a Windows 11 window
I'm working on a shader playground / 3D engine skeleton in #rustlang with winit, wgpu and naga_oil. About 1.5k LOC, has shader hot reload and very basic GLTF support. The DX is better than in my previous WebGL-based engine but the ecosystem is not yet very mature / stable.
19.06.2025 09:01 â đ 3 đ 0 đŦ 1 đ 0
Thanks for the share! YouTube decided to recommend your dithering video yesterday, and I watched it. Excellent work on that đ
13.06.2025 08:29 â đ 1 đ 0 đŦ 1 đ 0
Ah yes, the joy of cover dates. Didn't realize they could be off by so much.
09.06.2025 17:07 â đ 0 đ 0 đŦ 0 đ 0
If I had more time, I would have written a shorter article đ
08.06.2025 06:33 â đ 2 đ 0 đŦ 0 đ 0
I had assumed that triggering a script after an AI package finishes was only introduced in Fallout 3+, but apparently that's when they just added it to the editor UI. The scripting language already supported it in Oblivion.
07.06.2025 20:41 â đ 1 đ 0 đŦ 0 đ 0
Great catch! I had a look at this, and it is indeed powered by quest-specific scripting. When Glarthir's quest-related travel packages finish (= he reaches the victim), the script checks if the player can see Glarthir. If not, the victim NPCs are scripted to die.
07.06.2025 20:35 â đ 4 đ 0 đŦ 1 đ 0
Working on a lengthy article about Oblivion's controversial AI system, Radiant AI. I've been writing this for about two weeks now, and the word count is not too far from a relatively short master's thesis. Hoping to finish it in the coming days.
04.06.2025 16:29 â đ 6 đ 0 đŦ 0 đ 0
Trying and mostly failing to optimize frustum culling in a WebGL + TS + Rust engine
New blog post! blog.paavo.me/demo-engine-... #graphicsprogramming #3d #wasm #rust #optimization
02.08.2024 18:27 â đ 5 đ 0 đŦ 0 đ 0