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

Direct3D menggunakan sistem koordinat sebelah kiri. Meskipun koordinat sebelah kiri 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.
Simpul dan vektor
Mengingat sistem koordinat, koordinat x, y dan z dapat menentukan titik dalam spasi ("vertex"), atau arah 3D ("vektor").
Kumpulan simpul dapat digunakan untuk menentukan garis dan bentuk. Objek paling sederhana yang dapat didefinisikan oleh simpul disebut Primitif, dan objek yang lebih kompleks yang didefinisikan oleh satu set primitif disebut "jala."
Operasi penting yang dilakukan pada jala 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.
Ketika Anda menggabungkan operasi ini, hasilnya tidak komutatif; urutan di mana Anda mengalikan matriks adalah penting.
Porting dari sistem koordinat dengan tangan kanan
Jika Anda memindahkan aplikasi yang didasarkan pada sistem koordinat dengan tangan kanan, Anda harus membuat dua perubahan pada data yang diteruskan ke Direct3D:
- Balikkan 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 sebesar -1 ke arah z. Untuk melakukan ini, balik tanda _31, _32, _33, dan _34 anggota struktur matriks yang Anda gunakan untuk matriks tampilan Anda.
Topik terkait