The clone method of GuassianSplatting can cause scene stutters

The clone method of GuassianSplatting will cause scene stutter. What is the solution?

1 Like

How just plain mesh, the scene won’t stall!!!

This is very important to me. Can you help me with this? thank you

I was going to suggest using instancing, but it is broken as well :confused:

It is only visible from a small orientation range.

But is does not stutter :wink: !

Cloning is an issue before of splat sorting that will need a worker thread. What is your use case @rookiewxy ?

Hello, is that what the use case refers to?

Currently, GaussianSplattingMesh doesn’t implement the Clone method. When you call Clone, you’re calling the Clone method of the parent class (Mesh), which may be the cause of the frame rate drop.

GuassianSplattingMesh uses a worker thread for rendering. Since the worker is a separate thread, cloning may not be simple.

Is there any real benefit to cloning? I don’t know much about GaussianSplatting, but I’m guessing they can’t share enough to benefit from cloning.

As long as cloning and instances do not work for splats you can just load them multiple times.

I was dealing with this when making this demo project:

Here is the example script on bitbybit platform that you can check. Ignore the code that does the physics and procedural chain model, just check how loading works. Hope this will provide you with workaround for now.

Also instead of

bitbybit.babylon.gaussianSplatting.create({
 url: assetUrl
});

use default babylon way

new BABYLON.GaussianSplattingMesh('name', url, scene);

Hope this helps, cheers!

1 Like

The work around is not very efficient but it’s valid. I’ll take a look asap to improve instances.

2 Likes

A better cloning implementation is discussed here Mouse hover Splat model, dot operation, model will blink - #5 by roland

3 Likes