Non-Uniform Rational B-Spline (NURBS)

Da dove viene il termine “NURBS”?

NURBS è l’acronimo di non-uniform rational B spline. Le B-Splines razionali non uniformi possono rappresentare una geometria 3D.

Perché usare le NURBS per rappresentare una geometria 3D?

Le geometrie NURBS hanno cinque importanti caratteristiche che le rendono una scelta ideale per la modellazione assistita da computer.

Esistono svariate soluzioni basate su standard industriali in grado di scambiare geometrie NURBS. Ciò consente ad un gran numero di utenti di poter intercambiare i loro modelli geometrici tra i vari programmi di modellazione, rendering, animazione ed analisi ingegneristica. Le informazioni memorizzate sulle geometrie possono essere riutilizzate anche fra 20 anni.

Le NURBS hanno una definizione precisa e ben nota. I principii matematici ed informatici delle geometrie NURBS vengono insegnati nelle maggiori università. Ciò significa che i produttori di software specialistici, i team ingegneristici, gli studi di design industriale e le case di animazione che hanno bisogno di realizzare delle applicazioni personalizzate possono trovare facilmente dei programmatori preparati in grado di lavorare con le geometrie NURBS.

Le NURBS possono rappresentare accuratamente sia oggetti geometrici standard (come linee, cerchi, ellissi, sfere o toroidi), che geometrie free-form, quali carrozzerie per automobili o corpi umani.

La quantità di informazioni richiesta per la rappresentazione NURBS di un elemento geometrico è di gran lunga inferiore alla quantità di informazioni necessaria per rappresentare la stessa geometria tramite approssimazioni mesh.

La regola di stima di una NURBS, discussa di seguito, può essere implementata su un computer in modo efficiente ed accurato.

Che cos’è una geometria NURBS?

Si può rispondere in vari modi a questa domanda. Se vi sentite a proprio agio con le formule matematiche, potete ricevere maggiori informazioni recandovi sulla sezione del sito openNURBS dedicata alla documentazione sulle NURBS (http://www.opennurbs.com/books.htm
).

Rhino usa le NURBS per la rappresentazione di curve e superfici. Curve e superfici NURBS si comportano in modo analogo, per cui la terminologia tecnica ad esse relative è pressoché la stessa. Visto che le curve sono più semplici da trattare, ci soffermeremo dettagliatamente su di esse. Rhino possiede una serie di strumenti per le superfici analoghi agli strumenti per le curve mezionati di seguito.

Una curva NURBS è definita da quattro caratteristiche: il grado, i punti di controllo, i nodi e la regola di stima.

Il grado è un numero intero positivo.

Di solito, è pari ad 1, 2, 3 o 5. In Rhino, le linee e le polilinee hanno grado 1, i cerchi hanno grado 2 e la maggior parte delle curve free-form ha grado 3 o 5. Rhino consente di lavorare con NURBS di grado massimo 32. Invece di indicare il grado della curva con il rispettivo numero, si possono usare i termini lineare, quadratico, cubico e quintico. Lineare significa di grado 1, quadratico significa di grado 2, cubico significa di grado 3 e quintico significa di grado 5.

A volte, si può far riferimento all’ordine di una curva NURBS. L’ordine di una curva NURBS è un numero intero positivo pari a (grado+1). Di conseguenza, il grado di una curva è dato da “ordine-1″.

È possibile aumentare il grado di una curva NURBS senza cambiarne la forma. Non è invece possibile ridurre il grado di una curva NURBS senza modificarne la forma. Rhino offre gli strumenti adeguati per poter modificare i gradi impostandoli su valori che vanno da 1 a 32.

I punti di controllo sono una fila di punti in numero almeno pari a (grado+1).

Uno dei modi più semplici per modificare la geometria di una curva NURBS consiste nel variare la posizione dei suoi punti di controllo. Rhino offre varie opzioni per lo spostamento dei punti di controllo. Per effettuare regolazioni freeform, basta usare il mouse per trascinare i punti di controllo. Per operazioni più precise, Rhino fornisce altri strumenti fatti su misura.

Ad ogni punto di controllo è associato un peso (ovvero, la sua capacità di attrarre la curva). Tranne che per alcune eccezioni, i pesi sono numeri positivi. Quando i punti di controllo di una curva hanno tutti lo stesso peso (di solito 1), la curva viene denominata “non razionale”. In caso contrario, è detta razionale. La lettera R dell’acronimo NURBS sta per “razionale” ed indica che una curva NURBS può essere razionale. Nella pratica, la maggior parte delle curve NURBS sono non razionali. Alcune curve NURBS (cerchi ed ellissi ne sono un chiaro esempio) sono sempre razionali. Rhino fornisce gli strumenti necessari per esaminare e modificare i pesi dei punti di controllo.

I nodi sono una fila di numeri pari a (grado+N-1), ove N rappresenta il numero di punti di controllo. Questa sequenza di numeri che precisa la definizione parametrica della curva è detta anche “vettore dei nodi”. In questo contesto, il termine vettore non sta a significare una direzione 3D.

La sequenza di numeri dei nodi deve soddisfare diverse condizioni tecniche. Di norma, per assicurarsi che queste condizioni tecniche siano soddisfatte, si richiede che i numeri siano gli stessi o maggiori man mano che si procede verso la fine della lista e si limita il numero di valori ripetuti ad un numero non maggiore del grado. Per esempio, per una curva NURBS di grado 3 con 15 punti di controllo, la sequenza 0,0,0,1,2,2,2,3,7,7,9,9,9 è una sequenza di nodi soddisfacente. La sequenza 0,0,0,1,2,2,2,2,7,7,9,9,9 non è invece accettabile perché sono presenti quattro numeri “2″ e “4″ è maggiore del grado della curva in esame (3).

Il numero di volte in cui il valore di un nodo si ripete è detto “molteplicità del nodo”. Nella sequenza di nodi soddisfacente riportata in precedenza (0,0,0,1,2,2,2,3,7,7,9,9,9), il valore del nodo 0 ha molteplicità 3, il valore del nodo 1 ha molteplicità 1, il valore del nodo 2 ha molteplicità 3, il valore del nodo 7 ha molteplicità 2 ed il valore del nodo 9 ha molteplicità 3. Si dice che un nodo ha molteplicità piena se il suo valore si ripete tante volte quante il grado. Nell’esempio, i valori dei nodi 0, 2 e 9 hanno molteplicità piena. Il valore di un nodo che figura una volta sola è detto nodo semplice. Nell’esempio, i valori dei nodi 1 e 3 sono nodi semplici.

Se una sequenza di nodi inizia con un nodo a molteplicità piena, segue con dei nodi semplici, termina con un nodo a molteplicità piena e tutti i valori sono ugualmente spaziati, i suoi nodi sono detti uniformi. Per esempio, se una curva NURBS di grado 3 con 7 punti di controllo ha una sequenza 0,0,0,1,2,3,4,4,4, i suoi nodi saranno uniformi. I nodi della sequenza 0,0,0,1,2,5,6,6,6, per esempio, non saranno invece uniformi. I nodi senza uniformità si dicono appunto non uniformi. Le lettere N ed U dell’acronimo NURBS stanno per “non uniformi” ed indicano che i nodi di una curva NURBS possono essere non uniformi.

Valori di nodo ripetuti all’interno di una sequenza di nodi rendono la curva NURBS meno smussata. Un nodo a molteplicità piena nel mezzo di una sequenza di nodi indica che c’è una zona nella curva NURBS che può essere associata ad una discontinuità
. Per questa ragione, alcuni designer preferiscono aggiungere e rimuovere i nodi e quindi regolare i punti di controllo per ottenere delle curve dalle forme più smussate o più spigolose. Rhino fornisce gli strumenti necessari per l’inserimento e l’eliminazione dei nodi. Poiché il numero dei nodi è pari a (N+grado-1), in cui N è il numero di punti di controllo, l’aggiunta di nodi comporta l’aggiunta di punti di controllo, così come la loro rimozione implica la rimozione di punti di controllo. È possibile inserire dei nodi in un curva NURBS senza cambiarne la forma. La rimozione di nodi, in genere, cambia invece la forma di una curva. Rhino fornisce un’interfaccia avanzata per la rimozione dei nodi che elimina automaticamente i nodi corrispondenti ai punti di controllo eliminati dall’utente.

Un comune malinteso è dato dal fatto di accoppiare ciascun nodo con un punto di controllo. Ciò è vero solo per le NURBS di grado 1 (polilinee). Per NURBS di grado maggiore, sono presenti gruppi di (2 X grado) nodi che corrispondono a gruppi di (grado+1) punti di controllo. Per esempio, si supponga di avere una NURBS di grado 3 con 7 punti di controllo e nodi 0,0,0,1,2,5,8,8,8. I primi quattro punti di controllo sono raggruppati con i primi sei nodi. I punti di controllo dal secondo al quinto sono raggruppati con i nodi 0,0,1,2,5,8. I punti di controllo dal terzo al sesto sono raggruppati con i nodi 0,1,2,5,8,8. Gli ultimi quattro punti di controllo sono raggruppati con gli ultimi sei nodi.

Alcuni modellatori usano obsoleti algoritmi per la stima di una NURBS e richiedono due ulteriori valori di nodo per un totale di (grado+N+1) nodi. Durante l’esportazione o importazione di una geometria NURBS, Rhino inserisce o rimuove automaticamente questi due nodi superflui a seconda del caso.

La regola di stima associa, con una formula matematica, un numero ad un punto.

Tale formula coinvolge grado, punti di controllo e nodi. Essa calcola le cosiddette funzioni base B-spline. Le lettere BS dell’acronimo NURBS stanno per B-spline. Il numero con il quale si avvia la regola di stima è detto “parametro”. Possiamo pensare alla regola di stima come ad una “scatola nera” che riceve un parametro e produce un punto. Il grado, i nodi ed i punti di controllo determinano il modo in cui lavora questa “scatola nera”.

Rhino offre degli stumenti per la stima. È possibile selezionare una curva NURBS, digitare il valore del parametro e generare il punto corrispondente.

Concettualmente, le funzioni base B-spline sono determinate dai nodi. I valori delle funzioni base B-spline in corrispondenza dei parametri determinano in che modo i punti di controllo ed i relativi pesi vengono combinati tra di loro per generare un punto. Per un maggiore approfondimento sulla regola di stima e sulle funzioni base B-spline, si possono consultare numerosi libri di testo e pagine web.

Ulteriori informazioni

http://en.wikipedia.org/wiki/NURBS

Informazioni sulle NURBS