Modellazione e Rendering grafico 3D mini-HOWTO Dave Jarvis v1.1, 27 March 2001 Dettagli sul download ed istruzioni di installazione per un ambiente di sviluppo grafico di rendering e modellazione usando Linux RedHat. Traduzione a cura di Ivan Baldinotti, _i_v_a_n___b_@_i_n_w_i_n_d_._i_t . ______________________________________________________________________ Indice Generale 1. Introduzione 1.1 Preambolo 1.2 Modelling vs. Modeling 1.3 Copyright Information 2. Informazioni generali 2.1 La Libreria Grafica 2.2 Il Modellatore Grafico 2.3 Il Renderizzatore Grafico 3. Istruzioni di Installazione 3.1 Attenzione 3.2 Download del software 3.3 Installazione della Libreria Grafica 3.4 Installazione del Renderizzatore grafico 3.5 Installazione del Modellatore Grafico 3.6 Fare Ordine 4. Informazioni Varie 4.1 L' Illuminazione 4.2 Tutorials 5. Links 5.1 Librerie Grafiche 5.2 Renderizzatori Grafici 5.3 Modellatori Grafici 5.4 Links Vari 6. Ringraziamenti ______________________________________________________________________ 11.. IInnttrroodduuzziioonnee 11..11.. PPrreeaammbboolloo Questo documento vi guiderà attraverso i passaggi usati per installare e configurare un ambiente per la modellazione ed il rendering tridimensionale usando Linux. In questa sezione troverete anche informazioni, in termini semplici, circa i componenti richiesti e su come interagiscono tra di loro. La sezione dell'installazione è volutamente minimale; soltanto i minimi passaggi necessari per la preparazione e l'avvio (se non dovesse funzionare, sono disponibili maggiori informazioni). Quelli che vogliono maggiori informazioni sui componenti software e su cosa fanno (in generale), possono continuare a leggere questo howto. Ci sono, almeno, tre pacchetti software che avrete bisogno di procurarvi ed installare. Sono i seguenti (nell'ordine in cui sono spiegati, non nell'ordine in cui sono installati): · una libreria grafica; · un modellatore grafico; · un renderizzatore grafico. 11..22.. MMooddeelllliinngg vvss.. MMooddeelliinngg Lo spelling _m_o_d_e_l_l_i_n_g è Canadese. Lo spelling _m_o_d_e_l_i_n_g è Americano. L'autore originale di questo documento è Canadese. ;-) 11..33.. CCooppyyrriigghhtt IInnffoorrmmaattiioonn Copyright © 2000-2001 Dave Jarvis This document may be reproduced in whole or in part, without fee, subject to the following restrictions: · the copyright notice above and this permission notice must be preserved complete on all complete or partial copies; · any translation or derived work must be approved by the author in writing before distribution; · if you distribute this work in part, instructions for obtaining the complete version of this manual must be included, and a means for obtaining a complete version provided; · small portions may be reproduced as illustrations for reviews or quotes in other works without this permission notice if proper citation is given. 22.. IInnffoorrmmaazziioonnii ggeenneerraallii Il contenuto di questa sezione esiste solo per descrivere, in generale, i tre componenti principali richiesti per la modellazione tridimensionale ed il rendering su un sistema basato su Linux. 22..11.. LLaa LLiibbrreerriiaa GGrraaffiiccaa Una libreria grafica consiste dei principali strumenti per la manipolazione di immagini grafiche. Pensate a tutte le cose necessarie per costruire una casa: l'impianto elettrico, l'impianto idraulico, il legno, i mattoni, e tutto il resto. La libreria grafica non deve essere immaginata come le cose elencate, ma piuttosto come gli strumenti usati per creare queste cose. Dopo tutto, i fili elettrici, i tubi di metallo, le assi, ed i mattoni non appaiono magicamente; piuttosto sono essi stessi creati e formati come entità. Allo stesso modo, la grafica non appare magicamente sullo schermo -- tipicamente consiste di primitive a basso livello grafico (linee, rettangoli, e pixels individuali, per esempio). Così la libreria grafica può essere pensata come le primitive a basso livello grafico usate per costruire oggetti più complessi (sfere, parallelepipedi, poligoni complessi, etc.). Questi oggetti complessi sono poi usati per costruire forme e figure più complicate. La libreria grafica installata era l'implementazione freeware di OpenGL chiamata _M_e_s_a. 22..22.. IIll MMooddeellllaattoorree GGrraaffiiccoo Poichè il renderizzatore grafico è, idealmente, completamente nascosto all'utente, ci occuperemo di esso alla fine (in aggiunta a ciò, la modellazione è il logico passo successivo se consideriamo l'analogia con la costruzione della casa). Tuttavia, quando si installa, un modellatore grafico si basa sul renderizzatore già installato. Se la libreria grafica è simile agli strumenti usati per costruire gli strumenti usati per costruire la casa (!), allora il modellatore grafico può essere pensato come gli strumenti per costruire il progetto della casa -- un sofisticato progetto, poichè il modellatore vi permette di scegliere esattamente dove mettere l'impianto elettrico, quello idraulico, i pannelli di legno, i mattoni, e così via. Inoltre, vi permette di scegliere lo stile dei pannelli ed il colore dei mattoni che desiderate. Il modellatore grafico installato era il pacchetto freeware chiamato _T_h_e _M_o_p_s, che produce files _R_e_n_d_e_r_M_a_n-compatibili. 22..33.. IIll RReennddeerriizzzzaattoorree GGrraaffiiccoo Continuando con l'analogia della costruzione della casa, il renderizzatore grafico è rappresentato dai costruttori della casa. Una volta che avete il progetto ed i materiali per iniziare, avete bisogno di qualcosa per costruire la casa così come appare nel progetto. Le informazioni sono passate al renderizzatore grafico (per esempio, il progetto nella forma di un file _R_e_n_d_e_r_M_a_n-compatibile, o di un equivalente) dal modellatore per produrre il risultato finale. Così come il modellatore grafico richiede il renderizzatore grafico prima che possa essere installato, il renderizzatore si basa sulle librerie grafiche che sono state installate precedentemente. Il renderizzatore grafico installato era il _B_l_u_e _M_o_o_n _R_e_n_d_e_r_i_n_g _T_o_o_l_k_i_t che usa i files _R_e_n_d_e_r_M_a_n. 33.. IIssttrruuzziioonnii ddii IInnssttaallllaazziioonnee Tenete a mente che queste sono istruzioni brevi; un riassunto veloce dei maggiori e più importanti dettagli che troverete elencati nei files README dei corrispondenti pacchetti software. Non è, in nessun modo, una sostituzione della lettura di quei files (poichè contengono informazioni di copyright ed altre istruzioni non necessariamente coperte da questo documento). 33..11.. AAtttteennzziioonnee Per prima cosa, sappiate che questo documento tratta solamente l'installazione e l'avvio su un sistema che usi RedHat v7.0. Ogni volta che viene lasciata la scelta del pacchetto da scaricare, assicuratevi che sia compatibile con le caratteristiche del sistema Linux sul quale avete intenzione di farlo girare. Secondo, per piacere mandate E-mail solamente se avete informazioni che potrebbero essere utili ad altre persone che volessero leggere questo documento (come per esempio la spiegazione su come installare altri strumenti, indicazioni di altri tutorials, passaggi grammaticali mancanti e/o errori di spelling e/o di digitazione, etc.). Se il software non si compila, o non riuscite a capirlo, leggete la documentazione allegata. Probabilmente il vostro sistema è completamente diverso, e l'uso di Internet via E-mail non è la soluzione giusta per risolvere i vostri problemi. ;-) Terzo, questi sono pacchetti software che si installano senza grosse difficoltà. Nella sezione dedicata ai Links, ci sono pacchetti software alternativi vicini a quelli di cui si parla in questo tutorial. Notate che se un pacchetto non è analizzato approfonditamente non significa che sia peggiore (o migliore) di quelli scelti per l'installazione. Buona Fortuna! 33..22.. DDoowwnnllooaadd ddeell ssooffttwwaarree Prima di iniziare, avrete bisogno di un web browser e di una shell per Unix. Se non sapete come si usa una shell [bash, ksh, etc.],sono fatti vostri ( sebbene abbia fornito le istruzioni sia in italiano che in comandi della shell). Dove non specificato, tutte le istruzioni sono da eseguire come root. 1. Create una nuova directory /usr/local/archives per i pacchetti: mkdir /usr/local/archives 2. Scaricate i seguenti pacchetti (nella forma ..ttaarr..ggzz ) nelle nuove directories appena create (sono dati i links alle homepages ed alle pagine di downloading, e alla versione software minima): · 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 33..33.. IInnssttaallllaazziioonnee ddeellllaa LLiibbrreerriiaa GGrraaffiiccaa Le vecchie versioni di tar non supportano l'argomento z. Se è il caso del vostro sistema, non usate l'argomento z e usate gunzip sul file prima di usare tar. 1. Spostatevi alla directory /usr/local/archives : cd /usr/local/archives 2. Estraete _M_e_s_a (sostituite il numero di versione dove richiesto): tar zxf MesaLib-3.4.1.tar.gz tar zxf MesaDemos-3.4.1.tar.gz 3. Spostatevi alla sottodirectory MesaLib : cd Mesa-3.4.1 4. Configurate, compilate, ed installate _M_e_s_a con la seguente sequenza di comandi: ./configure; make; make install 5. Editate il file /etc/ld.so.conf, ed assicuratevi che sia presente una linea come questa: /usr/local/lib 6. Fate girare il programma di configurazione della libreria dinamica: ldconfig 33..44.. IInnssttaallllaazziioonnee ddeell RReennddeerriizzzzaattoorree ggrraaffiiccoo 1. Ritornate alla directory /usr/local/archives : cd .. 2. Estraete il file _B_l_u_e _M_o_o_n _R_e_n_d_e_r_i_n_g _T_o_o_l_k_i_t (sostituite il numero di versione dove richiesto): tar zxf BMRT2.6beta.linux-glibc2.tar.gz 3. Spostatevi alla sottodirectory BMRT : cd BMRT2.6 4. Copiate i files alle appropriate directories di destinazione: cp bin/* /usr/local/bin/ cp lib/lib* /usr/local/lib/ cp include/* /usr/local/include/ 5. Fate una directory per gli shaders (ombreggiatori), assicuratevi che sia scrivibile da tutti, poi copiate i files degli shaders in essa: 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. Editate il file profile del login di sistema (/etc/profile o equivalente), e aggiungete la linea: export SHADERS=.:/usr/local/shaders 7. Copiate il file .rendribrc in ciascuna home directory degli utenti. Se qualcosa andasse storto, consultate il file README che accompagna il pacchetto _B_l_u_e _M_o_o_n _R_e_n_d_e_r_i_n_g _T_o_o_l_k_i_t, oppure visitate il loro sito web. 33..55.. IInnssttaallllaazziioonnee ddeell MMooddeellllaattoorree GGrraaffiiccoo _M_o_p_s dovrebbe essere installato per ciascun singolo utente, oppure per tutto il sistema utilizzando l'account di root (o equivalente). In questo esempio, è stato installato usando un account non amministrativo, che dovrebbe dare dei buoni risultati. Da notare che la compilazione è fallita durante l'installazione (mancava un file C header), così sono stati installati i binari (compatibili con RedHat v6.0, il vostro sistema potrebbe essere diverso), nel modo che segue: 1. Spostatevi in una directory dove volete installare _M_o_p_s. Per esempio, se volete una directory /usr/local/mops, digitate il seguente comando: cd /usr/local 2. Estraete mops (sostituite il numero dove richiesto), poi spostatevi nella sua directory: tar zxf /usr/local/archives/mops-0.42d-BMRT26-linux.tar.gz cd mops 3. Spostate i seguenti files da /usr/local/mops/src a /usr/local/mops: mv src/crtmopssh.sh . mv src/mfio.so . mv src/mops . 4. Copiate il file .mopsrc nella home directory di ciascun utente che vuole usare Mops. Per esempio, l'utente "Mara" avrebbe bisogno di digitare il seguente comando: cp src/mopsrc /home/mara/.mopsrc 5. Create la directory /usr/local/lib/mops e spostate le directories buttons e shaders: mkdir /usr/local/lib/mops/ mv buttons/* /usr/local/lib/mops/ mv shader/*.sl* /usr/local/shaders/ Se qualcosa andasse storto, consultate i files README e Setup.txt che sono inclusi nel pacchetto _T_h_e _M_o_p_s, oppure visitate il loro sito web. Abbandonate l'account di root. Loggatevi come utenti normali, e fate girare _M_o_p_s con il seguente comando: /usr/local/mops/mops Potete anche creare una sottodirectory entro la directory $HOME/mops chiamata modelli per salvare i modelli 3D creati da voi. 33..66.. FFaarree OOrrddiinnee Ora che l'installazione è completa, potete rimuovere dal vostro sistema tutti i files di cui non avete più bisogno (sostituite i numeri di versione dove richiesto). cd /usr/local/archives/ rm -rf BMRT2.6 rm -rf Mesa-3.4.1 Importante: Siate cauti nell'uso di rm -rf ... assicuratevi di essere nella directory giusta, e che siano presenti i files e/o le directories che volete cancellare. 44.. IInnffoorrmmaazziioonnii VVaarriiee Invece di una sezione dedicata alle domande più frequenti,ecco qui delle informazioni su alcuni dei problemi (maggiormente imbarazzanti) che si presentano più frequentemente. 44..11.. LL'' IIlllluummiinnaazziioonnee Il problema più frustrante, all'inizio, era capire perchè tutto apparisse nero -- e poi come illuminare realmente gli oggetti. In questi "mondi virtuali" dove state modellando gli oggetti, i mondi sono creati dal nulla. Non c'è _l_u_c_e nel mondo fino a che non ponete una sorgente di luce in esso! La sorgente di luce, poi, illumina una data direzione, ed illumina gli oggetti che si trovano sul suo percorso (in accordo con le proprietà superficiali di un dato oggetto). Assicuratevi che la vostra sorgente di luce sia: 1. puntata (ruotata e traslata) nella corretta direzione; 2. intensa abbastanza da produrre una luce realmente distinguibile. 44..22.. TTuuttoorriiaallss La cosa più semplice che una persona vorrebbe fare con dei pacchetti di modellazione/rendering è posizionare una sfera su di una superficie, aggiungere alcune luci, e poi vedere il risultato. Un tutorial decente dovrebbe descrivere questo per prima cosa. Detto questo, _M_o_p_s ha uno stupendo first tutorial . 55.. LLiinnkkss 55..11.. LLiibbrreerriiee GGrraaffiicchhee Mesa - Una Libreria Grafica OpenGL- compatibile. 55..22.. RReennddeerriizzzzaattoorrii GGrraaffiiccii BMRT - The Blue Moon Rendering Toolkit. POV-Ray - The Persistence of Vision Raytracer. 55..33.. MMooddeellllaattoorrii GGrraaffiiccii The Mops - Un pacchetto di modellazione 3D che usa BMRT. Blender - Una suite di strumenti freeware di modellazione e rendering. 55..44.. LLiinnkkss VVaarrii Ecco alcuni links che non si possono aggiungere in nessun altra categoria,nel caso siate ancora indecisi se utilizzare il vostro sistema Linux come una stazione per la modellazione 3D ed il rendering. 3D Software for Linux - Contiene la maggior parte (se non tutti) i links di questo documento ed altri ancora. 3D Modelling Software for Linux - Links ai pacchetti software principalmente indirizzati alla modellazione. 3D Modelling and Rendering using Linux - Un sito esaustivo con articoli e software che spiega ciò che ho riassunto in questo documento. 66.. RRiinnggrraazziiaammeennttii Vorrei ringraziare di cuore gli sviluppatori dei pacchetti software descritti in questo documento. La qualità del loro lavoro è paragonabile ai software commerciali, mentre tengono ancora vivo lo spirito del software libero. Ben Fatto!