Când ne îndreptăm atenția către grafica 3D, constatăm că cele mai comune abordări au mai multe în comun cu grafica vectorială decât cu grafica raster. Adică, conținutul unei imagini este specificat ca o listă de obiecte geometrice. Tehnica este denumită modelare geometrică. Punctul de plecare este construirea unei „lumi 3D artificiale” ca o colecție de forme geometrice simple, aranjate în spațiu tridimensional. Obiectele pot avea atribute care, combinate cu proprietățile globale ale lumii, determină aspectul obiectelor. Adesea, gama de forme de bază este foarte limitată, incluzând poate doar puncte, segmente de linie și triunghiuri. O formă mai complexă, cum ar fi un poligon sau o sferă, poate fi construită sau aproximată ca o colecție de forme mai de bază, dacă nu este considerată ea însăși de bază. Pentru a realiza o imagine bidimensională a scenei, scena este proiectată din trei dimensiuni în două dimensiuni. Proiecția este echivalentul fotografierii scenei. Să vedem cum funcționează totul puțin mai detaliat.
În primul rând, geometria… Începem cu un spațiu 3D gol sau „lume”. Desigur, acest spațiu există doar conceptual, dar este util să ne gândim la el ca fiind real și să-l putem vizualiza în minte. Spațiul are nevoie de un sistem de coordonate care asociază fiecare punct din spațiu cu trei numere, denumite de obicei coordonatele x, y și z ale punctului. Acest sistem de coordonate este denumit „coordonate ale lumii”.
Vrem să construim o scenă în interiorul lumii, alcătuită din obiecte geometrice. De exemplu, putem specifica un segment de linie în scenă dând coordonatele celor două puncte finale ale sale și putem specifica un triunghi dând coordonatele celor trei vârfuri ale sale. Cele mai mici elemente constitutive cu care trebuie să lucrăm, cum ar fi segmentele de linie și triunghiurile, se numesc primitive geometrice. Diferite sisteme grafice pun la dispoziție diferite seturi de primitive, dar în multe cazuri doar forme foarte simple, cum ar fi liniile și triunghiurile, sunt considerate primitive. O scenă complexă poate conține un număr mare de primitive și ar fi foarte dificil să creăm scena dând coordonate explicite pentru fiecare primitivă individuală. Soluția, așa cum ar trebui să ghicească imediat orice programator, este de a grupa primitivele în componente reutilizabile. De exemplu, pentru o scenă care conține mai multe automobile, am putea crea un model geometric al unei roți. Un automobil poate fi modelat ca patru roți împreună cu modele ale altor componente. Și am putea folosi apoi mai multe copii ale modelului automobilului în scenă. Rețineți că, odată ce un model geometric a fost proiectat, acesta poate fi utilizat ca o componentă în modele mai complexe. Aceasta se numește modelare ierarhică.
Să presupunem că am construit un model al unei roți din primitive geometrice. Când acea roată este mutată în poziția din modelul unui automobil, coordonatele tuturor primitivelor sale vor trebui ajustate. Deci, ce am câștigat exact construind roata? Ideea este că toate coordonatele roții sunt ajustate în același mod. Adică, pentru a plasa roata în automobil, trebuie doar să specificăm o singură ajustare care se aplică roții în ansamblu. Tipul de „ajustare” utilizat se numește transformare geometrică (sau transformare geometrică). O transformare geometrică este utilizată pentru a ajusta dimensiunea, orientarea și poziția unui obiect geometric. Atunci când realizăm un model al unui automobil, construim o roată. Apoi aplicăm patru transformări diferite modelului roții pentru a adăuga patru copii ale roții la automobil. În mod similar, putem adăuga mai multe automobile la o scenă aplicând transformări diferite aceluiași model de automobil.
Cele trei tipuri de bază de transformări geometrice se numesc scalare, rotație și translație. O transformare de scalare este utilizată pentru a seta dimensiunea unui obiect, adică pentru a-l face mai mare sau mai mic cu un factor specificat. O transformare de rotație este utilizată pentru a seta orientarea unui obiect, prin rotirea acestuia cu un anumit unghi în jurul unei axe specifice. O transformare de translație este utilizată pentru a seta poziția unui obiect, prin deplasarea acestuia cu o anumită cantitate față de poziția sa inițială.
Sursa: David J. Eck, Introduction to Computer Graphics (Eck), LibreTexts, licența CC BY-NC-SA 4.0. Traducere și adaptare Nicolae Sfetcu
Descoperă mai multe la MultiMedia
Abonează-te ca să primești ultimele articole prin email.




Lasă un răspuns