U prethodnom primeru jedan od parametara koji se koristio za kreiranje matrice perspektivne projekcije je bio i aspect ratio. U nastavku će biti pokazano od kakvog značaja je ova vrednost.
Do sada je, u primerima, korišćen canvas
elemenat kvadratnog oblika (ista visina i širina).
U opštem slučaju canvas
je pravougaonog oblika.
Ako se pogleda primer u kom se iscrtava kvadrat i ako se napravi sitna izmena u kodu kao što je prikazano dobiće se drugačiji rezultat.
<canvas id="canvas_s1" width="600" height="400">
Iako su temena zadata tako da odgovaraju kvadratu na slici je prikazan pravougaonik. To se dešava zato što se dimenzije u radu sa 3D grafikom ne zadaju u pikselima u već u tačkama (jedinicama) i potrebno je prilikom iscrtavanja voditi računa o odnosu širine i visne viewport-a, a ta vrednost je upravo aspect ratio-u.
S obzirom da je aspect ratio predstavljen kao širina/visina dovoljno je sve y koordinate krajnje pozicije pomnožiti ovom vrednošću kako bi se dobio ispravan rezultat. Može se primetiti da ovakva transformacija predstavlja jednu vrstu skaliranja koja se može zasebno izvršavati.
Funkcija mat4.perspective
iz biblioteke glMatrix korišćena u prethodnom primeru
očekuje parametar aspect
koji se odnosi upravo na ovu vrednost.
{mat4} mat4.perspective(out, fovy, aspect, near, far)