Global ordering of spheres between several splats

I need to know if there is a way for PlayCanvas to sort global spheres across multiple splats, like PostShot does.

In the following image we can see how the building, which is a Gaussian splat, blends correctly with the group of houses below, which is another splat.

This is a postshot capture

And now a screenshot of the PlayCanvas viewer where the ordering is at the splat level, one on top of the other, but they do not penetrate each other.

Is there a way to fix this?

we have this property in beta:

which sorts all splats together. This might work for you, worth a test.

an example is here: PlayCanvas Examples

OK, that’s great news to know. We’re currently working on several real estate projects, and I need this feature ASAP. Any estimated date for when we’ll have this built into the editor?

In the meantime, I’m going to try out what you provided.

No sure yet, in a month or so.
You can always set unified using the script. Just make sure to disable the component before, and enable again after, as it’s ignored on enabled gsplat components. So 3 lines in script should do it all.

Ok, the reordering works fine, integrating that code from the example, the problem is that I need to alter some properties of the splt, such as color, opacity, tint, etc. I was doing it with another script, which worked perfectly, but now, by having this reordering script, it no longer lets me make any changes to the shader properties of my splats. Is there a way to be able to reorder and at the same time, alter the shader properties of my splats?

Not at the moment. By using unified system, all splats are merged into one, and so at the moment there is no way to apply custom shader / material properties to each of them. In the future we hope to add support for it, but it has not been done yet.

Hi, again, in the example you proposed with the engine, I don’t see any loss of quality when switching between reordering ON and OFF. However, in my project in the PlayCanvas editor, when I turn reordering on or off, I experience a loss of quality in the details of my splats. When I reorder, I lose quality. Is there anything else to keep in mind? Should I set some quality parameter for spherical harmonics or something like that when reordering?

Nothing I’m aware of comes to mind, are you able to share a repro / screenshots? I did a fix which is not released yet to use higher precision positions, that was causing a quality drop in my testing … splats aligning in a grid like structure.

Reordering Enabled, my splate looks broken

Reordering Disabled, everything looks OK

that definitely looks like that issue I fixed.
You could get local engine, build it, copy the playcanvas.mjs file your editor project and set its property to load after the engine. So this way you’d use the custom engine with the fix, till it gets released. At least you’d confirm that is the issue.

I’ve never done that, but I can try it, if you can give some more guidelines to help me test, that would be great.

follow these steps to build the engine: GitHub - playcanvas/engine: Powerful web graphics runtime built on WebGL, WebGPU, WebXR and glTF

and then drag & drop the file I mentioned from build folder to your Editor project, and in its properties set it to load after the engine.

I released a beta preview of the engine with all fixes. Test with your project like this (this is a launcher link - just use your number instead of XXXXXX)

https://launch.playcanvas.com/XXXXXX?version=2.13.0-beta.1

I see almost no differences between the current engine and the new one you sent me. Or they’re very minimal. I still see differences when I sort the splats and when I don’t.

Here are some comparisons.

Current engine

and here is the new BETA

Now this next image is WITHOUT rearranging, the ceilings I marked are seen without breaking

are you able to cut out that one build from your data and send it my way to investigate?
Note that I’m away for a week from tomorrow, so most likely when I’m back.

Yes ok, I’ll send it to you, can you give me an email address?

Just wanted to share a similar issue. Precision loss with unified splats far from the root.

2.13.0-beta.1 fixed the issues!
Thank you @mvaligursky

1 Like