Bisakah saya mengetahui perbedaan antara ketiganya? Contoh yang baik akan bertambah juga.
Bisakah saya mengetahui perbedaan antara ketiganya? Contoh yang baik akan bertambah juga.
Jawaban:
Koordinat dunia berada di dasar dunia permainan Anda. Posisi 3D dari semua objek pada akhirnya ditentukan dalam ruang dunia, baik secara langsung atau melalui hierarki simpul. Tanah, bangunan, pohon, dan benda-benda stasioner lainnya akan diperbaiki di ruang dunia. Perhitungan gameplay dan fisika akan dilakukan di ruang dunia (mungkin dengan beberapa recentering lokal untuk tujuan presisi, jika dunia besar). Sumbu koordinat dunia sering diambil untuk mewakili arah kompas, seperti X = timur, Y = utara, Z = naik.
Koordinat lokal dilampirkan ke objek (ada satu ruang koordinat lokal untuk setiap objek). Sumbu dapat mewakili sesuatu yang bermakna bagi objek, misalnya X = maju, Y = kiri, Z = naik untuk objek seperti karakter, kendaraan, senjata, dll. Yang memiliki orientasi yang melekat. Ketika objek bergerak, hubungan antara ruang lokal dan dunia (seperti yang diungkapkan oleh matriks transformasi) akan berubah. Misalnya jika Anda membalikkan mobil Anda terbalik, sumbu Z lokal ("atas" di ruang lokal) sekarang akan menunjuk "turun" di ruang dunia.
Koordinat kamera atau tampilan adalah koordinat lokal yang terpasang pada kamera. Ini masih merupakan sistem koordinat 3D, tanpa proyeksi atau apa pun, tetapi dengan sumbu yang disesuaikan dengan orientasi layar: biasanya X = kanan, Y = naik, Z = mundur. Transformasi dari dunia ke ruang melihat sering dikenal sebagai "view matrix".
Koordinat ruang klip adalah keluaran koordinat oleh vertex shader: koordinat yang telah diterapkan matriks proyeksi, tetapi bukan pembagian perspektif. Ini adalah ruang 4D (homogen). (Dunia, lokal, dan ruang tampilan adalah 3D dengan implisit w = 1.) Dinamakan demikian karena ini adalah ruang di mana kliping dan pemusnahan tampilan terjadi (secara konseptual, setidaknya).
Koordinat perangkat yang dinormalisasi , juga dikenal sebagai "ruang layar" walaupun istilah itu sedikit longgar, adalah apa yang Anda dapatkan setelah menerapkan pembagian perspektif ke koordinat ruang klip. Koordinat 3D sekarang mewakili posisi 2D titik di layar, dengan X dan Y di [−1, 1], bersama dengan kedalaman dalam kisaran buffer kedalaman, Z di [0, 1] untuk D3D atau [−1, 1 ] untuk OpenGL. Orientasi sumbu adalah X = kanan, Y = atas, dan Z dapat berupa maju atau mundur tergantung pada konfigurasi buffer kedalaman.
Koordinat perangkat adalah koordinat piksel 2D dalam target render, dengan (0, 0) di sudut kiri atas, X = kanan, Y = bawah. Seseorang tiba di koordinat perangkat dengan menerapkan transformasi viewport ke koordinat perangkat yang dinormalisasi; viewport mengontrol pixel offset dan resolusi gambar yang muncul pada target render. Satu hal yang penting untuk dicatat adalah bahwa koordinat perangkat bukan nilai integer; mereka bukan indeks piksel. Mereka adalah sistem koordinat 2D kontinu, menggunakan unit berukuran piksel, tetapi di mana nilai fraksional (subpixel) benar-benar valid. Pusat piksel terletak pada 0,5 offset (seperti 0,5, 1,5, 2,5, ...) dalam sistem koordinat ini.