Mentransformasikan matriks Pemodelan
Soalan:
Dalam GLM, walaupun dengan mudah menetapkan ViewMatrix, menetapkan ModelMatrix menggunakan glm::lookAt menghasilkan kedudukan dan putaran yang salah untuk objek. Bagaimanakah kita boleh menyelaraskan orientasi objek dengan kedudukan kamera menggunakan glm::lookAt atau adakah kita perlu mencipta fungsi tersuai?
Jawapan:
Dalam grafik komputer, transformasi digunakan kepada objek dalam ruang 3D untuk meletakkannya dengan tepat. Tiga matriks transformasi utama terlibat dalam proses ini: ModelMatrix, ViewMatrix dan ProjectionMatrix.
Koordinat model:
Setiap jejaring dalam adegan mempunyai ruang tempatan sendiri yang dikenali sebagai ruang model. Koordinat bucu ditakrifkan dalam ruang ini dan ModelMatrix mentakrifkan kedudukan objek, orientasi dan saiz relatif dalam ruang dunia.
Koordinat dunia:
Angkasa dunia ialah koordinat sistem keseluruhan pemandangan di mana berbilang objek diletakkan.
Lihat ruang:
Ruang pandangan ditakrifkan secara relatif kepada perspektif tontonan, dengan kedudukan pandangan, garis penglihatan dan arah ke atas. Matriks songsang sistem koordinat pandangan ialah ViewMatrix, mengubah objek dari ruang dunia kepada ruang pandangan (mata).
Koordinat klip:
Koordinat ruang klip adalah homogen, membolehkan keratan tempat kejadian. Satu titik berada dalam ruang klip jika komponen x, y dan znya berada dalam julat yang ditakrifkan oleh komponen w terbalik dan komponen w bagi koordinat homogen.
Matriks unjuran:
ProjectionMatrix menerangkan pemetaan daripada titik 3D adegan kepada titik 2D port pandangan, mengubah ruang paparan kepada klip ruang.
Koordinat peranti yang dinormalkan:
Bahagian perspektif mengubah koordinat ruang klip kepada koordinat peranti yang dinormalkan dalam julat (-1, -1, -1) hingga (1, 1, 1).
Koordinat tetingkap:
Koordinat peranti yang dinormalkan ialah dipetakan secara linear ke Koordinat Tetingkap (Koordinat Skrin) dan ke kedalaman untuk penimbal kedalaman, mentakrifkan ruang pandang dan julat kedalaman.
Atas ialah kandungan terperinci Mengapa Menggunakan glm::lookAt untuk ModelMatrix Menghasilkan Kedudukan dan Putaran Objek yang Salah dalam GLM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!