Перечислите здесь наиболее распространенные сплайны, найденные при разработке игры, сколько точек нужно методу для интерполяции кривой, и как вы можете построить тип данных, который позволит вам получить интерполяцию точек кривой. Примеры: кривые Безье, B-сплайны, кубические сплайны и т. Д.
PS: я представляю это как вики сообщества, чтобы мы могли перечислить все виды сплайн-интерполяции.
mathematics
splines
100%
источник
источник
Ответы:
Самый простой случай - это линейная интерполяция для прямой линии:
(x0, y0) * ------------------------ * (x1, y1)
Скажите t между [0, 1]:
источник
Сплайны Catmull-Rom (тип кубического сплайна Эрмита) могут быть очень полезны, если у вас есть набор точек, которые вы хотите создать плавный путь между (без определения каких-либо дополнительных контрольных точек), такие как пути камеры
По всем математикам смотрите:
http://en.wikipedia.org/wiki/Cubic_Hermite_spline
Если вы используете D3DX, есть несколько удобных функций для работы с ними (D3DXVec3CatmullRom)
источник
Редактировать: Извините, как отмечает Джейсон в комментарии, следующий ответ не о сплайнах, а о двумерной линейной (или билинейной ) интерполяции. Я предпочитаю не удалять его в случае, если кто-то может найти его информативным.
Я создал простой 3D рельеф местности , а затем хотел , чтобы мой характер ходить по местности. Таким образом, чтобы найти высоту персонажа в любой точке на местности, я использовал билинейной интерполяции .
Вот код Java, который я использую для билинейной интерполяции:
Обратите внимание, что бикубическая интерполяция может представлять более плавную или более реалистичную интерполяцию в удаленных точках; но я выбираю билинейную, потому что у меня плотная сетка, в попытке оптимизировать (возможно, преждевременно).
источник