.: Corso di Grafica a.a. 2005/06 :.
Relazione del Progetto di Grafica assegnato il 30/05/2006
Modellazione e Resa realistica di
Natura morta con mele (Paul Cezanne)
Progetto sviluppato da Giorgio Massaro, numero di matricola 0000196836.
Indice
- File da scaricare
- Panoramica del progetto
- Progettazione
- Creazione della scena
- Rese
- Bug e problemi
1. File da scaricare
L'archivio compresso
Cezanne.tgz da scaricare e'
cosi' composto:
- directory modello/ : contiene i seguenti file e directory:
-
file .db, .obj: le superfici modellate.
-
cezanne.c: script C.
-
cezanne.md, cezanne.hr, cezanne.vw, cezanne.arg, cezanne.hr
-
Imakefile e makefile
- directory textures/ : contenente varie texture.
2. Panoramica del progetto
Il progetto aveva come obiettivo quello di riprodurre la scena tridimensionale rappresentata e dipinta in un quadro.
Il quadro scelto e' la
Natura morta con mele di
Paul Cezanne.
La scena e' semplice e rappresenta un tavolo con vari oggetti: un piatto con all'interno e vicino della frutta, un bricco e sullo sfondo il muro della stanza dove si trova il tavolo.
3. Progettazione
La fase di progettazione e' stata realizzata tramite il programma
XCModel eseguito su una macchina dotata di Intel Core Duo, 1024Mb RAM, ATI X1400 e sistema operativo Suse 10.0.
3.1 Bricco
Il bricco e' composto dal corpo di forma circolare e dal coperchio dalla particolare forma esagonale. Quindi nella progettazione si sono create due differenti superfici poi successivamente riunite.
3.1.1 Corpo del bricco
Per il corpo del bricco e' stata creata una curva in 2d con
XCCurv, e la superficie corrispondente tramite rotazione con
XCSurf.
Curva bricco 2d
Superficie del corpo del bricco
3.1.2 Coperchio del bricco
Data la forma particolare del coperchio del bricco e' stato necessario creare 3 curve profilo, e poi tramite la funzione
Skinning di XCSurf creare la superficie del coperchio.
Curve del coperchio in 2d
Superficie del coperchio in 3d
3.2 Frutta
La frutta, data la sua forma regolare, e' stata creata tutta nello stesso modo: dopo aver creato la curva profilo con
XCCurv, la loro superficie e' stata ottenuta ruotando sull'asse appropriato quest'ultima in
XCSurf.
Come esempio vediamo la creazione di una limone.
Curva limone in 2d
Superficie limone in 3d
3.3 Piatto
Il piatto e' stato creato, come per la frutta, dopo aver realizzato la curva profilo tramite la rotazione di questa.
Curva piatto in 2d
Superficie piatto in 3d
3.4 Tavolo
Il tavolo e' composto da 3 parti principali: le gambe, il piano superiore e il piano inferiore.
Tavolo in 3d
3.4.1 Le gambe del tavolo
La loro forma e' stata prima disegnata in 2d. Successivamente la loro superficie e' stata creata per rotazione.
Curva della gamba del tavolo in 2d
Superficie della gamba del tavolo in 3d
3.4.2 Il piano superiore e inferiore del tavolo
I due piani che compongono il tavolo sono stati creati tramite la superficie
PLANE di
XCSurf, ridimensionati in altezza ampiezza e profondita' secondo le necessita', e dopo posti uno sopra l'altro.
Piano superiore del tavolo in 3d
Piano inferiore del tavolo in 3d
3.5 La stanza
Tutti gli oggetti fin qui descritti sono stati collocati all'interno di una stanza composta da muri soffitto e pavimento creata grazie sempre alla primitiva
PLANE di
XCSurf.
Stanza in 3d
4. Creazione della scena
Il quadro e' un primo piano degli oggetti presenti su un tavolo all'interno di una stanza. Come e' chiaro il primo piano non da' informazioni sull'ambiente circostante che quindi e' stato, dove possibile, ricostruito.
Dopo aver progettato e posizionato tutti gli oggetti e' stata costruita la scena tramite la libreria descriptor.
Tramite questa libreria e' stato possibile associare agli oggetti sulla scena specifiche texture, determinati colori, trasparenze e riflessioni, ed infine creare l'illuminazione.
4.1 Texture
Le texture sono state applicate al tavolo, ai muri della stanza e alla frutta. Dopo aver trovato le immagini, queste sono state tramutate dal loro formato originale in .ppm, di modo che poi, tramite il programma XMovie, potessero venire trasformate a loro volta in .hr, unico formato grafico accettato per applicare le texture agli oggetti.
4.2 Le luci
Sono state applicate due sorgenti luminose: una luce distant che simula la presenza di una sorgente luminosa posta a grande distanza, e una point che crea una sorgente luminosa centrata in un punto preciso della stanza come una lampada o qualcosa del genere.
5. Rese
Ecco il quadro e varie immagini della scena realizzata in 3d.
5. Bug e problemi
Il problema che mi si e' presentato piu' spesso durante la realizzazione del progetto sono stati i continui crash sia con
XCCurv, poco spesso, sia con
XCSurf, molto piu' frequentemente.
Durante l'utilizzo di
XCSurf poi i problemi di visualizzazione erano notevoli in occasioni di superfici grandi quanto l'area visualizzata. Qui sotto se ne puo' vedere un chiaro esempio con le superfici che convergono stranamente.