Metodi Numerici per la Grafica  

VIOLINO

Progettazione, modellazione e resa con XCMODEL

Autore:
Patrizio M.

Data di consegna: 31 gennaio 2000




Sommario


1. Introduzione
2. Descrizione
3. Procedura del lavoro
3.1  Reperimento materiale
3.2  Progettazione su carta
3.3  Studio della modellazione
3.4  Studio del sistema Xcmodel
3.5  Immissione dei dati
3.6  Modellazione dell'oggetto
3.7  Scrittura del codice
3.8  Resa dell'oggetto
3.9  Scrittura della relazione
4.  Download modello

1. Introduzione

Il progetto consiste nel realizzare un'esperienza significativa di modellazione con resa realistica.

Pertanto mira alla creazione di oggetti tridimensionali utilizzando i pacchetti xccurv, xcsurf, xcrayt messi a disposizione dal sistema Xcmodel.

Obiettivo particolare del progetto in questione e' la progettazione e la generazione di un VIOLINO definito mediante superfici nurbs.

I file da me prodotti sono stati raggruppati nell'archivio Violino.tar.gz:

2. Descrizione oggetto

Strumento a quattro corde di grande cantabilità ed espressività, è il più piccolo e acuto strumento della famiglia dei cordofoni.

Le corde in genere sono fatte di nylon o di metallo o di budella di ovini che vengono strofinate e sono più o meno tese a seconda di produrre più o meno acuti.

Esse sono fatte vibrare da un archetto formato da circa 150 sottilissimi crini.

Il violino è composto da:

Violino moderno
Fig. 1: Violino moderno

3. Procedura del lavoro

3.1 Reperimento del materiale

Per la realizzazione del violino è stato necessario trovare una adeguata documentazione, sia riguardo alle immagini in svariate angolazioni e misure sia riguardo alla specifica tecnico-compositiva.

Il materiale è stato reperito facendo uso di testi didattici, di recensioni musicali e anche di risorse disponibili da Internet.

Invece la manualistica dei pacchetti di modellazione e resa è stato trovato assieme al sistema stesso.

Non è stato possibile trovare l'oggetto materialmente.

3.2 Progettazione su carta

Il violino prima della modellazione è stato sottoposto a una progettazione su carta per fare in modo che le dimensioni, le conformazioni, le disposizioni fossero coerenti.

3.3 Studio della modellazione

Questa fase è servita per sistemare i punti di controllo in maniera appropriata tenendo conto di come la superficie doveva essere modellata.

Prima di tutto era necessario acquisire conoscenze riguardo all'uso delle spline e delle nurbs, in particolare riguardo all'attuazione di certe proprietà geometriche, al fine di posizionare correttamente le coordinate dei control point e lavorare successivamente sui pesi.

Sono stati visti più volte gli esempi di modellazione già disponibili, sia usuali come i solidi geometrici "classici" e sia sofisticati per poter capire meglio l'effettivo risvolto sulla modellazione. Quindi ho preso diversi file con estensione .db ed ho confrontato con la superficie relativa.

3.4 Studio del sistema Xcmodel

Con la consultazione dei manuali forniti da Xcmodel ho effettuato uno studio dell'utilizzo dei pacchetti con le funzionalità disponibili.

Sono stati molto utili in particolare durante le prime prove di installazione e le prime sperimentazioni pratiche, quando non comprendevo certi comportamenti mentre realizzavo qualche curva o superficie.

I capitoli più interessanti sono stati i formati dei file, i significati di alcuni bottoni, gli esempi dei file e le funzioni della libreria Descriptor per la scrittura del codice C.

Significativo è anche l'applicazione pratica degli argomenti studiati, così da acquisire confidenza e familiarità con il software al fine di fissare la materia trattata.

3.5 Immissione dei dati

Dopo la prova degli oggetti disponibili, ho cercato di costruirmi delle nuove forme, sia specifici del violino e sia esterni ad esso per capire l'effetto che ha sulla superficie.

Dopo una prima fase di tentativi con il mouse ho preferito fissare mediante tastiera i punti di controllo modificandoli adeguatamente e ponendoli in file .cp cosi da avere subito a disposizione la griglia di controllo facendo poi lavorare il sistema per la realizzazione della curva o superficie inserendo opportuni parametri sui nodi e sul grado dei polinomi.

Per ottenere certe forme complesse come la cassa armonica del violino sono stati necessari l'inserimento di diversi punti control point che poi venivano modificati dal programma durante il refinement o manualmente nel caso che la forma era ben lontana da quella aspettata.

3.6 Modellazione dell'oggetto

Questa è stata la fase più critica perché si è dovuto intervenire su diversi fronti ma con l'andare del tempo si è acquisito un maggiore padroneggiamento del programma e si è capito il meccanismo di realizzazione delle forme.

In un primo momento ho voluto utilizzare il pacchetto xccurv per rendermi conto di come potesse essere valido tracciare la curva e dopo vari tentativi ho scoperto che vi sono delle tecniche avanzate per la costruzione di superfici. Tra questi ho sviluppato molto superfici ruled perché si prestava molto bene per le forme da creare.

Ho iniziato con la componente più in risalto, la cassa armonica.

Per mezzo della progettazione svolta su carta ho ricavato i control point, poi mediante xcsurf ho impostato i gradi dei polinomi e i pesi così da ottenere quello voluto ed infine ho copiato la curva 3D traslandola verticalmente. Mediante il bottone skinning ho reso la rigata che interpola le due curve e per le basi ho fissato lo stesso punto tante volte quante erano i control point della curva, ho unito il tutto sempre mediante skinning e ho generato una superficie chiusa.

Stesso procedimento applicato un po' per tutte le componenti che ho dovuto realizzare, magari velocizzando il lavoro dove era possibile (es. corde) tramite copia, traslazione e rotazione.

3.7 Scrittura del codice

Ultimato il lavoro di modellazione sono passato a scrivere il codice in linguaggio C per poter ottenere il file Violino.md.

In questa fase ho tratto ispirazione dall'esempio del manuale e da oggetti esistenti, sempre adattando alle mie esigenze.

Infatti ho definito gli attributi specifici ai materiali del violino come il legno (di diverse colorazioni) e il nylon, ho reso sistematico le componenti mettendoli in opportuni ITEM, ho scelto i settaggi per le luci, il background, le posizioni della camera e alla fine ho compilato il tutto attraverso il makefile.

3.8 Resa dell'oggetto

Creato il .md desiderato ho lanciato il pacchetto xcrayt per poter operare su parti che necessitavano di ritocchi, in particolare sulla visuale, sulla ambientazione e non tanto sull'oggetto (magari solo dei miglioramenti sul colore).

Con il bottone hrayt ho visualizzato la scena e riprovando più volte sono arrivato vicino l'effetto desiderato.

Alla fine ho salvato ben 10 immagini realistiche come Violino{[}0-9{]}.hr e le ho raccolte nel file Violino.hra per poterle vederle in sequenza con xmovie.