Vektor, Simpul, dan Kuaternion (Direct3D 9)

Di seluruh Direct3D, simpul menjelaskan posisi dan orientasi. Setiap puncak dalam primitif dijelaskan oleh vektor yang memberikan posisi, warna, koordinat tekstur, dan vektor normal yang memberikan orientasinya.

Quaternion menambahkan elemen keempat ke nilai [x, y, z] yang menentukan vektor tiga komponen. Kuaternion adalah alternatif untuk metode matriks yang biasanya digunakan untuk rotasi 3D. Kuaternion mewakili sumbu dalam ruang 3D dan rotasi di sekitar sumbu tersebut. Misalnya, kuaternion mungkin mewakili sumbu (1,1,2) dan rotasi radian 1. Kuaternion membawa informasi berharga, tetapi kekuatan sebenarnya berasal dari dua operasi yang dapat Anda lakukan pada mereka: komposisi dan interpolasi.

Melakukan komposisi pada kuaternion mirip dengan menggabungkannya. Komposisi dua kuaternion dicatat seperti ilustrasi berikut.

ilustrasi notasi kuaternion

Komposisi dua kuaternion yang diterapkan pada geometri berarti "putar geometri di sekitar sumbu₂ dengan rotasi₂, lalu putar di sekitar sumbu₁ dengan rotasi₁." Dalam hal ini, Q mewakili rotasi di sekitar sumbu tunggal yang merupakan hasil dari penerapan q₂, lalu q₁ ke geometri.

Dengan menggunakan interpolasi kuaternion, aplikasi dapat menghitung jalur yang lancar dan masuk akal dari satu sumbu dan orientasi ke sumbu lainnya. Oleh karena itu, interpolasi antara q₁ dan q₂ menyediakan cara sederhana untuk menganimasikan dari satu orientasi ke orientasi lainnya.

Ketika Anda menggunakan komposisi dan interpolasi bersama-sama, mereka memberi Anda cara sederhana untuk memanipulasi geometri dengan cara yang tampak kompleks. Misalnya, bayangkan Anda memiliki geometri yang ingin Anda putar ke orientasi tertentu. Anda tahu bahwa Anda ingin memutarnya r₂ derajat di sekitar sumbu₂, lalu memutarnya r₁ derajat di sekitar sumbu₁, tetapi Anda tidak tahu quaternion akhir. Dengan menggunakan komposisi, Anda dapat menggabungkan dua rotasi pada geometri untuk mendapatkan satu kuaternion yang merupakan hasilnya. Kemudian, Anda dapat menginterpolasi dari yang asli ke kuaternion yang disusun untuk mencapai transisi yang lancar dari satu ke yang lain.

Pustaka utilitas D3DX mencakup fungsi yang membantu Anda bekerja dengan kuaternion. Misalnya, fungsi D3DXQuaternionRotationAxis menambahkan nilai rotasi ke vektor yang menentukan sumbu rotasi, dan mengembalikan hasil dalam kuaternion yang ditentukan oleh struktur D3DXQUATERNION . Selain itu, fungsi D3DXQuaternionMultiply menyusun quaternion dan D3DXQuaternionSlerp melakukan interpolasi linier bulat antara dua kuaternion.

Aplikasi Direct3D dapat menggunakan fungsi berikut untuk menyederhanakan tugas bekerja dengan kuaternion.

Aplikasi Direct3D dapat menggunakan fungsi berikut untuk menyederhanakan tugas bekerja dengan tiga vektor komponen.

Banyak fungsi tambahan yang menyederhanakan tugas menggunakan vektor dua dan empat komponen disertakan di antara Fungsi Matematika yang disediakan oleh pustaka utilitas D3DX.

Sistem Koordinat dan Geometri