Missing instance parts on Chrome

Hi!

Chrome is not rendering instanced mesh properly.

They are missing some parts as you can see in the following screenshot:

Reproduction:
https://hextank.netlify.app/

Tested on Chrome Desktop 107 for macOS, Windows 11 and Linux using both architectures: x86 , ARM.

Firefox and Safari work fine.

Which screenshot is from Chrome and which parts are actually missing?

I tried to compare chrome and firefox on my computer and could not see a difference.

Chrome is left.
Firefox is right.

You can see the tank’s turret and flames missing.

Indeed, but on my computer sometimes it works and sometimes it doesn’t…

When it doesn’t work, we can see the turet+flame at a fixed location (always the same):

Maybe there’s a timing problem where you would set the turet/flames too early in Chrome, when the ship is not ready yet and the parenting is not working (I guess you parent the turet/flames to the ship)?

[…] It seems that the problem is fixed in Chrome when I join with Firefox.

I’m using a TransformNode as the main parent.
It looks like the positions of child instances are updated the same on both browsers.
But on Chrome some children stay visually at (0, 0, 0,). That’s why they are in the middle of the map.

You should look at what happen when someone else is joining from another browser, as it refreshes the display for the other players and it fixes the problem.

When a new player joins, another instance is created based on the original mesh.
It looks like on the second call, it gets loaded properly.
That’s a weird behaviour.

Fixed by preloading/prewarming an instance before the player connects.
Switching to clones instead of instances also works.

2 Likes