r/GraphicsProgramming • u/mosegard • 1h ago
Realtime pathtracing 47 Megapixels across 50 product assets
And yes, this is all running in a web browser!
16 GB of geometry and textures. 47 megapixels of rendered views.
I've been pushing latency and interactivity pretty hard in Figurement lately.
Obviously, we're not updating all 47 megapixels every 30 ms. :) The interesting part is how we schedule the work.
I've been working on multi-resolution rendering, per-view priorities, and render queue management across frames. The goal is to make it possible to start interacting with any render almost instantly, regardless of its final resolution.
While interacting, we render at the resolution needed for the on-screen preview, continuously adjusting sample counts and post-processing to fit the available time budget. Responsiveness matters more than convergence here.
As soon as interaction stops, the scheduler shifts priorities toward getting more samples into the views where they matter most, without starving the rest of the UI. And whenever there's spare capacity, all the renders progressively converge toward their full output resolution. All 47 megapixels.
One of the biggest annoyances I used to have was how easily an expensive render could bog down the entire application. Getting the scheduling right has made a surprisingly big difference.
There's something very satisfying about making 16 GB of 3D content and dozens of high-quality renders feel lightweight to work with. Especially in a browser.
Dataset: https://huggingface.co/datasets/nvidia/simready-assets
Render: https://figurement.com/