Hacker News new | past | comments | ask | show | jobs | submit
Every time I hear about Gaussian splatting, I think about triangle splatting[0] - GPUs were built to render triangles, so I wonder what games would be like if we supported generating and rendering them as much as we do Gaussian splats.

[0] https://trianglesplatting.github.io/

The Dreams game engine (only for PS4) does this and is able to achieve scenes that no other game engine can. Here's a technical talk about how they did it: https://www.youtube.com/watch?v=u9KNtnCZDMI

Actually sorry not sure if they use triangle splatting, but gaussian splats at least.

The Sony Dreams beta in 2018, was truly revolutionary and even today the world hasn't caught up with a lot of its breakthroughs. I'd been deeply involved in the design of high-end, pro digital media authoring tools for two decades and when I saw that beta it blew my fucking mind.

Media Molecule (LittleBigPlanet) spent over 8 years creating Dreams, which would never have happened without Sony's funding, but the tragedy was forcing what could have been a brilliant high-end authoring tool into a gamepad / lean-back interface. Even now, there are still innovative UX approaches in Dreams that could be adapted into high-end 2D, 3D, compositing and animation tools like Blender.

Pretty sure they use SDFs, not triangle or gaussian splatting
If I recall their talk correctly, models are unions of SDFs, which get sampled into a point cloud, and each point gets splatted as another SDF primitive called a "fleck".
Ah thanks for the correction. The splat terminology they also use confused me.
I think SDFs is the data underneath, but baked into SDF voxel tiles at runtime and not always evaluating SDF shapes. The SDF tiles still get splatted.

At one point it used triangles for the large splats, and still compute shaders for the small ones due to quad overdraw. I'm not sure if the final version stuck with that or went all compute, but quad complexity is also why nanite does compute shaders for small triangles and traditional rasterization for the larger ones.

loading story #50445199
They've made a follow up to that called MeshSplatting. https://meshsplatting.github.io/
I think that Gaussian splatting is generally better, as the Gaussians are smoother and easier to optimize, if you can use them.

Things like triangle splatting are useful if you have to integrate into an engine that only support triangles. But with modern graphics pipelines, you can implement Gaussians quite efficiently, including newer techniques like Gaussian point splatting that can scale up seamlessly to enormous scenes:

* Video: https://www.youtube.com/watch?v=2AWv_nIfp-U

* Paper: https://jorisar.nl/gaussian_point_splatting/gaussian_point_s...

* Repo: https://github.com/JorisAR/gaussian-point-splatting

loading story #50446783
Yeah, there were other splats before Gaussian splats, so lots of cool possibilities depending on the style you're after. However, hard triangles have hard edges, and then you might be anti-aliasing those edges in some way. Gaussian splats can just be a triangle or two where the pixel shader feathers towards the edges.
Isn't nanite in unreal engine exactly that?

To be clear, I'm not proficient in it's use, just watched a few videos about it's theory when it was initially announced

loading story #50445453
Honestly there should be many more types of splatting imo...
loading story #50445081
loading story #50444342