Daftar di sini splines paling umum yang ditemukan dalam pengembangan game, berapa banyak poin yang dibutuhkan metode untuk menginterpolasi kurva, dan bagaimana Anda bisa membangun tipe data yang memungkinkan Anda untuk mendapatkan interpolasi dari poin kurva. Contoh: Kurva Bezier, B-Splines, Cubic Splines, dll.
PS: Saya menempatkan ini sebagai wiki komunitas sehingga kami dapat mendaftar semua jenis interpolasi spline.
mathematics
splines
chiguire
sumber
sumber
Jawaban:
Kasing paling sederhana adalah interpolasi linier untuk garis lurus:
(x0, y0) * ------------------------ * (x1, y1)
Say t adalah antara [0, 1]:
sumber
Catmull-Rom splines (sejenis cubic hermite spline) bisa sangat berguna, jika Anda memiliki sekumpulan titik yang ingin Anda buat jalur yang mulus di antara (tanpa menentukan titik kontrol tambahan), seperti jalur kamera
Untuk semua matematika, lihat:
http://en.wikipedia.org/wiki/Cubic_Hermite_spline
Jika Anda menggunakan D3DX, ada beberapa fungsi praktis untuk menghadapinya (D3DXVec3CatmullRom)
sumber
Sunting: Maaf, seperti yang ditunjukkan Jason dalam komentar, jawaban berikut bukan tentang splines tetapi tentang interpolasi linear dua dimensi (atau bilinear ). Saya memilih untuk tidak menghapusnya kalau-kalau ada yang menganggapnya informatif.
Saya telah membuat medan 3D sederhana dan kemudian ingin karakter saya berjalan melintasi medan. Jadi, untuk menemukan ketinggian karakter di titik mana pun di medan, saya menggunakan interpolasi bilinear .
Berikut adalah kode Java yang saya gunakan untuk interpolasi bilinear:
Perhatikan bahwa interpolasi bikubik mungkin menghadirkan interpolasi yang lebih halus atau lebih realistis di seluruh titik yang jauh; tapi saya memilih untuk menggunakan bilinear karena saya memiliki grid yang padat, dalam upaya untuk mengoptimalkan (mungkin sebelum waktunya).
sumber