Mi escena OpenGL tiene objetos que se colocan a distancias ridículamente lejanas del origen. Cuando veo estos objetos, y desplazo / giro / acerco una cámara a su alrededor, 'vibran'. Es decir, los vértices que comprenden los objetos parecen romperse alrededor de una grilla imaginaria de puntos en 3D. He leído que este es un problema común debido a la cantidad de información que se puede almacenar con precisión de punto flotante (que OpenGL, y casi todo lo demás usa). Sin embargo, no entiendo por qué sucede esto.
Al buscar una solución, me encontré con la solución muy simple de 'origen flotante', y parece funcionar. Simplemente transformo todo para que mis objetos estén en las mismas posiciones relativas, pero cualquier cosa que mi cámara esté mirando está cerca del origen. Encontré una explicación aquí: http://floatingorigin.com/ , pero no pude seguirla.
Entonces ... ¿Podría alguien explicar por qué posicionar mi escena muy lejos (digamos 10 millones de unidades) del origen da como resultado el comportamiento errático que observé? ¿Y también por qué acercarlo al origen soluciona el problema?