Remix.run Logo
lucamark 6 hours ago

This feels like Monte Carlo rendering applied to rasterization. I'm wondering if it's a brand-new or a well established methodology

pixelesque 6 hours ago | parent | next [-]

It's not new - that was sort of my point with my other comment.

At least if it's progressive (so refines and resolves over time), this has been done with pointclouds in the VFX industry in GPU shaders for years in terms of stochastically drawing different points so eventually the whole point set gets rasterised to a fidelity threshold.

lucamark 6 hours ago | parent [-]

ookay, thanks for the clarification! So, the interesting part here seems to be the 3DGS-specific opacity correction and GPU workload mapping. Am I wrong?

pixelesque 6 hours ago | parent [-]

Possibly yeah.

Or the per-pixel coord atomic I guess?

lucamark 6 hours ago | parent [-]

Right, that part seems to be based on Schütz et al. 2021 https://arxiv.org/abs/2104.07526

avaer 6 hours ago | parent | prev | next [-]

Monte Carlo in 3dgs is established enough that Spark [1] has been doing it for a while in the browser.

https://github.com/sparkjsdev/spark

cyber_kinetist 5 hours ago | parent [-]

Cannot find anything related to Monte Carlo methods in the source code. I thought Spark implemented a conventional 3DGS pipeline with LoD optimizations (And it seems they do the sorting on the CPU using Rust/WebAssembly because of WebGL limitations)

convolvatron 2 hours ago | parent | prev [-]

that goes all the way back to the Kajiya rendering equation https://en.wikipedia.org/wiki/Rendering_equation