Ubah modelMatrix
Apabila menggunakan fungsi glm::lookAt untuk menetapkan matriks model, hasil yang tidak dijangka boleh timbul. Untuk mencapai transformasi yang diingini, pemahaman tentang matriks model dan peranannya dalam saluran grafik adalah perlu.
Matriks Model
Matriks model mentakrifkan lokasi, orientasi , dan skala objek dalam ruang dunia. Ia mengubah kedudukan bucu daripada ruang model kepada ruang dunia.
Matriks Pandangan dan Matriks Tayangan
Matriks pandangan menukar bucu dari angkasa dunia untuk melihat ruang, berbanding dengan kamera kedudukan dan orientasi. Matriks unjuran menukar bucu daripada ruang paparan kepada ruang klip, di mana keratan berlaku.
Menubah Model
Untuk menetapkan kedudukan dan orientasi objek sama seperti tetapan kamera, matriks model boleh diubah suai mengikut langkah berikut:
Laraskan yang ketiga lajur (paksi-z) dengan menafikan elemennya:
m_Orientation[3][0] = -m_Orientation[3][0]; m_Orientation[3][1] = -m_Orientation[3][1]; m_Orientation[3][2] = -m_Orientation[3][2];
Dalam pelorek bucu, gunakan penjelmaan dalam susunan ini:
gl_Position = CameraMatrix * ModelMatrix * Pos;
Koordinat Puncak
Untuk meletakkan bucu dengan betul dalam tempat kejadian, pembolehubah Pos harus mewakili kedudukan bucu dalam ruang objek. Ini memerlukan menukar koordinat bucu daripada ruang model kepada ruang objek.
Dengan mengikut arahan ini, anda boleh menggunakan fungsi glm::lookAt dengan berkesan untuk menetapkan matriks model dan meletakkan serta menghalakan objek dengan betul dalam pemandangan anda.
Atas ialah kandungan terperinci Bagaimana untuk Mengubah Matriks Model dengan glm::lookAt untuk Penempatan Objek yang Tepat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!