Interpola para encontrar estados entre valores conocidos y extrapola para encontrar estados futuros.
Piense en el problema en términos de variables de estado, como posiciones y velocidades. En el mejor de los escenarios, cada computadora que necesita trabajar con el estado tiene acceso a los datos del estado durante el tiempo en que desean trabajar. Por ejemplo, un algoritmo de colisión para ver si el rifle láser disparó X interesets la cabeza del jugador A, el mejor de todos los casos es cuando el algoritmo conoce la posición exacta de cada objeto en el momento en que se disparó el láser.
En el mundo real, no siempre somos tan afortunados. A veces la información de verdad que recibimos es más escasa. Por ejemplo, si el jugador A es un jugador remoto en otra computadora, es posible que no sepa exactamente a dónde van cuando dispara el láser y necesita calcular el disparo. En este caso, debe crear un estimador para la posición de A, generalmente con interpolación o extrapolación.
La diferencia entre los dos es si tiene datos que están limitados en ambos lados, o solo en un lado. Digamos que el jugador A ya ha anunciado su posición de verdad para t = 0 yt = 1. El jugador B dispara un láser a t = 0.5. En muchas situaciones, el anuncio del jugador A de su posición en t = 1 puede ocurrir antes de que el jugador B apriete el gatillo. ¿Por qué? En muchos juegos, la capacidad de respuesta de los controles es menos que perfectamente instantánea. En una simulación de carrera, gran parte de la posición del jugador está limitada por la física de un vehículo en movimiento. Puede elegir anunciar una "posición futura" porque sabe que realmente no puede dirigir tanto en un corto período de tiempo. Si tiene información en el futuro, puede interpolar entre los dos valores.
¿Qué pasa si no tienes la suerte de tener un valor = 1? ¿Qué pasaría si el jugador A no estuviera en condiciones de anunciar su ubicación futura, y no puede decidir si acertó o falló con solo la información de t = 0? En este caso tienes que extrapolar. En la extrapolación, usa lo que sabe sobre el movimiento para extender más allá de cualquier dato que tenga. Es posible que sepa que el jugador A tiene una cierta velocidad, así que suponga que si multiplica eso por tiempo, puede obtener una posición en cada momento.
La diferencia está en los comportamientos. La interpolación requiere que tengas un límite superior e inferior, que no siempre tienes. Sin embargo, en casi todas las situaciones tiene resultados mucho mejores que la extrapolación. La extrapolación puede conducir fácilmente a movimientos poco realistas. Considere el caso de un jugador que está esquivando hacia la izquierda y hacia la derecha para evitar que le disparen mientras avanza. En cualquier punto dado, su velocidad es a lo largo de una diagonal, por lo que si extrapola, el jugador puede parecer correr hacia un lado cuando, de hecho, nunca lo hacen. Si solo realiza la interpolación, los valores tienden a no desviarse de los valores realistas.
La interpolación y la extrapolación son dos extremos en el mundo del filtrado. Existen muchos, muchos, muchos filtros para manejar datos como este que mezclan y combinan propiedades entre interpolación y extrapolación. En consecuencia, no se sorprenda si ve algoritmos que no son claramente interpolación o claramente extrapolación. Esos dos son solo la punta del iceberg.