Ви інтерполюєте, щоб знайти стани між відомими значеннями, і екстраполюєте для пошуку майбутніх станів.
Подумайте про проблему з точки зору змінних стану, наприклад позицій та швидкостей. У кращому з усіх сценаріїв кожен комп'ютер, який повинен працювати з державою, має доступ до даних про стан, протягом якого він хоче працювати. Наприклад, алгоритм зіткнення, щоб дізнатись, чи вистрілила лазерна гвинтівка X головою гравця A інтересета, найкраще з усіх випадків, коли алгоритм знає точне положення кожного об'єкта на момент запуску лазера.
У реальному світі нам не завжди так пощастило. Іноді інформація про правду, яку ми отримуємо, є більш рідкісною. Наприклад, якщо гравець A є віддаленим гравцем на іншому комп’ютері, ви, можливо, не знаєте, куди вони прямують, коли ви запускаєте лазер, і вам потрібно обчислити постріл. У цьому випадку потрібно створити оцінку позиції А, як правило, з інтерполяцією чи екстраполяцією.
Різниця між ними полягає в тому, чи є у вас дані, які обмежені з обох сторін, або лише одна сторона. Скажімо, що Гравець А вже оголосив свою позицію правди для t = 0 і t = 1. Гравець B стріляє лазером при t = 0,5. У багатьох ситуаціях повідомлення гравця A про свою позицію при t = 1 може відбуватися до того, як гравець B натисне курок. Чому? У багатьох іграх чутливість елементів управління менш ніж ідеально миттєва. У гоночному моделюванні значна частина позицій гравця обмежена фізикою руху транспортного засобу. Ви можете вирішити оголосити "майбутню позицію", тому що ви знаєте, що дійсно не можете керувати всім цим за короткий період. Якщо у вас є інформація в майбутньому, ви можете інтерполювати між двома значеннями.
Що робити, якщо вам не пощастить мати значення = 1? Що робити, якщо програвач A не зміг оголосити про своє майбутнє місцезнаходження, і ви затрималися, вирішуючи, чи потрапили ви чи пропустили лише інформацію з t = 0? У цьому випадку вам доведеться екстраполювати. При екстраполяції ви використовуєте те, що знаєте про рух, щоб вийти за рамки будь-яких даних, які у вас є. Ви можете знати, що гравець А має певну швидкість, тому припускайте, що якщо ви помножите це на час, ви зможете отримувати позицію кожного разу.
Різниця полягає у поведінці. Інтерполяція вимагає, щоб ви мали верхню та нижню межі, яких у вас не завжди. Однак майже у всіх ситуаціях він має набагато кращі результати, ніж екстраполяція. Екстраполяція може легко призвести до нереальних рухів. Розглянемо випадок гравця, який бігає вліво і вправо, щоб уникнути удару під час просування. У будь-який момент часу їх швидкість йде по діагоналі, тому, якщо ви екстраполюєте, гравець може здатися бігти в бік, коли, власне, це ніколи не відбувається. Якщо ви робите лише інтерполяцію, значення, як правило, не збиваються з-за реалістичних значень.
Інтерполяція та екстраполяція - дві крайності у світі фільтрації. Існує багато-багато-багато-багато фільтрів для обробки таких даних, які змішують і співпадають властивості між інтерполяцією та екстраполяцією. Відповідно, не дивуйтеся, якщо ви бачите алгоритми, які не є чітко інтерполяцією чи явно екстраполяцією. Ці два - лише верхівка льодового Бергу.