Mini-HOWTO in modelarea si redarea graficii 3D Dave Jarvis v1.1, 27 Martie 2001 Detaliaza instructiuni pentru descarcarea si instalarea unui mediu de dezvoltare in modelarea si redarea grafica folosind RedHat Linux. ______________________________________________________________________ Cuprins 1. Introducere 1.1 Preambul 1.2 Modelling vs. Modeling 1.3 Informatie despre dreptul de autor 2. Informatie de fundal 2.1 Biblioteca grafica 2.2 Unitatea de modelare grafica 2.3 Unitatea de redare grafica 3. Instructiuni de instalare 3.1 Avertisment 3.2 Descarcarea software-ului 3.3 Instalarea bibliotecii grafice 3.4 Instalarea unitatii de redare grafica 3.5 Instalarea unitatii de modelare grafica 3.6 Curatare 4. Informatii diverse 4.1 Iluminare 4.2 Tutoriale 5. Link-uri inrudite 5.1 Biblioteca grafica 5.2 Unitatea de redare grafica 5.3 Unitatea de modelare grafica 5.4 Diverse link-uri 6. Aprecieri ______________________________________________________________________ 1. Introducere 1.1. Preambul Acest document va va ghida prin etapele necesare pentru a instala si configura un mediu pentru modelarea si redarea grafica tridimensionala folosind Linux. In aceasta sectiune veti gasi de asemenea informatii in termeni usori de inteles despre componentele necesare si modul in care ele se imbina. Sectiunea instalarii este intentionat minimala; doar pasii rapizi necesari pentru a porni si rula programul (daca nu functioneaza, sunt disponibile informatii suplimentare). Pentru cei care vor mai multe informatii despre componentele software si ceea ce fac ele (in general), va rog cititi in continuare. Exista, cel putin, trei pachete software de care aveti nevoie pentru a porni la drum. Acestea sunt urmatoarele (in ordinea in care sunt explicate, nu in ordinea in care vor fi instalate): · o biblioteca de grafice · unitatea de modelare grafica · unitatea de redare grafica 1.2. Modelling vs. Modeling Ortografierea 'modelling' este de origine canadiana. Ortografierea 'modeling' este de origine americana. Autorul acestui document este de origine canadiana. ;-) 1.3. Informatii despre dreptul de autor Copyright © 2000-2001 Dave Jarvis Acest document poate fi reprodus in totalitate sau doar partial, fara taxa, cu urmatoarele restrictii: · nota despre dreptul de autor de mai sus si aceasta nota privind reproducerea trebuie pastrate in toate copiile complete sau partiale; · orice traducere sau lucrare derivata trebuie aprobata in scris de catre autor, inainte de distribuire; · daca distribuiti aceasta lucrare partial, instructiunile pentru obtinerea versiunii complete trebuie incluse si de asemenea trebuie incluse si mijloacele prin care se poate obtine versiunea completa; · mici portiuni pot fi reproduse pentru a ilustra revizii sau ca citate in alte lucrari fara aceasta nota de permisiune daca se ofera recunoasterea necesara; 2. Informatie de fundal Continutul acestei sectiuni exista doar pentru a descrie, in general, cele trei componente principale necesare care se cer pentru modelarea si redarea tridimensionala cu un sistem bazat pe Linux. 2.1. Biblioteca grafica Biblioteca grafica este formata din instrumentele cele mai elementare folosite pentru manipularea imaginilor grafice. Ganditi-va la lucrurile necesare pentru a construi o casa: instalatie electrica, instalatii tehnico-sanitare, lemn, caramizi si asa mai departe. Biblioteca grafica poate fi vazuta nu ca aceste articole, ci mai degraba ca uneltele folosite pentru a crea aceste articole. De fapt, cablurile, tuburile metalice, scandurile, nu apar din senin; mai degraba ele sunt create si formate ca entitati de sine statatoare. La fel si grafica, nu apare in mod magic pe ecran -- in mod normal ea este formata din primitive grafice de nivel scazut (linii, dreptunghiuri si pixeli individuali, de exemplu). Deci biblioteca grafica trebuie vazuta ca primitive grafice de nivel scazut folosite pentru a construi obiecte mult mai complexe (sfere, cutii, poligoane complexe, etc). Aceste obiecte complexe sunt folosite apoi, pentru a construi forme si figuri si mai complicate. Biblioteca grafica instalata este implementarea freeware a OpenGL numita Mesa. 2.2. Unitatea de modelare grafica Din moment ce unitatea de redare grafica este, ideal, ascunsa complet de utilizatorul final, ne vom ocupa de aceea spre final (in plus, modelarea este urmatorul pas logic pastrand legatura cu analogia mea privind construirea casei). Dar cand este vorba de instalarea propriu-zisa, unitatea de modelare grafica este legata de cea de redare grafica, aceasta fiind deja instalata. Daca biblioteca grafica este asemenea uneltelor folosite pentru a realiza uneltele necesare pentru construirea unei case (!), atunci unitatea de modelare grafica poate fi vazuta ca instrumentul folosit pentru construirea planurilor casei -- planuri sofisticate, caci unitatea de modelare grafica va permite sa dictati unde trebuie asezate instalatia electrica, instalatiile tehnico-sanitare, panourile de lemn, caramizile si asa mai departe. In plus, va puteti alege stilul panourilor si culoarea caramizilor dupa cum doriti. Unitatea de modelare grafica instalata este pachetul freeware numit The Mops, care produce fisiere compatibile cu RenderMan. 2.3. Unitatea de redare grafica In concordanta cu analogia constructiei casei, unitatea de redare grafica reprezinta muncitorii. Odata ce aveti planurile si materialele, aveti nevoie de ceva care sa construiasca efectiva casa, astfel incat sa apara exact asa cum a fost inchipuita. Unitatea de redare grafica primeste informatii (de exemplu, schemele sub forma de fisiere compatibile RenderMan sau echivalente) de la unitatea de modelare pentru a produce rezultatul final. La fel cum unitatea de modelare grafica necesita unitatea de redare inainte sa fie instalata, unitatea de redare grafica necesita ca biblioteca grafica sa fie instalata in prealabil. Unitatea de redare grafica instalata este Blue Moon Rendering Toolkit care foloseste fisiere RenderMan. 3. Instructiuni de instalare Retineti faptul ca acestea sunt scurte instructiuni; un scurt rezumat al celor mai importante detalii veti gasi in fisierele README pentru pachetele software corespunzatoare. Nu este, sub nici o forma, un substitut pentru citirea acelor fisiere (ele contin informatii despre dreptul de autor si alte instructiuni pe care acest document nu le ofera in mod obligatoriu). 3.1. Avertizare In primul rand, trebuie stiut ca acest document ofera doar un mijloc de a porni la drum folosind RedHat v7.0. Cand aveti ocazia sa alegeti ce pachet software sa descarcati, asigurati-va de compatibilitatea cu versiunea de distributie Linux pe care o folositi. In al doilea rand, trimiteti e-mail-uri doar daca aveti informatii ce ar putea ajuta si alte persoane care citesc acest document(cum ar fi explicarea modului de instalare a altor instrumente, indicatii spre alte tutoriale, pasi lipsa, greseli gramaticale sau de ortografie etc.). Daca software-ul nu poate fi compilat sau nu va puteti descurca va rog cititi documentatia aferenta. Va rog sa intelegeti ca sistemul dumneavoastra poate fi complet diferit si de aceea depanarea problemelor prin e-mail pe Internet nu este o sarcina iubita de nimeni. ;-) In al treilea rand, acestea sunt pachete software, care au fost instalate fara dificultati majore (a se citi: dureri de cap majore). In sectiunea link-urilor inrudite se afla pachete software alternative impreuna cu cele descrise mai joc. Chiar daca un anumit pachet software nu este descris in amanuntime, acest lucru nu inseamna ca este mai slab (sau mai bun) decat cele alese pentru instalare. Succes! 3.2. Descarcarea software-ului Inainte de a incepe, veti avea nevoie de un browser web si de un shell Unix. Daca nu stiti sa utilizati un shell [bash, ksh, etc.], sunteti pe cont propriu (cu toate ca instructiunile sunt si in romana si in comenzi shell). Daca nu este specificat altfel, toate instructiunile se vor realiza ca root. 1. Creati un nou director /usr/local/archives pentru pachete: mkdir /usr/local/archives 2. Descarcati urmatoarele pachete (in forma .tar.gz) in directorul nou creat (sunt date paginile principale precum si link-urile folosite pentru descarcarea paginilor, si versiunea minima a software-ului). · Mesa Graphics Library v3.4.1: www.mesa3d.org/download.html · Blue Moon Rendering Toolkit v2.6beta: www.bmrt.org/BMRTdownload/index.html · The Mops v0.42d: www.informatik.uni-rostock.de/~rschultz/mops/download.html 3.3. Instalati biblioteca grafica Versiunile vechi de tar nu suporta argumentul z. Pentru acele sisteme, eliminati argumentul z si folositi gunzip pe fisier, inainte de a folosi tar. 1. Schimbati directorul in /usr/local/archives: cd /usr/local/archives 2. Dezarhivati Mesa (inlocuiti numarul versiunii daca este necesar): tar zxf MesaLib-3.4.1.tar.gz tar zxf MesaDemos-3.4.1.tar.gz 3. Treceti pe subdirectorul Mesa: cd Mesa-3.4.1 4. Configurati,realizati si instalati Mesa folosind urmatoarele comenzi: ./configure; make; make install 5. Editati /etc/ld.so.conf, si asigurati-va ca aveti o linie care arata astfel: /usr/local/lib 6. Lansati programul de configurare a bibliotecii dinamice: ldconfig 3.4. Instalati unitatea de redare grafica 1. Reveniti la directorul /usr/local/archives: cd .. 2. Dezarhivati Blue Moon Rendering Toolkit (inlocuiti numarul versiunii daca este necesar): tar zxf BMRT2.6beta.linux-glibc2.tar.gz 3. Treceti pe subdirectorul BMRT: cd BMRT2.6 4. Copiati fisierele in directoarele corespunzatoare: cp bin/* /usr/local/bin/ cp lib/lib* /usr/local/lib/ cp include/* /usr/local/include/ 5. Realizati un director pentru shadere, asigurati-va ca toti userii pot scrie in el, iar apoi copiati fisierele shaderelor in el: mkdir /usr/local/shaders chmod 777 /usr/local/shaders cp shaders/*.sl* /usr/local/shaders/ cp shaders/*.h /usr/local/shaders/ cp examples/*.sl* /usr/local/shaders/ cp examples/*.h /usr/local/shaders/ 6. Editati profilul de login al sistemului (/etc/profile sau echivalentul sau), si adaugati linia: export SHADERS=.:/usr/local/shaders 7. Copiati fisierul .rendribrc in directorul home al fiecarui user. Daca ceva nu merge cum trebuie, consultati fisierul README care acompaniaza Blue Moon Rendering Toolkit sau vizitati site-ul lor. 3.5. Instalati unitatea de modelare grafica Mops s-ar putea sa fie instalat pentru fiecare user sau pentru tot sistemul de catre root (sau de catre echivalentul sau). In acest exemplu, este instalat folosind un cont ne-administrativ, care ar trebui sa dea rezultate pozitive. Retineti ca procesul de compilare a esuat in timpul instalarii (un fisier header C lipsea), astfel ca fisierele binare precompilate (compatibile cu RedHat v6.0, sistemul dvs. s-ar putea sa difere) au fost instalate dupa cum urmeaza: 1. Schimbati pe directorul parinte al locatiei unde doriti ca The Mops sa se gaseasca. De exemplu, daca se doreste locatia /usr/local/mops atunci dati comanda: cd /usr/local 2. Dezarhivati The Mops (inlocuiti numarul daca este necesar), apoi treceti pe directorul lui: tar zxf /usr/local/archives/mops-0.42d-BMRT26-linux.tar.gz cd mops 3. Mutati urmatoarele fisiere din /usr/local/mops/src in /usr/local/mops: mv src/crtmopssh.sh . mv src/mfio.so . mv src/mops . 4. Copiati fisierul .mopsrc in directorul home al fiecarui utilizator care vrea sa ruleza The Mops. De exemplu, utilizatorul "jane" ar avea nevoie de urmatoarele comenzi: cp src/mopsrc /home/jane/.mopsrc 5. Creati /usr/local/lib/mops si mutati butoanele si shaderele: mkdir /usr/local/lib/mops/ mv buttons/* /usr/local/lib/mops/ mv shader/*.sl* /usr/local/shaders/ Daca ceva nu merge bine, va rog consultati fisierele README si Setup.txt care acompaniaza The Mops sau vizitati site-ul lor. Iesiti din contul de root. Logati-va ca user obisnuit si rulati The Mops astfel: /usr/local/mops/mops Ar fi de dorit sa creati un subdirector in $HOME/mops numit models pentru a salva modelele 3D. 3.6. Curatare. Acum ca instalarea este completa, puteti indeparta din sistemul dumneavoastra toate fisierele de care nu mai aveti nevoie (inlocuiti numarul versiunii unde este necesar). cd /usr/local/archives/ rm -rf BMRT2.6 rm -rf Mesa-3.4.1 Nota: Fiti atenti cand folositi rm -rf... asigurati-va ca va aflati in directorul corect si ca fisierele si/sau directoarele pe care doriti sa le stergeti sunt prezente. 4. Informatii diverse In loc de o sectiune cu intrebari fregvente, aici se afla informatii despre unele dintre problemele (aproape stanjenitoare) intalnite. 4.1. Iluminarea Cea mai frustranta problema a fost, initial, incercarea de a intelege cum de totul era negru... si apoi cum pot fi iluminate obiectele. In aceste "lumi virtuale" in care modelati obiecte, lumile sunt create de la zero. Nu exista lumina in lume pana cand nu puneti o sursa de lumina in ea! Atunci sursele de lumina vor radia pe o directie data, iluminand si lucrurile din calea lor (conform proprietatilor suprafetei obiectelor). Asigurati-va ca sursa voastra de lumina este: 1. orientata (prin rotatie sau prin translatie) pe directia corecta; 2. suficient de intensa pentru a ilumina indeajuns. 4.2. Tutoriale. Lucrul cel mai simplu pe care o persoana ar vrea sa il faca cu pachetul de modelare/redare este pozitionarea unei sfere pe o suprafata, iluminarea ei si observarea rezultatului. Un tutorial decent ar trebui sa descrie acest lucru mai intai. Acest lucru fiind spus, The Mops are un prim tutorial minunat. . 5. Link-uri inrudite 5.1. Biblioteci grafice Mesa - o biblioteca grafica OpenGL. 5.2. Unitati de redare grafica BMRT - The Blue Moon Rendering Toolkit. POV-Ray - The Persistence of Vision Raytracer. 5.3. Unitati de redare grafica The Mops - Un pachete de modelare 3D care foloseste BMRT. Blender - O suita freeware de instrumente pentru modelare si redare. 5.4. Diverse link-uri Aici se gasesc link-uri care nu se potrivesc in alta categorie, dar care merita sa fie accesate daca vreti sa folositi cu adevarat computerul dvs. Linux pentru modelare si redare 3D. Software 3D pentru Linux - Contine in mare parte (daca nu in totalitate) link-urile din acest document si altele in plus. Software de modelare 3D pentru Linux - link-uri catre pachete software referitoare in principal la modelare. Modelare si redare 3D folosind Linux - Un site usor de inteles cu articole si software ce explica ceea ce acest document rezuma. 6. Aprecieri As vrea sa multumesc celor care au dezvoltat pachetele software descrise in acest document. Calitatea produselor lor este la un nivel comercial, dar cu toate acestea mentin spiritul software-ului gratuit. Felicitari!