JMS55
jms5517.bsky.social
JMS55
@jms5517.bsky.social
Working on rendering for the Bevy game engine.

Long form blog at https://jms55.github.io.
Reposted by JMS55
Very excited to present a few interesting bits about the rendering of #DOOM: The Dark Ages together with @domlaz.bsky.social and @martinfuller.bsky.social .
If you happen to attend #GPC2025 next month, feel free to say hello!
October 20, 2025 at 11:29 AM
Reposted by JMS55
Bevy 0.17 is out now! It features Raytracing, Improved Observers / Events, UI Widgets, Rust Hotpatching, Light Textures, DLSS, Tilemap Chunks, Web Assets, Reflect Auto-Registration, UI Gradients, Raymarched Atmosphere, Virtual Geometry BVH Culling, and more!

bevy.org/news/bevy-0-17
Bevy 0.17
Bevy is a refreshingly simple data-driven game engine built in Rust. It is free and open-source forever!
bevy.org
September 30, 2025 at 7:41 PM
Reposted by JMS55
New blog post! In "Billions of triangles in minutes" we'll walk through hierarchical cluster level of detail generation of, well, billions of triangles in minutes. Reposts welcome!

zeux.io/2025/09/30/b...
September 30, 2025 at 5:40 PM
Reposted by JMS55
Exciting news for developers working with our AMD DGF geometry compression technology!

🗜️ The DGF SDK has been updated with a new animation-aware encoding pipeline, bug fixes, and improvements.

👉 Learn more and download: gpuopen.com/learn/animat...
Animating geometry with AMD DGF - AMD GPUOpen
The AMD DGF SDK has been updated with improvements and new features, including the addition of an animation-aware encoding pipeline.
gpuopen.com
September 24, 2025 at 9:08 PM
New blog post: "Realtime Raytracing in Bevy 0.17 (Solari)"
jms55.github.io/posts/2025-0...
September 20, 2025 at 9:23 PM
New blog post: "Bevy's Fifth Birthday - Progress and Production Readiness"

jms55.github.io/posts/2025-0...
JMS55's Blog
jms55.github.io
September 3, 2025 at 4:19 PM
Reposted by JMS55
Slides from my SIGGRAPH 2025 and CEDEC 2025 talks “Fast as Hell: idTech 8 Global Illumination”, are now publicly available through the Advances in Real-Time Rendering in Games course. Lecture recordings will be available soon on the course's YouTube channel.
#SIGGRAPH2025 Advances in Real-Time Rendering in Games course slides for "Fast as Hell: idTech8 Global Illumination” talk by @idsoftwaretiago.bsky.social from @idsoftware.bsky.social
are now online
advances.realtimerendering.com/s2025/index....
August 26, 2025 at 12:52 PM
Reposted by JMS55
meshoptimizer v0.25 is out! Featuring new simplification function that optimizes positions and attributes for appearance, experimental permissive mode to simplify faceted regions with selective seam preservation, regularization option for improved tessellation quality and deformation, multiple ...
August 20, 2025 at 3:56 PM
Reposted by JMS55
New tutorial blog post!
Environment and Light in Godot: Setting Up For Photorealistic 3D Graphics

hexaquo.at/pages/enviro...

I've been meaning to write this for a while, both as an overview over Godot's Environment, and as an entry point to realistic 3D graphics.

#godot #gamedev
August 17, 2025 at 5:33 PM
Realtime raytraced DI/GI
August 17, 2025 at 7:52 PM
crates.io/crates/dlss_...

Just published my open source crate for using DLSS in wgpu! Supports both super resolution and ray reconstruction.

Also look forward to DLSS support in the upcoming Bevy 0.17 release!
crates.io: Rust Package Registry
crates.io
August 15, 2025 at 12:17 AM
Anyone used DLSS-RR with ReSTIR GI before? How do you prevent DLSS-RR from thinking that correlated noise from ReSTIR GI is detail that needs to be preserved?
August 14, 2025 at 5:16 AM
Reposted by JMS55
Today is Bevy's fifth birthday! As always, I've used this as a chance to reflect on the past year and outline my hopes and dreams for the next year of #bevy:

bevy.org/news/bevys-f...
Bevy's Fifth Birthday
Bevy is a refreshingly simple data-driven game engine built in Rust. It is free and open-source forever!
bevy.org
August 11, 2025 at 10:54 AM
~14ms
August 10, 2025 at 2:00 AM
Added DLSS Ray Reconstruction to Bevy Solari!

It's kind of fun to look at the profile, I _think_ this is a series of upsample/downsample convolutions for a U-net, but who knows!
August 9, 2025 at 9:35 PM
Trying to upload this again, radiance cache: github.com/bevyengine/b...
August 4, 2025 at 3:07 AM
So subgroups are a bust, which is a shame because they were cheap. But they didn't have enough samples to reduce correlations.

So I tried workgroup-level resampling, which is mostly artifact free. Greatly improves quality! ...At double the cost (6.4->12ms) :(

Left is main, right is workgroup.
August 2, 2025 at 5:01 PM
Tried doing ReSTIR spatial reuse within a subgroup today. This is the result - super good quality, but with tiling artifacts.

I tried jittering the thread ID to get subgroups to overlap across frames, and it helped a bit, but didn't entirely eliminate the artifacts :(
August 2, 2025 at 2:56 AM
Realtime, no denoising besides TAA :)
August 1, 2025 at 5:47 PM
VK_AMDX_dense_geometry_format(3)
registry.khronos.org
August 1, 2025 at 3:21 PM
Added a radiance cache, and initial results show it _halved_ my ReSTIR GI time (8.62ms -> 4.32ms) in bistro! Also improved disocclusion quality a lot. The downside is that it's more temporally unstable and has some artifacts due to using a fixed sample point per voxel.
July 29, 2025 at 12:30 AM
Implemented (with a lot of help) balance heuristic for ReSTIR GI spatial resampling. Spent so long fighting NaNs - turns out it was due to an unclamped dot product 🙃.

Balance heuristic helps a _ton_ though! Greatly reduces jacobian correlations, way more than rejecting jacobians does.
July 25, 2025 at 2:29 AM
Reposted by JMS55
Just pushed a technique to avoid too many BLAS builds for continuous cluster-based LoD ray tracing. Thanks to Pyarelal Knowles whose instance merging idea was a precursor to this solution and helped on debugging.

github.com/nvpro-sample...
github.com
July 24, 2025 at 4:01 PM
All my raytracing shaders (compute with inline RT, not RT pipelines) have ~60% occupancy. High register count is the issue, because of the instance -> vertex/material data lookups.

Anyone know how to make this take less registers? github.com/bevyengine/b...
bevy/crates/bevy_solari/src/scene/raytracing_scene_bindings.wgsl at main · bevyengine/bevy
A refreshingly simple data-driven game engine built in Rust - bevyengine/bevy
github.com
July 21, 2025 at 6:30 PM
Specular! (PT, not realtime)
July 19, 2025 at 3:38 PM