Saya mengerti bahwa topik matematika berikut diperlukan untuk pemrograman grafik 3D. Saya sudah mulai melakukan beberapa di antaranya dalam kursus matematika saya. Dapatkah seseorang mengarahkan saya ke arah sumber daya yang menjelaskan bagaimana mereka berlaku? Apa masalah grafis / game yang mereka pecahkan?
- matematika vektor
- matematika matriks
- angka empat
- aljabar linier
Sejauh yang saya bisa lihat, ini semua adalah topik aljabar / matriks linier. Apakah ada topik lain yang diperlukan?
3d
mathematics
matrix
linear-algebra
quaternion
Katherine Rix
sumber
sumber
Jawaban:
Aljabar Linier adalah disiplin utama untuk pemrograman grafik 3d hanya karena itu adalah bahasa matematika untuk menggambarkan geometri spasial. Tiga topik Anda yang lain benar-benar hanyalah himpunan bagian dari aljabar linier:
Sejauh potongan matematika lain yang relevan untuk pemrograman grafik 3d, yang saya sarankan yang tidak mendapatkan cinta hampir cukup adalah geometri komputasi. Banyak masalah alam bermuara pada topik dalam geometri komputasi:
Setelah itu, saya mendorong melihat ke dalam kalkulus dasar dan khususnya metode numerik untuk persamaan diferensial; ini kurang relevan dengan grafis 3d per se dibandingkan dengan fisika 3d, tetapi secara umum kedua topik cukup erat (bahkan untuk masalah kinematika sederhana - misalnya, untuk animasi karakter dan sejenisnya) dan beberapa pengetahuan keduanya akan secara substansial meningkatkan pengetahuan Anda tentang salah satu; sulit jika bukan tidak mungkin untuk mengerjakan fisika yang relevan tanpa pengetahuan aljabar linear inti yang sama seperti yang digunakan grafik, tetapi pada saat yang sama memiliki pengetahuan fisika menyediakan titik referensi lain untuk memahami topik dalam grafik.
sumber
Inilah intro yang luar biasa http://blog.wolfire.com/2009/07/linear-algebra-for-game-developers-part-2/
sumber
http://www.dickbaldwin.com/KjellTutorial/KjellVectorTutorialIndex.htm adalah tutorial yang cukup bagus dan mudah tentang matematika vektor 2D / 3D DAN aplikasi pada pemrograman grafis.
sumber
Jika Anda terbiasa dengan koordinat Cartesian, maka penerapan topik di atas untuk komputer grafis harus cukup jelas. Ada tutorial seperti ini untuk OpenGL yang akan membantu memperjelas aplikasi matematika untuk memecahkan masalah tampilan dasar, misalnya bagaimana membuat model kerangka kawat tampak berputar. Artikel Wikipedia tentang menggambar perspektif mungkin membantu dengan sedikit latar belakang sejarah.
Selain itu ada banyak topik tampilan yang mendapat manfaat dari formulasi matematika. Misalnya, padatan 3D biasanya diwakili oleh triangulasi permukaannya. Bagaimana kita hanya menunjukkan bagian permukaan yang harus "dilihat" oleh pengamat (algoritma permukaan / garis tersembunyi)? Jika suatu objek akan diterangi dari sumber / arah tertentu, bagaimana hal ini berinteraksi dengan perspektif untuk memberikan rendering permukaan yang meyakinkan?
Di luar itu ada segala macam topik pemodelan yang menarik, seperti animasi kabut atau nyala api. Tetapi transformasi koordinat, sebagai daftar topik Anda tampaknya berpusat, adalah pokok dari semua kemajuan selanjutnya.
sumber
Aljabar Linier Praktis dan Dasar-dasar Grafik Komputer adalah dua buku yang sangat bagus yang akan membahas topik yang Anda sebutkan (dan penggunaannya dalam grafik komputer), jika Anda tertarik pada buku dan semacamnya.
sumber
Tidak semua dibutuhkan. Matematika vektor meliputi grafik 3D, Anda mungkin dapat mengatur geometri tanpa mengetahui titik-titik yang lebih baik dari matematika vektor, tetapi hal-hal seperti peta benjolan akan menjadi sangat sulit, dan Anda akan jatuh pada fisika.
Kuota hanya menawarkan deskripsi yang berbeda untuk beberapa matematika, mungkin menyenangkan untuk dimiliki, tetapi tentu saja tidak diperlukan karena matematika yang lebih konvensional cukup untuk menjelaskan perhitungan apa pun yang dapat Anda lakukan dengan angka empat.
Matriks matematika dan aljabar linier sangat erat kaitannya, sebagian besar menggambarkan operasi linier pada set angka. Tetapi sekali lagi, ini hanyalah cara lain untuk menggambarkan beberapa hal yang dapat dijelaskan dengan vektor dan aljabar.
Saya tidak tahu apakah Anda menganggapnya sebagai bagian dari matematika dasar, tetapi trigonometri tentu perlu membuat daftar juga.
sumber