We are encountering the classic issue of 32-bit floating point precision loss in our continuous Runner/Endless Drive project. The resulting micro-jitter becomes noticeable when the player reaches approximately 10,000 units of distance from the world origin.
To address the fundamental cause of the problem—the 32-bit float coordinate representation—we are exclusively looking for technical solutions that enable high-precision physics and camera tracking at high coordinate magnitudes, without relying on the Floating Origin methodology.
The core technology we seek is Double Precision (64-bit double). We are asking the community for practical insights regarding its implementation within the Unity ecosystem:
- Unity DOTS / Unity Physics: Is migrating our
Rigidbodysimulation to Unity Physics (part of the DOTS stack) the most robust, if not the only, native path to utilize 64-bit position precision for physics calculations within Unity’s engine? - Engine Modifications (Non-DOTS): Are there any experimental or advanced settings within the standard engine (e.g., PhysX or the
Transformsystem) that can be configured to use 64-bit double precision for position/translation of key objects (like the player) to mitigate precision loss at runtime? - Specialized Assets: Has the community found or developed any stable Asset Store solutions that inject double precision functionality into the standard
Transformsystem and remain compatible with the traditionalGameObjectandRigidbodyworkflow?
We also note that our custom camera script operates in LateUpdate but uses Time.fixedDeltaTime in its Vector3.Lerp for damping. We are investigating if this specific synchronization conflict contributes to amplifying the visible jitter, but our primary focus remains on 64-bit solutions.
We appreciate any experience or direction regarding truly scalable high-precision world management.