Location and size of Gaussian Splatings

Y flip needs to happen because of the first .PLY format that was not in Babylon space coordinate system. I chose to transform individual vertices instead of having non uniform scaling in GS transform.

There are 2 operations that transform the scaling value into actual geometry scaling:

A scaling matrix here with *2 the value

and here for covariance:

So, basically, if you want a splat radius of 0.5, compute its square root (sqrt(0.5) = 0.70710678118) then divide by 2.

I changed the shader to have a saturation of alpha (0 or 1) to verify that and got:

            // uniform scale 
            fBuffer[8 * ind + 3 + 0] = Math.sqrt(0.5) * 0.5;
            fBuffer[8 * ind + 3 + 1] = 1;
            fBuffer[8 * ind + 3 + 2] = Math.sqrt(0.5) * 0.5;

Beware with alpha computation, it will be difficult to have perfectly fitting splats. they will be appear smaller than the size you want.