camscape - for excellent IT solutions itkb.ro - IT knowledge base

hardware :: functiile 3d ale placilor video

Andrei
Andrei C.
TitleFunctiile 3D ale placilor video
Tagsplaca video, 3d, shader, pipeline, unified shader, display buffer, buffer, alpha blending, anisotropic, antialiasing, bump mapping, clipping, displacement map, HDR, high dynamic rank, lens flare, mip mapping, morphing, motion blur, multitexturing, perspective correction, procedural texturing, material time shadows, shadows, gpu, vpu, vram, texture, texture compression, ultra shadow, z-buffering
Desc.
CodeKBHW0003 v1.0
Date19 aprilie 2013
Noţiuni de bază
În principiu, toate plăcile video moderne sunt construite în acelaşi mod, inima acestora fiind procesorul, cunoscut şi sub numele de Graphic Processing Unit (GPU) sau Visual Processing Unit (VPU) în cazul ATi. Diferenţele sunt la nivel de arhitectură internă a procesorului grafic şi organizare a fluxului de date între GPU şi VRAM, in final toate realizând acelaşi lucru: afişarea imaginii pe ecranul monitorului. Memoria fizică a plăcii video are un rol deosebit de important, în aceasta încărcându-se practic toată gama de funcţii necesare funcţionării, precum şi texturile necesare "îmbrăcării" obiectelor afişate.
1. Shader
GPU-rile plăcilor video moderne conţin două tipuri de unităţi shader. Vertex Shader este format din mai multe poligoane de obiecte 3D poziţionate în spaţiu şi care conţin efecte de lumină. Pixel Shader determină culoarea şi transparenţa fiecărui pixel în parte în cadrul unui obiect 3D, în ideea redării unei imagini cât mai exacte a luminii abstracte.
În prezent se foloseşte pentru noile generaţii de cipuri GT200 (nVidia) şi RV770 (ATi) Shader Model 4.1 (CineFX Engine 4.1). Avantajul standardului 4.1 constă în flexibilitatea sa nelimitată. În timp ce versiunea anterioară Pixel Shader 3.0 putea schimba doar culori standard, predefinite, pentru poligoane, modelul 4.1 face acest lucru dinamic, gama de culori fiind practic infinită.
Adiţional, codul aplicaţiei 3D trebuie să suporte posibilităţile dinamice pe care le oferă modelul 4.1.
2. Pipelines, unified shaders şi display buffers
Iniţial, la baza unui pipeline a stat Shader Unit care, de curând, a preluat sarcinile mai importante sub forma modelului Unified Shaders, în locul clasicelor ROP’s. Aceste procese (shaderele) realizează practic imaginea, specificând culoarea şi poziţia fiecărui pixel în parte în matricea grafică. Procedura durează o fracţiune de secundă şi ilustrează performanţa impresionantă a GPU-urilor, care sunt dezvoltate extrem de complex în prezent. Cu ajutorul controller-elor de buffer, imaginile ajung în prima fază în memoria RAM a plăcii video pentru ca apoi să fie trimise către monitor. Ca o regulă generală, cu cât este mai mare frecvenţa procesorului, precum şi numărul şi frecvenţa shaderelor, cu atât se face mai repede redarea imaginilor de către cipul grafic. De asemenea, cu Memory Bus mărit şi o capacitate de stocare mare, controller-ele de memorie pot procesa mai rapid informaţia video.
3. Alpha Blending
Această funcţie serveşte la reprezentarea corectă a transparenţei obiectelor, cum ar fi ferestrele sau suprafeţele de apă. Valoarea culorii unui pixel primeşte o altă valoare alpha care defineşte gradul de transparenţă.
 
4. Anisotropic Filtering
Este o funcţie filtru care modifică distanţa texturilor faţă de obiectele 3D. În funcţie de tipul plăcii video, există mai multe tipuri de calitate, de la 2x la 16x. Şi aici se aplică aceeaşi regulă: cu cât performanţele matematice ale GPU-rilor sunt mai bune, cu atât creşte calitatea imaginii.
5. Antialiasing
Prin modelarea contururilor, această funcţie îndepărtează efectele de distorsionare a unui obiect.
Există două tipuri:
a) conturarea de tip AntiAliasing doar a marginilor a două poligoane alăturate într-o textură sau
b) Full Screen AntiAliasing (FSAA) care lucrează cu întreaga imagine. Calitatea şi modul în care se realizează procedura, depind de puterea procesorului video.
6. Bump Mapping
Această funcţie produce un efect tridimensional pe suprafeţele plane prin adăugarea de umbre şi furnizarea de informaţii despre structura obiectului 3D respectiv.
7. Clipping
Organizează modul de lucru al plăcii grafice, astfel încât înaintea reprezentării grafice a unui model 3D, această funcţie calculează suprafaţa poligoanelor care sunt vizibile. Datorită acestei tehnologii se pot reduce mult resursele consumate ale GPU-lui şi memoriei.
8. Displacement Mapping
Programatorii folosesc acest tip de textură pentru a crea un peisaj 3D în înălţime şi profunzime. Suprafaţa texturii se adaptează după tipul mediului, putând astfel să îşi schimbe dinamic forma şi mărimea. Modelul Shader-ului 4.1 permite această acţiune în timp real.

9. Environment Bump Mapping
Această funcţie adaugă o textură adiţională pe obiectele 3D, în care mediul înconjurător se reflectă fizic corect (apa sau sticla).
10. High Dynamic Rank
Face posibilă mărirea calităţii dinamicii în timpul reprezentării într-un spaţiu cu luminozităţi diferite. De exemplu, dacă cel care priveşte se află într-o zonă întunecată şi deodată apare o undă foarte luminoasă, atunci mediul înconjurător nu va mia fi negru ci va primi culori de intensităţi gradate din ce în ce mai deschise.
11. Lens Flares
De exemplu, dacă raza unei surse de lumină întâlneşte lentila telescopică a unui obiectiv telescopic, această funcţie va reda corect fizic cercul de lumină sau steaua luminoasă ce rezultă din acest efect.
12. Mip Mapping
Cu ajutorul acestei tehnologii, anumite texturi sunt prezentate în diferite clase de calitate. Un obiect 3D se observă foarte clar şi detaliat dacă este în plan apropiat, pe când obiectele aflate la distanţe foarte mari de observă din ce în ce mai neclar, până dispar.
13. Morphing
Cu acest efect special un obiect 3D poate fi convertit într-o altă formă.
14. Motion Blur
Este folosit la reprezentarea obiectelor 3D care se mişcă foarte repede într-un spaţiu difuz. Calea acestora şi lumea materială sunt simulate.
15. Multitexturing
În locul texturilor simple, de suprafaţă, se foloseşte această funcţie pentru obiectele 3D. De exemplu, la un butoi de metal în prima fază se construieşte o textură tipică, apoi se adaugă o textură care simulează stratul de rugină, iar în a treia fază apare reflexia caracteristică formată din combinaţia celor două texturi anterioare.

16. Perspective Correction
Vederea în ansamblu a unei suprafeţe tridimensionale apare distorsionată dacă privim în detaliu. Această funcţie copiază acest efect redând imaginea compilată greşit în plan, dar corect în perspectivă.
 
17. Procedural Texturing
Acest tip de textură este ideală pentru reprezentarea obiectelor 3D a căror formă se schimbă constant, cum ar fi mediul apei. În acest caz nu există texturi prefabricate iar suprafaţa se schimbă dinamic, în timp real.
18. Material Time Shadows
Obiectele care lasă umbre conferă lumii virtuale o viziune mult mai realistă. În cazul timpului material, umbrele apar natural în funcţie de unghiul surselor de lumină. Placa video adaugă umbra unui obiect la scurt timp după crearea imaginii principale. Această funcţie corelează apariţia umbrelor astfel încât acestea să apară în timp real.

19. Texture
Transformă un model 2D în scopul folosirii acestuia pe o suprafaţă 3D.
20. Texture Compression
Cu cât este mai mare disoluţia unei texturi, cu atât mai realist pare un obiect 3D. Cu cât se pot încărca mai multe asemenea texturi în memoria virtuală a plăcii video, cu atât accesul acestora se realizează mai uşor. Programele 3D folosesc foarte des aceste funcţii de comprimare a texturilor. Totuşi GPU-ul şi API-ul DirectX trebuie să suporte procedura de comprimare.
21. Ultra Shadow
Tehnologia de redare a umbrelor în timp real, dezvoltată iniţial de nVidia, salvează performanţele aritmetice prin calcularea urmelor lăsate de obiecte şi care se văd pe ecran. Astfel, umbrele „ascunse” din spatele obiectului nu mai sunt luate în calcul. Ultra Shadow II extinde versiunea I prin detalii „inteligente”, programatorii implementând desenarea unor margini virtuale de culoare a căror sursă de lumină este determinată de umbrele obiectului.
22. Z-Buffering
Această funcţie compară informaţiile tuturor pixelilor care se află în aceeaşi poziţie într-un spaţiu bidimensional. Astfel, se pot înlătura pixelii din spaţiul 3D al obiectului care nu sunt vizibili, înainte de reprezentarea grafică de pe monitor.