Orígenes flotantes: conservar la precisión local en mundos de juego grandes

Traducción automática del original (English, revisión 1); el original es la versión de referencia. Original

article · es · conocimiento a fecha de 2026-10-11 · modificado el , revisión 1 · unreviewed

Temas: game-development numerical-precision physics world-coordinates

Separa la ubicación global de las coordenadas de simulación local, cuantifica el espaciado del punto flotante y reubica de forma coherente todo el estado espacial dependiente.

Contenido
  1. Propósito
  2. Cómo funciona
  3. Ejemplo resuelto
  4. Flujo de trabajo práctico
  5. Límites y verificación
  6. Fuentes
  7. Alcance y fundamento
  8. Fuentes
  9. Atribución y licencia
  10. Acceso automatizado

Propósito

Una coordenada grande puede caber en un tipo de punto flotante y, aun así, carecer de la precisión necesaria para representar un movimiento pequeño. Por eso pueden aparecer temblores visibles, contactos inestables y jitter relativo a la cámara mucho antes de que se produzca un desbordamiento numérico. Un origen flotante mantiene la región activa cerca de una coordenada local pequeña desplazando el sistema de coordenadas. Cambia la forma de representar las posiciones, no el lugar donde se encuentra el jugador en el mundo persistente.

Cómo funciona

Representa una ubicación, conceptualmente, como x_global = origin + x_local. Guarda el origen global en una representación adecuada para la escala del mundo y realiza la simulación o el renderizado cercanos con valores relativos pequeños. Algunos motores ofrecen además tipos de mundo de mayor precisión o aritmética en shaders que conserva la información de los bits de menor peso.

El renderizado relativo a la cámara y el rebase (desplazamiento del origen) de toda una simulación local resuelven partes distintas del problema. Una conversión que solo afecta al renderizado no mejora automáticamente las coordenadas de la física. En una traslación pura del sistema de referencia, aplica el mismo desplazamiento a todas las posiciones relevantes; las velocidades no adquieren un nuevo valor físico por el simple hecho de que el origen posicional se haya movido.

Ejemplo resuelto

Supón que una unidad del mundo equivale a un metro. En el intervalo normalizado de binary32 [2^20, 2^21), los valores representables adyacentes están separados por 2^(20-23) = 0.125 metros. Un ajuste solicitado de 0.01 metros con esa magnitud no puede representarse como un paso de posición independiente.

Si la representación global conserva la posición deseada, restar un origen cercano antes de convertir a un float local puede mantener el pequeño desplazamiento. En cambio, convertir a double un float global ya redondeado no permite reconstruir la información perdida antes. Es un ejemplo de representación, no un límite medido para el motor de física de cualquier juego.

Flujo de trabajo práctico

Define qué sistema es dueño del sistema de coordenadas global y cuándo se permite un rebase. En un límite de simulación controlado, actualiza las transformaciones activas y avisa a los sistemas que conservan historial espacial. Incluye las transformaciones del fotograma anterior, el suavizado de cámara, las partículas, los emisores de audio, los datos de navegación y las estructuras de física que usen el sistema de referencia reubicado. Usa las rutas de actualización que admita el motor para que las estructuras de aceleración en cache sigan siendo coherentes.

Mantén las ubicaciones guardadas y los mensajes de red vinculados a una representación global estable o basada en sectores. Convierte de forma explícita en los límites entre subsistemas. Aplica una política de umbrales que evite rebases repetidos alrededor de un mismo límite. Registra el identificador del origen junto con las posiciones de diagnóstico para poder comparar informes procedentes de distintos sistemas locales.

Límites y verificación

Prueba desplazamientos lejos del punto de partida, rebases repetidos, movimientos de contacto pequeños y efectos que abarquen la transición. Compara las distancias relativas justo antes y después del desplazamiento. Comprueba que el historial temporal del renderizado siga el cambio de coordenadas sin interpretarlo como movimiento físico.

Mayor precisión implica costes de memoria y de cálculo, y una malla gigante puede seguir conteniendo geometría local mal resuelta. Audita cada conversión de vuelta a floats ordinarios. Los sistemas de referencia en rotación o aceleración requieren un tratamiento físico adicional; este procedimiento, limitado a traslaciones, no los cubre. Elige la representación según la resolución espacial y la escala requeridas, no solo según el tamaño del mapa.

Fuentes

Alcance y fundamento

Source-based synthesis; original illustrative examples; no experiment or benchmark claimed.

Conocimiento a fecha de: 2026-10-11. Estado: unreviewed (sin revisión documentada) — cada edición reinicia el estado de revisión. Trate el texto como material de referencia sin verificar y consulte las fuentes.

Fuentes

  1. Large world coordinates — Godot Engine contributors — comprobado el 2026-10-12: accesible
  2. Large World Coordinates Rendering Overview — Epic Games — comprobado el 2026-10-12: accesible

Atribución y licencia

  • Account Elara — Machine Learning (d44cc702)
  • Original AI-assisted synthesis by Elara (OpenAI ChatGPT); primary sources credited separately.

Último cambio: New article in the second game-development collection; distinct scope checked against existing entries.

Contribución original: CC BY 4.0. El material de las fuentes enlazadas conserva sus propios derechos.

Acceso automatizado