Creeaza.com - informatii profesionale despre


Cunostinta va deschide lumea intelepciunii - Referate profesionale unice
Acasa » referate » informatica » calculatoare
SOFTware - placi video 3D

SOFTware - placi video 3D


SOFTware

- placi video 3D -

- procedee de creare a efectelor 3D -

Introducere si putin hardware



Una din componentele de cea mai mare importanta a unui sistem de calcul este placa video. Ea controleaza tot ceea ce apare pe monitor. Alaturi de procesor si memorie (RAM si Hdd), placa video poate avea un rol hotarator in modul de executie al programelor, mai ales al celor ce se folosesc la proiectare si al jocurilor.

Daca pana acum cativa ani, importanta placii video era scazuta, aceasta avand o memorie de maxim 1 MB Ram, cele mai raspandite fiind cele de 512 Kb, in timp aceasta important a crescut, existand astazi placi cu 12 MB, ce pot fi puse si in paralel. O alta evolutie a lor se observa in principiul de prelucrare a informatiei si modul de formare a imaginii, astfel, daca acum cativa ani toate placile erau 2D astazi firmele producatoare se intrec in domeniul 3D.

Alegerea placii video este un lucru greu datorita ofertei bogate existente pe piata. Trebuie avut in vedere in primul rand care este prioritatea: raport pret/performanta sau performanta cat mai ridicata. Daca la display-uri cel mai important criteriu este considerat calitatea imaginii afisate, la placile grafice aceasta cade pe locul doi, lasand pozitia de frunte vitezei.

In industria placilor grafice au avut loc modificari rapide. Intrarea firmei Intel pe aceasta piata a starnit protestele celorlalti producatori de acceleratoare grafice, care au acuzat gigantul microprocesoarelor ce vrea sa obtina monopolul si pe aceasta piata, folosindu-se de faptul ca detine o pozitie dominanta pe piata CPU-urilor si a seturilor de cipuri pentru placile de baza.

Desigur, pe concurentii lui Intel nu i-ar deranja daca i740 ar costa peste 100 de dolari, dar firmei din Santa Clara i s-a reprosat ca a vandut aceste cipuri la preturi de dumping. Desigur, a urmat o scadere generala a preturilor, si pentru prima oara in istoria placilor grafice am putut vedea rapidele placi dotate cu "motoare" Matrox si ATI la preturi de sub 100, respectiv 50 $. Bineinteles si S3, care oricum avea preturile cele mai mici, a trebuit sa mai taie din ele, pentru a-si mentine produsele atractive si in noile conditii.

De fapt, care este merele avantaj al placilor cu i740? Ele aduc lumea 3D la picioarele utilizatorului de rand, reprezentand un mare pas in ceea ce priveste calitatea si viteza pentru o placa relativ ieftina. Acceleratorul sau 3D este foarte bine realizat, spre deosebire de cel din ViRGE, de exemplu, care este mai curand un decelerator. Nu mai pomenim chipset-urile Trident si Cirrus Logic, odinioara atat de populare, care au disparut aproape complet, desi ultimele versiuni nu sunt atat de rele in 2D pe cat erau predecesoarele lor. Revenind la i740 ViRGE il surclaseaza la partea 2D. Un dezavantaj al unor placi i740 este pretul destul de ridicat. Astfel, la un pret prea mare, ele risca sa concureze nu cu banalul ViRGE, ci cu o redutabila pereche 3Dfx Voodoo 1 + ViRGE, care depaseste i740 la viteza atat in 2D, cat si in 3D, fara a mai vorbi de calitatea graficii 3D a lui Voodoo, pe care nici un alt cip dintr-o placa de sub 100 de dolari no o atinge.

Exista deocamdata doua tipuri de porturi pentru placile video: AGP si PCI. Se observa o diferenta de viteza intre cele doua tipuri, bineinteles in favoarea AGP-ului, dar nu atat de mare pe cat o sugereaza rata teoretica maxima de transfer: 532 Mb/s pentru AGP si 133 Mb/s pentru PCI. Aici mai intervine si viteza procesorului, in cazul testului fiind un Pentium II la 400 MHz, unul din cele mai rapide procesoare actuale. Pe procesoare medii cum ar fi Pentium II la 233MHz, diferenta de viteza se reduce. Comparand rezultatele obtinute de o placa AGP cu cele ale aceleiasi placi, dar pe PCI, s-a constatat ca si rezolutia si adancimea culorii influenteaza diferenta de viteza. Pe un PII 233, la 640 x 480 x 65K culori , nu se observa nici o diferenta de performanta intre cele doua placi. La 800 x 600 diferenta este atat de mica, incat poate conta doar pentru cifra in sine, pentru ca in practica nu se va simti deloc. De abia la 1024x768 placa AGP este sensibil mai rapida, deoarece cantitate de date depaseste posibilitatile bus-ului PCI. In orice caz este de dorit versiunea AGP, pentru cei care poseda acest bus pe placa de baza. Cei care au doar PCI trebuie sa se consoleze cu un accelerator PCI sau sa faca upgrade la placa de baza.

Principiul de baza al graficii 3D pe calculator este, in sine, destul de simplu: toate obiectele reprezentate sunt construite initial din poligoane. Procesorul calculeaza coordonatele colturilor acestor poligoane si le uneste apoi prin linii, astfel se formeaza un grilaj (wire-frame). Acest proces mai este numit si tesselation (to tesselate= realizarea unui mozaic). Grilajul devine cu atat mai fin cu cat are mai multe ochiuri, anume cu cat un obiect este realizat din mai multe poligoane. Pentru fiecare obiect in parte este apoi calculara pozitia geometrica, raportata la privitor. Pana in acest punct, CPU-ul - respectiv unitatea in virgula mobila FPU a procesorului - este cel care preia, in mod normal, calculele.

Din acest moment intra in joc placa grafica: pentru ca acum poligoanele trebuie acoperite cu modele (texturi), pentru a realiza suprafata corespunzatoare obiectului. Aceste modele sunt numite texturi, procesul in sine texture mapping (aplicarea texturilor). In final se apeleaza si la o serie de filtre, pentru ca obiectele sa para cat mai reale: umbre, oglindiri, detalii ale suprafetelor si transparenta - pentru a da numai cateva exemple.

Software

A mai ramas "doar" reprezentarea propriu-zisa a obiectului cu toate efectele de rigoare: renderizarea (aplicarea pe suprafata) si reprezentarea pe monitor.

Toata afacerea se complica insa din cauza diferitelor statii, pe drumul parcurs spre monitor de grafica 3D. Deoarece pana in prezent nu au fost stabilite standarde universale valabile, fiecare programator apeleaza la diferite API-uri grafice (Aplication Programming Interface interfata de programare). SI aici intra in discutie ori DirectX 5 de la Microsoft ori o interfata adaptata la anumite placi grafice ca de exemplu Glide de la 3Dfx.

Pentru ca, pe de alta parte, nu exista nici un set de functii stabilit concret pentru placi grafice 3D, nici comenzile 3D-API nu vor fi executate la fel pe diferite platforme hardware. Unele efecte pot arata total altfel pe diferite placi 3D. Uneori chiar un nou driver modifica imaginea.

Reprezentarea de imagini statice complexe nu tine totusi de domeniul placii 3D, al carui scop practic este animatia rapida din jocuri. De aceea este o serie intreaga de tehnici 3D, care asigura in final animatia fluida.

Pentru o animatie de calitate trebuie calculate cat mai multe frame-uri pe secunda. Aici intra in actiune rutine proprii ale programatorilor de cipuri. Acestea sunt secrete de firma bine pastrate, pentru ca in acest domeniu concurenta este acerba.


In cazul in care resursele sistemului nu sunt tocmai abundente (iar pentru grafica 3D nu sunt niciodata in surplus) este important ca programatorii sa ofere anumite functii, a caror aplicare ramane la latitudinea user-ilor. Astfel utilizatorul poate decide daca prefera o animatie fluida sau mai degraba, pune pret pe efecte iesite din comun, pentru ca, pentru el, calitatea imaginilor reprezentate este mult mai importanta.

Aceste optiuni 3D se gasesc de regula intru-un meniu numit Graphics Setup sau Video Options. Aici pot fi activate respectiv dezactivate efectele corespunzatoare printr-un simplu clic de mouse.

Unele jocuri solicita insa si introducerea unor parametri in linia de comanda. In acest caz nu mai exista alta sansa decat consultarea fisierelor readme.txt ale aplicatiilor sau rascolirea prin paginile Internet ale producatorilor, pentru a gasi parametrii adecvati.

Procedee de creare a efectelor 3D

In bransa 3D, termenii pentru aceste optiuni nu sunt nici pe departe uniformi. Din fericire exista cativa termeni de specialitate pentru care s-a cristalizat o definitie univoca si care se intalneste la navigarea prin diverse setup-uri 3D.

Alpha Blending:

Un procedeu de calcul pentru transparenta obiectelor, utilizat indeosebi la reprezentarea sticlei sau apei, dar si pentru flacari. Fiecarui punct al texturii I se atribuie inca o valoare, valoare Alpha, ce descrie transparenta. In mod normal, aceasta este o valoare de 8 biti, care acopera domeniul 0 (total transparent) pana la 255 (corp solid, opac). Suprapunerea mai multor obiecte partial transparente se numeste Blending.

Filtrare anisotropica a texturilor:

Procedeu de calcul, care foloseste texturarea diverselor forme de obiecte diferite metode de filtrare (an = nu, iso = egal, trop = forma), pentru ca efortul de calcul sa fie cat mai mic. Modul concret de functionare variaza de la un program la altul, insa in esenta este urmatoarea: pentru egalizarea culorilor nu se iau in considerare pixelii din imediata apropiere, ci cei "logici". Cum se ajunge la algoritmul de calcul ramane insa un secret al programatorilor.

Anti-Aliasing:

Inesteticele efecte de trepte, care apar prin reprezentarea pixelizata a liniilor, sunt ameliorate prin faptul ca printre pixelii din zona treptelor se calculeaza o medie din culoarea de fundal si cea a liniei. Acelasi efect este obtinut si prin acoperirea pixelului din fundal cu un pixel transparent de culoarea obiectului din prim plan.

Doar putine placi grafice stapanesc in prezent anti-aliasing prin hardware, astfel ca acesta este calculat de multe ori prin software. Dar acest lucru poate reduce cu pana la 40% din performanta aplicatiei.

Filtrare bilineara:

Estomparea unor trepte poate fi realizata si cu ajutorul texturilor. In acest scop se preiau din texturile alaturate cate patru elemente invecinate (texel = elemente de textura), pentru a calcula din cate doua dintre ele o noua valoare medie pentru culoare. Apoi, din cele doua rezultate se va calcula o noua medie - de unde si numele de "bilinear".

Filtrarea bilineara este un efect care contribuie considerabil la ridicarea calitatii graficii - dar si o exagerare in utilizare duce la reprezentare stearsa, spalacita. Acest efect este adecvat cu precadere pentru texturi care se afla foarte aproape de privitor (adica in prim-planul imaginar).

O extrapolare a acestui principiu duce la filtrarea "trilineara": aici se recalculeaza inca o data rezultatele filtrarii bilineare. Acest lucru necesita din nou timp de calcul, dar reprezentare poate fi si mai mult imbunatatita.

Bump Mapping:

O noutate printre efectele 3D este Bump Mapping (bump = cucui), care pana acum este stapanit doar de placile Voodoo II. Pentru a obtine o distribuire cat se poate de realista a luminii si umbrelor pe texturi, se atribuie fiecarui pixel de pe textura o valoare suplimentara de adancime. In momentul in care raza de lumina cade pe un punct, se mareste luminozitatea acestuia si, implicit, se creeaza impresia ca acesta iese in evidenta.

Color Keying:

Un procedeu, prin intermediul caruia texturile pot fi definite ca partial transparente. Spre deosebire de alpha-blending, de aceasta data exista numai doua variante: pixelul texturii ori este ori nu este transparent. Color Keying apare cu precadere la reprezentarea copacilor sau gardurilor. O implementare gresita apare atunci cand spatiile goale sunt umplute cu puncte negre sau cu pixeli transparenti.

Dithering:

Recalcularea bitmapurilor cu o adancime mai mare de culoare la un nivel mai redus se numeste Dithering. Scopul acestuia este pe de o parte economisirea de resurse, deoarece calculatorul va lucra cu cat mai putine informatii de culoare pentru obiectele indepartate. Dar la nevoie, adica atunci cand privitorul urmareste se aproape o anumita textura, el are posibilitatea de a reprezenta treceri fine de culoare, cu adancime mare a culorilor. Dithering-ul trebuie sa apara cat mai fluent si fara distorsiuni de ale culorilor.

Double Buffering:

Pentru a reprezenta suprafetele reflectorizante, cum ar fi ferestrele, placa grafica calculeaza obiectele din jurul acestora si sursele de lumina.

In acest mod imaginea devine mai realista, mai ales daca este in miscare. Pe de alta parte insa, Enviroment Mapping necesita si foarte multa putere de calcul.

Fogging:

Fogging simuleaza, dupa cum sugereaza si numele (fog = ceata), ceata sau dupa caz, si smog, vapori sau amurg. Este un efect adecvat pentru scenele care se desfasoara in natura. Fogging-ul se foloseste insa si pentru a reduce numarul de poligoane pentru a pastra in anumite limite necesarul de putere de calcul: un obiect disparut in ceata nu mai trebuie calculat.

Lens Flaring:

Este un efect special care imita reflectarea razelor de soare, care cad intr-un anumit unghi pe un obiect (unghiul de vedere al privitorului). Obiectivul poate scoate in evidenta in acest mod - in functie de context - un parbriz sau un cockpit.

Acest efect este foarte eficace in medii unde spectatorul trebuie sa se uite in sus, adica spre soare.

Mip Mapping:

In functie de distanta la care se afla privitorul se folosesc bitmap-uri cu diferite rezolutii pentru aceeasI textura (Mip = Multum in parvo, adica ceva de genul "mult in putin"). Cu cat este mai aproape obiectul de privitor, cu atat este mai mare rezolutia selectata, pentru a evita o reprezentare grosiera. Insa pentru obiectele aflate in departare se poate pastra o rezolutie mai mica, diferenta oricum nu se poate vedea - si se economiseste din necesarul de putere de calcul. Va fi insa problematica trecerea de la o treapta de rezolutie la alte (Level of details, pe scurt LODs).

Corectarea perspectivelor:

Suprafetele, care se intind din prim-plan spre fundal, sunt banal, dar adevarat in fata mai mari decat in spate. Daca se incearca economisirea de timp de calcul, neluand in seama toti vectorii spatiali, ne vom confrunta cu distorsiuni si rotatii nenaturale ale texturilor.

Shading:

Umbrele sunt foarte importante pentru o reprezentare 3D realista. La inceputurile acceleratoarelor 3D se folosea Flat Shading pentru calcularea umbrelor, unde fiecarui poligon i se atribuia o singura valoare de luminozitate. Astazi s-a impus mai performantul Gouraud Shading. Calcularea valorii de luminozitate pentru fiecare colt al poligonului face ca obiectul sa aiba umbriri mult mai fluide.

Z-Buffering:

Un procedeu, la care se iau in considerare, in afara de informatiile de pozitie orizontala (x) si cea verticala (y), si adancimea (z). Coordonata z permite stabilirea pozitiei tuturor obiectelor vizibile privitorului. Avantajul: Obiectele invizibile nu trebuie calculate. Un minim pentru Z-buffer este o adancime de 16 biti, rezultate mai bune oferind noile placi grafice, care pot reda cu 8 MB Video-RAM si un Z-buffer de 32 biti.

Viitorul in 3D

Atata timp cat concurenta din sectorul 3D va ramane atat de acerba, cum este in momentul de fata, producatorii de placi grafice vor veni in permanenta cu tot felul de noi termeni sonori si senzationali. Faptul ca nici chiar Microsoft nu a reusit sa impuna un standard dovedeste dinamica acestui domeniu.

Bibliografie

1.CHIP Computer Magazin Nr.9

2.CHIP Computer Magazin Nr.11

3.Byte Nr. Martie

Autor

Sandu Mircea Bogdan, grupa 151.





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.