Scaling object to large size causes it to glitch out

I am testing a free asset from the unity store. (Planet Earth) When I run the app with the asset scale set to (1,1,1) it works fine.

However when I scale it up to (100,100,100) it starts to glitch out. It’s like its morphing on the spot.

Then when I scale it higher, it just doesn’t seem to exists in the app at all? Whereas in the editor I can see it just fine. Any idea what’s going on?

Update: I’ve realised that instead of making objects bigger with the scaling factors, I need to make the XRrig camera smaller.

I have done this but the size of earth still seems off to me. From researching it further I have found out that people use two cameras to create the illusion of scale. I looked into this further and have found out that it is not as easy to do in VR due to there being stereoscopic cameras to Redner the image for each eye.

I am now stuck again :frowning:

This is what I am trying to achieve:

However I cannot find any resources online with scaling planets for a VR device.

Scaling pre-existing gameObjects managed by code you haven’t written is always risky. That’s my guess why that asset worked at 1-1-1 scale but not 100x larger. It’s very easy to break things when you don’t know what they’re doing at every step.

I don’t know how to scale things to planetary size really well either, but there are some assets which do the math correctly within this game engines – like the built in physical sky and night skybox shader for HDRP. Note it isn’t made for orbital points of views, although it can technically do them with correct horizon bending.

The main limitation for running truly giant scenes more often than not is floating point rounding errors making physics simulations unstable at anything more than a hundred km or so from the world’s origin point:

"Unity typically uses 32-bit floating point numbers. They have a maximum value of 3.402823 × 10^38 which is a couple trillion meters (1 Unity unit = 1 meter). Because float precision decreases the larger they become, you cannot actually use these large numbers. The computer would be unable to distinguish between a position that is 2 million meters away and one that is 2 million meters plus 1 cm away- they end up being the same number.

In the Unity Editor, if you try to assign a position to an object which is more than 100,000 meters from the origin, you will see a warning pop up, telling you to make your level smaller than that." See
Maximum scene size? - Questions & Answers - Unity Discussions for the full context.

Also (especially in VR!) drawing things / or the player out of scale is a very bad idea if you want physics to feel at all correct – in terms of gravity especially. Having a realistic feel is hugely dependent on correct scale, so it’s best to not be dependent on super small or large scaled character rigs in your game hierarchies if you want objects to be easily confirmable to be the correct size. (There are always artists exceptions too.)