Bagikan melalui


Sistem Koordinat (Direct3D 9)

Biasanya aplikasi grafis 3D menggunakan dua jenis sistem koordinat Kartesius: tangan kiri dan tangan kanan. Dalam kedua sistem koordinat, sumbu x positif menunjuk ke kanan, dan sumbu y positif menunjuk ke atas. Anda dapat mengingat arah mana titik sumbu z positif dengan mengarahkan jari tangan kiri atau kanan Anda ke arah x positif dan mengurasinya ke arah y positif. Arah titik jempol Anda, baik menuju atau menjauh dari Anda, adalah arah titik sumbu z positif untuk sistem koordinat tersebut. Ilustrasi berikut menunjukkan kedua sistem koordinat ini.

ilustrasi sistem koordinat kartesius tangan kiri dan kanan

Direct3D menggunakan sistem koordinat sebelah kiri. Jika Anda memindahkan aplikasi yang didasarkan pada sistem koordinat dengan tangan kanan, Anda harus membuat dua perubahan pada data yang diteruskan ke Direct3D.

  • Balik urutan simpul segitiga sehingga sistem melintasinya searah jarum jam dari depan. Dengan kata lain, jika simpulnya adalah v0, v1, v2, teruskan ke Direct3D sebagai v0, v2, v1.
  • Gunakan matriks tampilan untuk menskalakan ruang dunia dengan -1 arah z. Untuk melakukan ini, balik tanda _31, _32, _33, dan _34 anggota struktur D3DMATRIX yang Anda gunakan untuk matriks tampilan Anda.

Untuk mendapatkan jumlah apa ke dunia dengan tangan kanan, gunakan fungsi D3DXMatrixPerspectiveRH dan D3DXMatrixOrthoRH untuk menentukan transformasi proyeksi. Namun, berhati-hatilah untuk menggunakan fungsi D3DXMatrixLookAtRH yang sesuai, membalikkan urutan pemusnahan backface, dan menjabarkan peta kubus yang sesuai.

Meskipun koordinat kidal dan tangan kanan adalah sistem yang paling umum, ada berbagai sistem koordinat lain yang digunakan dalam perangkat lunak 3D. Misalnya, tidak biasa bagi aplikasi pemodelan 3D untuk menggunakan sistem koordinat di mana sumbu y menunjuk ke arah atau jauh dari penampil, dan sumbu z menunjuk ke atas.

Secara resmi, orientasi sekumpulan vektor dasar (yaitu sistem koordinat) dapat ditemukan dengan menghitung penentu matriks yang ditentukan oleh sekumpulan vektor dasar tertentu. Jika penentunya positif, dasarnya dikatakan berorientasi "positif" (atau tangan kanan). Jika penentunya negatif, dasarnya dikatakan berorientasi "negatif" (atau tangan kiri). Untuk penjelasan tentang apa itu determinan, lihat sumber daya aljabar linier apa pun.

Secara informal, Anda dapat menggunakan "aturan tangan kanan/kiri" untuk menentukan apakah sekumpulan vektor dasar tertentu membentuk sistem koordinat tangan kanan atau kiri.

Operasi penting yang dilakukan pada objek yang ditentukan dalam sistem koordinat 3D adalah terjemahan, rotasi, dan penskalaan. Anda dapat menggabungkan transformasi dasar ini untuk membuat matriks transformasi. Untuk detailnya, lihat transformasi(Direct3D 9) .

Ketika Anda menggabungkan operasi ini, hasilnya tidak komuttif; urutan di mana Anda mengalikan matriks penting.

Sistem Koordinat dan Geometri