QuickDraw 3D - Viitorul este 3D

Imaginati-vă că puteti să copiati dintr-un program de modelare 3D un obiect 3D, cu toate proprietătile sale grafice incluzând texturi si umbre, să zicem într-un banal procesor de texte, unde să aveti posibilitatea să-l rotiti sau, de ce nu, să navigati în jurul lui.QuickDraw 3D - Viitorul este 3D

Dorin Pitigoi

Imaginati-vă că puteti să copiati dintr-un program de modelare 3D un obiect 3D, cu toate proprietătile sale grafice incluzând texturi si umbre, să zicem într-un banal procesor de texte, unde să aveti posibilitatea să-l rotiti sau, de ce nu, să navigati în jurul lui.Dorin pitigoi

QuickDraw 3D (QD3D), livrat prima oară cu modelele Power Mac 8500 si 9500, este un API (Application Programming Interface) 3D avansat, ce operează la nivelul sistemului de operare fiind virtual transparent, al cărui scop primar este crearea, manipularea, prezentarea si transportarea graficii 3D. În acest API sunt reunite elementele de ghidaj ale interfetei de utilizare, un set de unelte, un format grafic 3D consistent numit 3D Meta File (3DMF), un motor geometric de nivel înalt cu elemente avansate ca NURBS, arhitectura de umbrire si randare, si aptitudinea pentru "plug & play". Apple a păstrat acelasi mod de implemenatare modulară ca la QuickTime, creînd o arhitectură deschisă pentru adăugarea unor noi componente, precum acceleratoare hardware sau modele de "shader". La ora actuală este disponibil numai pentru Power Mac-uri (nu rulează pe Mac-urile cu MC 680x0 datorită cerintelor superioare pentru calculul în virgulă flotantă pe care coprocesoarele matematice CISC ale acestei serii nu le pot asigura), unde are nevoie de minim 16 MB RAM, dar în curînd va avea si o implementare pentru Windows (pentru Pentium si P6).

API-ul QD3D

Ca si stuctură de constructie internă, API-ul este organizat sub forma unei biblioteci de cod partajat (Shared Cod Library) si se accesează de către orice aplicatie prin chemări la Macintosh Toolbox prin QD3D Manager care este de tipul cod fragmentat (Code Fragment Manager). Cum operatiile în care este implicat QD3D se desfăsoară intensiv în RAM, mărimea acestuia influentează performantele, desi biblioteca QD3D se încarcă în memorie numai dacă o aplicatie o cheamă.

Asa cum am amintit, unul din cele mai importante componente este formatul de fisier 3DMF. El contine practic orice fel de informatie 3D pe care utilizatorul o poate crea, incluzînd toate tipurile de geometrii si obiecte, plus texturi, lumini, "shaders", camere de luat vederi, proprietăti ale materialelor, etc. 3DMF permite partajarea imaginilor 3D între aplicatii si platforme cu usurinta cu care este posibil acelasi lucru cu imaginile 2D sau cu video clipurile QuickTime. Ca alcătuire internă a fisierului sunt suportate ambele tipuri, text si binar.

Primul pas în formarea unui model 3D este crearea acestuia din elemente geometrice de bază. La ora actuală QD3D suportă următoarele tipuri de primitive geometrice:

Este posibilă si salvarea în acelasi fisier a mai multor reprezentări 3D ale aceluiasi obiect, de exemplu în versiunile NURBS si poligonală.

Fiind o arhitectură deschisă , pot fi create aplicatii care să atribuie date specifice obiectelor 3D, cum ar fii diferite informatii legate de proprietătile materialelor pentru un program de calcul de structuri sau informatii de inventar pentru o bazăde date formată din astfel de obiecte.

Standard, sunt incluse patru tipuri de lumini: ambient, directională, punct si pată, dar este posibilăsi definirea de tipuri particulare. Pentru studiul comportamentului luminii, QD3D oferă trei modele de iluminare: Null, Lambertian si Phong. Primul este utilizat cînd nu se utilizeazănici un efect de lumină, următoarele două oferind diferite nivele de complexitate si calitate. Cum aceste modele sunt implementate prin asa zisii "shaders", practic se pot adăuga altele noi. Un „shader" aplică informatiile sau atributele materialelor asupra elementelor geometrice din care este format un obiect 3D. Transformările de bază sunt rotiri arbitrare, scalări, matrici, cu optiunea pentru transformări particulare. Camerele de luat vederi sunt specializate pe trei tipuri de imagini: perspectivă, plan si ortogonală. Randarea, procesul în care se creazăun model sintetic al scenei pe baza informatiei geometrice si tinînd cont de atributele suprafetei, de lumini si de unghiul camerei de luat vederi, este ultima fază de lucru a QD3D-ului. Sunt incluse douătipuri de randare, unul "wireframe" si altul interactiv. Adăugarea unor noi astfel de tipuri se face fie printr-o extensie, fie printr-un accelerator hardware, fie printr-o combinatie a acestora, completînd biblioteca QD3D cu metode ca "tray tracing" sau chiar "radiosity", recunoscute pentru naturaletea imaginilor randate.

Manipularea unui obiect 3D constă în crearea, alterarea, asamblarea sau inluderea acestuia într-o scenă prin folosirea unei varietăti de unelte. Acest lucru este posibil prin interfata de utilizare inclusă în QD3D, reprezentată de o colectie de unelte pe care dezvoltatorii le pot exploata pentru a usura munca utilizatorului în executarea operactiunilor amintite. Apple introduce cu QD3D un nou tip de unelte, "widgets". Aceste noi unelte sunt atasate unui obiect, astfel căutilizatorul poate actiona interactiv cu ele asupra acestuia, putînd modifica de exemplu punctul de vizualizare, pozitia obiectului sau sursa de lumină. Ca si la alte componente ale API-ului, se pot adăuga noi tipuri de îwidgetî. ën ajutorul navigării în 3D s-a introdus suportul pentru dispozitive de intrare 3D cum este Magellan de la Logitech. Aceste unităti au sase grade de libertate, înclinare longitudinalăprecizată, deviere si rotatie, permitînd navigarea într-un spatiu 3D cu mare usurintă si precizie.

Alte facilităti de extindere a functionalitătii QD3D sunt acceleratorii hardware si suportul pentru procesarea paralelăsi distribuită. Acesta din urmăface posibilăparticiparea statiilor dintr-o retea la definitivarea unuia sau mai multor proiecte complexe simultan, reducînd considerabil timpul alocat pentru randare.

Aplicatii

Ce înseamnăpentru dezvoltatori, si în primul rînd pentru utilizatori, aparitia acestei noi arhitecturi? Să le luăm pe rînd. Ca si multe alte tehnologii revolutionare introduse de Apple, precum QuickTime, QuickTime VR, PowerTalk, AppleScript, QuickDraw GX, etc., si QuickDraw 3D va trece prin aceleasi procese de adoptare de către dezvoltatori. Acestia fie vor adăuga aplicatiilor lor suport pentru el, fie vor crea aplicatii noi. Este foarte interesant de observat evolutia pe care o are software-ul pentru Macintosh după ce Apple introduce o nouă arhitectură. De exemplu, de la intoducerea lui QuickTime si aparitia primei aplicatii creată special pentru acesta, Adobe Premiere, numărul aplicatiilor ce suportă QuickTime a crescut neîncetat, dînd un impuls extraordinar pietei de multimedia si video digital. Putem spune că sunt putine aplicatiile care nu beneficiază de măcar una din aceste arhitecturi. Desigur, existăsi realizări ce nu au avut succesul scontat, cum este QuickDraw GX care, cu toate facilitătile sale tipografice excelente, este privită încă cu neîncredere de companii ca Adobe, Quark si Macromedia. Să nu divagăm. QD3D este o nouă experientă pentru utilizatorii 3D traditionali, dar în mod cert va atrage si alti utilizatori din domeniul graficii video, DTP sau din altele mai putin uzuale, ca cel al bazelelor de date. Specular Infini-D 3.1, premiat anul acesta cu MacUser Eddy Award pentru cel mai bun program de modelare 3D si Electric Image Animation System 2.5, clasat cu premiul pentru cel mai bun program de animatie 3D, alături de alte programe ca Strata Vision Studio Pro, au deja integrat suport pentru această arhitectură. Aceste aplicatii nu sunt dependente de QD3D, ele pot fii utilizate si fără prezenta acestuia în sistem, dar pot importa/exporta meta formatul 3D si eventual utilizează randarea interactivă. 3D-ul poate fi utilizat în numeroase feluri si pentru editarea video. Un model 3D este inclus într-o secventă video si animat în timp real. Canto Software oferăprodusul Cumulus PowerPro, o bază de date dedicată pentru imagini, care pe lîngă PICT, filme QuickTime si un număr de alte formate, poate stoca si 3DMF. Firma Graphisoft a inclus pentru produsul ArchiCAD 4.55 o extensie pentru exportul în 3DMF, astfel că un proiect creat în acest program poate fi vizualizat sau editat în orice aplicatie compatibilă cu QD3D. De asemenea, viitoarele versiuni de ArchiCAD vor exploata si alte facilităti ale API-ului. Altă beneficiară imediată este piata de jocuri. în ultima vreme tot mai multe jocuri aruncă utilizatorul într-o lume virtuală 3D. Teoretic o pleiadă de jocuri ca Myst, Doom sau Dark Forces pot utiliza QD3D pentru animatia 3D.

Acceleratori 3D

Cîteva companii exploatează deja suportul pentru acceleratoare hardware al QD3D, altele au anuntat că vor intorduce astfel de cartele în viitor. Aceste cartelele acceleratoare sunt numai pentru arhitectura PCI aflată în modelele 7200, 7500, 8500 si 9500, dar nu este imposibil să aparăsi cartele NuBus, desi, costul acestora va fii mai mare ca la PCI. 3D Labs produce un procesor grafic numit GLINT 3D, capabil să proceseze 300 000 de poligoane/sec. cu tot cu atributele de texturi, umbrire si "antialiasing", cu informatiile de culoare pe 32 biti.

Apple QD3D Accelerator Card. Componentele de bază ale acestei cartele sunt două ASIC-uri pentru randare si alte operatii, un cache SRAM de 128 KB si 512 KB memorie SRAM alocată pentru texturi. Cu ea randarea în QD3D este accelerată de 12 ori, la valorile de 120 000 poligoane/sec. De asemenea, sunt accelerate procesele de umbrire Gouraud, aplicarea de texturi, transparentă (unicul accelerator pentru acest atribut) si Constructive Solid Geometry (CSG-aplicarea unei functii booleene unui grup de obiecte, utilă pentru aplicatii CAD si detectarea coliziunilor). Memoria alocată pentru texturi face posibilă utilizarea de pînă la 12 texturi în fiecare ferestră deschisă . O altă facilitate unicăa acesteia este faptul că accelerează orice buffer video, indiferent cîte subsisteme video contine computerul. Mai multe astfel de cartele pot coexista într-un singur sistem pentru ridicarea performantelor.

Yarc Screamer. Acestă cartelă coprocesor accelereză procesorul GLINT 3D la performantele sale maxime. Cu propriul procesor RISC AMD 29040 de 32 biti, memorie si sistem de operare, poate fii considerată mai degrabă un computer separat ce execută operatiile grafice complicate, în timp ce procesorul Mac-ului are grijă de operatiile de I/O. Este accelerată metoda Gourand pentru umbrire, dar nu si aplicarea de texturi.

Matrox Millenium. Proaspăt venită din lumea PCI a PC-ului, Millenium este de fapt o cartelă video cu 2 sau 4 MB WRAM (Window RAM) extensibili la 4 sau 8 MB, controlată de un procesor Matrox de 64 biti, rezolutiile suportate ajungînd la 1600*1200 pixeli. Functiile 3D accelerate includ umbririle netede, aplicarea de texturi, transfocare, rotire panoramică si navigare în scena 3D.

Alte companii ca Radius, EA Research si ATI, au intentii de a intra în aceastăpiată. Conform unor informatii deocamdată neoficiale, Radius va produce două astfel de cartele, diferentiate de pret si de puterea de procesare. EA Research si ATI vor adăuga cartelelor lor video suport pentru accelerare QD3D cam în acelasi fel ca Matrox.

Gata de lucru

Peste 30 de firme au anuntat că vor integra în aplicatiile lor suport pentru QD3D sau vor produce componente hardware pentru el. Asa cum QuickTime a devenit standardul de facto pentru video digital, este foarte posibil ca si QD3D să devină limbajul 3D al computerelor personale. Comparatia cu video digital nu este întîmlătoare. în ultimii 3 ani de zile am văzut cum Mac-ul a devenit capabil să realizeze proiecte de neconceput fără o statie grafică puternică. Acelasi lucru este posibil si pentru 3D. Alte tehnologii de la Apple, precum QuickTime VR, vor lucra în strînsă legăturăcu QD3D, furnizînd utilizatorului deliciile si savoarea schimbării modului în care acestia interactionează cu computerul lor. 1996 va fii anul 3D-ului!


(C) Copyright Computer Press Agora