Default Antialiasing different in Firefox / Chromium because of BJS?

Firefox is my main browser to test the OpenStreetMap 3D renderer.
It was always a fight to get good FPS.
If I now and then checked with Chrome/Opera, the FPS was always better :confused:

Because
Recently, while I used Opera for some test behaviour, I watched some odd differences:
The antialiasing of Opera: …


… is visible worse than Firefox:

The same Hardware, GPU, Firmware, MacOS, TypeScript-Code,
just another browser and the quality is different.
No wonder, Opera is better with the FPS by this worse view.

Does BJS set antialiasing different, according to the used browser?
How to explain that difference?
Could I control the settings to have a defined quality on all browsers?

It should be reproducible with any BJS application or PG, ok?
There is my test

BJS’s AA is processed the same way independently from browser, sadly, most of them have these differences internally :confused:

Is opera running webgl1 or 2 ?

Opera: “WebGL2 - Parallel shader compilation”
Firefox: “WebGL2”

I naively assumed, WebGL is used directly by BJS
and the WebGL reaction is defined identically for all browser canvas.
WebGL will use the OS API like Metal,
it could be code as part of the macOS, used by all browsers, hm?
Are there settings for AA in WebGL?
Could we, BJS/the user, override the browsers default settings?

1 Like

It all depends what you are using.

If you do not use any post processes, AA is managed by the engine options passed to webgl so nothing more than a boolean for us.

When using Post processes, it is controlled through the samples property of the render target but still only using webgl.

If it is the second, Maybe Opera does not support MSAA on offscreen textures.

Post processes? No.

So that boolean I set in new BABYLON.Engine is put 1:1 into WebGL?! And the detailed AA settings are don by the browser, differently.

And using “post processes” could fix that? I could set/nail my own details! That seems complex to my level of knowledge. Could there be an PG/Example please? Or a BJS function.
That boolean could become an enum like: BROWSER_DEFAULT, FAST_RAW, SLOW_FINE, …

1 Like

Not really, as it would incur a bigger perf hit, and if AA is disabled at the browser level, it would not work with PP as well :frowning:

Hello @DerKarlos just checking in if you need any more help

Thank you for concerning.

It’s the same device, macOS, WebGL and BJS
but the browsers do what they like!
There is no way to nail them to a defined behaviour, is there?
There is no WebGL API to set the AA details.

So I don’t see how you could help.
I hope WebGPU will change this.

Yep unfortunately browsers do what they want :frowning: I agree with the hopes WebGPU will help with this :slight_smile: