In my current project, I am developing a third-person RPG style game using Three.js and Blender. The terrain in the game world is tiled and loops endlessly in all directions, triggered when the player object approaches defined edges along the z or x-axis. The FBX importer is being utilized, and the game runs smoothly on most platforms.
However, I have encountered an issue on IOS devices where, when the player object is moved a significant distance from the scene root, the surface materials start to jitter and break apart. This problem worsens the further the player object is from the root, likely due to how IOS devices handle floating point calculations. I have come across some references to similar issues in these threads:
GitHub Three.js
Related (from '04)
Related from '07
While I have tried multiple approaches to solve this problem, I have not found a successful solution yet. I am hesitant to move the world instead of the player object, as I have struggled with implementing object rotations on the y-axis and shifting pivot points. Matrix transforms of the mesh have also proven to be ineffective.
Is there a simpler way to reset the origin or scene root to the player's current position, similar to how it is done with cameras, lights, positions, and rotations? Any suggestions would be greatly appreciated as I aim to make this project compatible with IOS devices.
Thank you for your help in advance.