Rumah > Artikel > hujung hadapan web > [WebGL] [asas] model bukan berkulit
dari kedudukan tempatan/model kepada kedudukan ruang klip akhir
Tiga Transformasi Maxtrix:
Unjuran: Matriks Transformasi Unjuran
ubah lihat sistem koordinat kepada klip sistem koordinat ruang
Lihat: Lihat Matriks Transformasi
ubah sistem koordinat model kepada lihat sistem koordinat(gerakkan kedudukan kamera)
Model: Matriks Transformasi Model
ubah koordinat tempatan menjadi model sistem koordinat/sistem koordinat dunia permainan(koordinat mutlak)
Kedudukan: Koordinat setempat bucu
sistem koordinat tempatan(sistem koordinat relatif)
asal usul sistem koordinat kedudukan dan model ditakrifkan oleh pembangun berdasarkan keperluan.
sistem koordinat dunia dan model yang bertindak balas dengan model dan data matriks kedudukan dengan hormat:
Absolute(World) Y+ axis Y (0, 1, 0) | | Local(Model) Y+ axis | | / | | / | | | ---------- o (1, 0, 1) ← Local(Model) Origin ---- Local X+ axis | / | | / | | / | | / | | / | |______________________/______|__________ X (1, 0, 0) Absolute(World) X+ axis / Local(Model) Z+ axis / / / Z (0, 0, 1) Absolute(World) Z+ axis
Dalam WebGL, matriks disimpan dalam urutan lajur-utama, yang mempengaruhi susunan matriks dan susunan pengiraan. Kaedah storan ini mempengaruhi cara matriks ditakrifkan dan digunakan dalam WebGL. Berikut ialah beberapa amalan biasa apabila bekerja dengan matriks lajur utama dalam WebGL:
M = | m11 m21 m31 m41 | | m12 m22 m32 m42 | | m13 m23 m33 m43 | | m14 m24 m34 m44 |
Dalam WebGL, matriks ini diwakili sebagai tatasusunan satu dimensi dalam susunan lajur utama:
const matrix = [ m11, m21, m31, m41, // First column m12, m22, m32, m42, // Second column m13, m23, m33, m43, // Third column m14, m24, m34, m44 // Fourth column ];
gl.uniformMatrix4fv(location, false, matrix);
Di sini, palsu menunjukkan bahawa matriks tidak boleh ditukar. Memandangkan WebGL menggunakan susunan lajur utama secara lalai, pastikan format data sepadan dengan keperluan ini, kerana perpustakaan Matematik standard JavaScript mungkin menggunakan susunan baris utama secara lalai.
Matriks terhasil M boleh dinyatakan sebagai hasil darab matriks transformasi T, R dan S:
M = T ⋅ R ⋅ S
Dalam persamaan ini:
Dalam susunan lajur utama, jujukan ini mula-mula menggunakan penskalaan, kemudian putaran, dan akhirnya terjemahan.
biar modelMatrix = mat4.create();// buat matriks Identiti
Absolute(World) Y+ axis Y (0, 1, 0) | | Local(Model) Y+ axis | | / | | / | | | ---------- o (1, 0, 1) ← Local(Model) Origin ---- Local X+ axis | / | | / | | / | | / | | / | |______________________/______|__________ X (1, 0, 0) Absolute(World) X+ axis / Local(Model) Z+ axis / / / Z (0, 0, 1) Absolute(World) Z+ axis
Atas ialah kandungan terperinci [WebGL] [asas] model bukan berkulit. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!