keyle 4 hours ago

It will be interesting to see the first AAA game that uses these methods instead of rendering a 3D world. Even if made from CGI worlds, it would be a very interesting approach and with somewhat predictable performances.

Reminds me of Ecstatica [1], a 1994 game that had intense visuals with a very odd/different rendering engine made of 3D ellipsoids; in a way really crude splats in gouraud shading.

[1] https://ecstatica.fandom.com/wiki/Ecstatica

  • avaer 4 hours ago

    This is "rendering a 3D world". It's basically the exact same techniques that traditional rendering uses, just with a different primitive that's not triangles. Everything else pretty much carries over.

    If you mean the technique of splatting specifically, Dreams for PS4 [1] is prior art.

    If you mean pre-rendering, there's Myst and games like the original FF7 for PS1.

    [1] https://en.wikipedia.org/wiki/Dreams_(video_game)

  • cyber_kinetist 3 hours ago

    Note that the first published work of rendering Gaussian Volumes was in this 1991 paper (https://articles.tomasparks.name/publications/Westover1991.p...) - so 3DGS is really a rehash of an old method from the 90s!

    The contributions of 3DGS lie in how fast you can make them in modern GPU hardware (tiling + sorting with threads), and how to make the pipeline differentiable so that you can fit the Gaussian splats with photogrammetry data. Similar to the history of deep learning, it became technically feasible once the GPU hardware was powerful enough.

  • grumbel 3 hours ago

    Many years ago there was a game called Casebook[1], a small little detective game where you investigated rooms for clues. But unlike similar FMV games where you jumped from point to point, it had photorealistic environments that could be smoothly walk around in, much like later lightfield or gaussian splatting experiments.

    [1] https://www.youtube.com/watch?v=o-VAaC5BgVE

    • cubefox 2 hours ago

      Any idea on how they achieved this?

      • Cieric 1 hour ago

        I can't say I know how they actually did it, but taking a look at the trailer I can point out that it looks like the spaces are confined and your character is on rails. I'm mainly going off of the instant direction changes that don't appear to be 45 degrees off from the camera direction. Once it's constrained down to a single line/path you could do some wild things like cube mapping a video, where the position in the video is tied to the characters position. I can't say I know how they would take that video though, my best guess there is the scenes are constructed in 3d software, just it was to expensive for real time rendering.

        • cubefox 34 minutes ago

          Cube mapping a video sounds plausible, this is commonly known as 360° video. Putting the camera on rails (though I don't really notice rails in this case) and tying the video playback speed to the speed of the rail movement has also been done in the past in some pre-rendered PlayStation games, though without cube mapping. But I think it's not pre-rendered in this case. It looks far too realistic for a game that is at least 17 years old. My best guess: they captured the 360 degree videos with a real camera (stabilized in some way) and edited the equipment out frame by frame.

  • modeless 2 hours ago

    Dreams for PS4 used point splatting and has a very unique look as a result. The splats were created from distance fields instead of being scanned, so they don't look like modern gaussian splats. They have a painterly look instead. https://youtu.be/2ltgkcoQzow

samch 22 minutes ago

It seems like there are fairly regular posts on HN about splatting, and most appear to be fairly technical or proof-of-concept level. While the outputs look nice, I’m not sure that I could distinguish them from a nice ray-traced scene. What I think I’m missing is the “why?” of splatting. What are the material benefits of this area of research?

  • jerf 14 minutes ago

    At the moment, combining your statement "I’m not sure that I could distinguish them from a nice ray-traced scene" and adding "your graphics card can move through them in real time so cheaply that it can easily be used as a component in other tech even at high frame rates" covers it pretty nicely. There's some research into how to make them move or do other things they don't do very well, but the fact that you can swoop through them in real time on cell-phone level of power means they fit a lot of niches. Plus the fact you can "record" them from a real-world physical environment without ever having to "model" it opens up a lot of utility too.

    Personally I suspect they are getting a bit more attention then they "deserve"; people aren't talking about their weaknesses very much and I think that's resulting in some overexcitement. Some of the "we can replace everything with splats!" reminds me of the people who still don't understand why "if GPUs are thousands of times faster than CPUs why don't we run everything on GPUs?" is basically not even a sensible question. I don't see them as ever being the foundation of a graphics stack, but they definitely have a place as part of a well-rounded menu of techniques that can be brought to bear on a wide range of problems.

boppo1 52 minutes ago

I really wantt to get into splatting and I have the tools: good camera, v comfy in blender, comfy with graphics programming ideas, 4080. But I haven't found a good 'all in one intro' to it yet. Possibly because I'm foss-biased and have dismissed proprietary options. But does anyone know of a good 'vertical tutorial' on this stuff?

sorenjan 52 minutes ago

When looking at their linked interactive viewer it looks like they need 128 spp for the image quality to equal 3dgs. Maybe you can reduce that with some temporal tricks and noise reduction filtering, but that's still a lot of samples.

HexDecOctBin 4 hours ago

Can someone point to a resource/tutorial for learning point splatting (the 90s rendering technique)? Gaussian Splatting has completely over taken the search results, and the original technique is now near impossible to find.

phrotoma 4 hours ago

I love this site design. It uses the entire width of the monitor rather than a slender column of pixels down the middle with large blocks of unused space on either side, with a font for my old man eyes.

<3

  • zokier 4 hours ago

    > It uses the entire width of the monitor rather than a slender column of pixels down the middle with large blocks of unused space on either side

    Umm on my machine it has 560px margin on both sides with the content being only 474px sliver in the middle?

  • simonklitj 4 hours ago

    Imo they need to pad it just a bit. My scrollbar overlaps.

djmips 3 hours ago

Could this be a new direction for Google Streetview perhaps?

Epitaque 2 hours ago

Did not read the paper (sorry) but I wonder how this compares to mesh splatting (https://meshsplatting.github.io/). I feel like mesh splatting can produce higher quality results because triangles are very good at representing sharp features, and gaussians aren't.

  • dpark 1 hour ago

    But only in the same sense that triangles are bad at representing curves, right? It seems that’s a wash.

MattCruikshank 2 hours ago

My dumb idea... do outdoor scans, and then convert the contents into 1m^2 blocks... And then, just dumbly stitch them together.

Kind of like Minecraft... but with user-generated gaussian-splat blocks.

cyber_kinetist 4 hours ago

Really nice idea for 3DGS rendering - though the main problem is the noise (an unfortunate issue for all Monte-Carlo based methods).

I think future papers would probably continue improving on this method and focus on how to sample the points more efficiently while being unbiased (similar to how ray-tracing solved their performance issues). Or maybe... we can just add a deep-learning based denoiser and call it a day!

lucamark 4 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 4 hours ago

    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 4 hours ago

      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?

  • avaer 4 hours ago

    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 3 hours ago

      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)

praveen9920 5 hours ago

Sorting the gaussians is the compute heavy part in gaussian splatting. So, Im guessing this will give only marginal improvement in terms rendering speed.

  • xyzsparetimexyz 4 hours ago

    I'm not sure it does a sort. Each group of threads only handles a select number of gaussians

    • zokier 4 hours ago

      Yea, I think avoiding sorting is kinda the whole point here

cubefox 4 hours ago

Their point splatting method is orthogonal to level-of-detail rendering (they reference a few papers which try to do this), so both point splatting and LoD could be combined in the future for an even greater performance gain during rendering. They already implement occlusion and frustum culling.

Point splatting does introduce a lot of noise though, and their denoiser introduces ghosting, but they say a more sophisticated denoiser would give considerably better quality.

pixelesque 5 hours ago

> millions of threads

Really?! What OSs can handle that many native threads?

Also, this seems quite similar to stochastic progressive drawing of pointclouds for realtime that has been done for > 15 years in the VFX industry with GPU shaders in a tiled/bucketed fashion, unless this isn't progressive maybe? (The fact it's been accepted for Siggraph likely indicates it's slightly different).

  • Calavar 5 hours ago

    I believe they mean GPU threads. Plenty of cuda files in their repository.

    • pixelesque 4 hours ago

      Fair enough, but that's then only absolutely max 1024 threads per SM, which wouldn't get anywhere near 1 million, given 5090 only has 192 SMs...

      Future proofing I guess...

      • cyber_kinetist 4 hours ago

        You can launch much more logical threads than the available physical threads. The GPU scheduler will automatically dispatch the work to the SMs.

      • zipy124 4 hours ago

        I guess they never say that they execute at the same time technically haha

      • ks6g10 1 hour ago

        Just like 2 threads can execute on the same core at the "same" time, i.e. no synchronization, the same is true for GPU threads/ thread groups.