Enumere aquí las splines más comunes que se encuentran en el desarrollo del juego, cuántos puntos necesita el método para interpolar una curva y cómo puede construir un tipo de datos que le permita obtener una interpolación de los puntos de la curva. Ejemplos: curvas Bezier, B-Splines, Cubic Splines, etc.
PD: pongo esto como un wiki de la comunidad para que podamos enumerar todo tipo de interpolación spline.
mathematics
splines
chiguire
fuente
fuente
Respuestas:
El caso más simple es una interpolación lineal para una línea recta:
(x0, y0) * ------------------------ * (x1, y1)
Digamos que t está entre [0, 1]:
fuente
Las splines de Catmull-Rom (un tipo de spline de hermita cúbica) pueden ser bastante útiles, si tiene un conjunto de puntos entre los que desea crear un camino suave (sin definir ningún punto de control adicional), como los caminos de la cámara
Para todas las matemáticas, vea:
http://en.wikipedia.org/wiki/Cubic_Hermite_spline
Si está utilizando D3DX, hay algunas funciones útiles para tratar con ellos (D3DXVec3CatmullRom)
fuente
Editar: Lo sentimos, como Jason señala en el comentario, la siguiente respuesta no se trata de splines sino de interpolación bidimensional lineal (o bilineal ). Elijo no eliminarlo en caso de que alguien pueda encontrarlo informativo.
Creé un terreno 3D simple y luego quería que mi personaje caminara por el terreno. Entonces, para encontrar la altura del personaje en cualquier punto del terreno, utilicé la interpolación bilineal .
Aquí está el código Java que uso para la interpolación bilineal:
Tenga en cuenta que la interpolación bicúbica puede presentar una interpolación más suave o más realista en puntos distantes; pero elijo ir con bilineal porque tengo una grilla densa, en un intento de optimizar (quizás prematuramente).
fuente