Le Primitive Geometriche o Parametriche sono le geometrie base per la costruzione di oggetti e scene tridimensionali. Le principali sono geometrie solide corrispondenti alle forme più semplici della geometria, come Box (Parallelepipedo), Sphere (Sfera), Cylinder (Cilindro), Cone (Cono), Pyramid (Piramide). A queste si aggiungono geometrie solide più complesse come Torus (Toroide), Tube (Tubo), Ellipsoid (Ellissoide) o geometrie di superficie come Plane (Piano). A seconda del software di modellazione utilizzato vi sono poi altre Primitive specifiche di forma particolare come per esempio ChamferCylinder (Cilindro Rifilato) e ChamferBox (Parallelepipedo Rifilato), entrambe derivanti dalle loro configurazioni base ma con la particolarità degli spigoli arrotondati.

Nelle immagini sottostanti alcune interfacce per la creazione di Primitive rispettivamente in VIZ e Rhino.

Le Primitive Geometriche possono essere costruite sia attraverso strutture Mesh che per mezzo di equazioni NURBS (Non Uniform Rational B-Spline). Le prime utilizzano un reticolo di poligoni piani per descrivere o approssimare qualsiasi superficie o solido, le seconde sfruttano la complessità e versatilità di equazioni polinomiali per individuare con precisione curve e superfici. Questi argomenti verranno approfonditi in seguito. Per questa trattazione faremo esempi relativi alla Modellazione Solida per Primitive Geometriche di tipo Mesh in quanto presentano caratteristiche di più facile comprensione iniziale, lasciando la complessità delle geometrie NURBS per la trattazione della modellazione di superfici.

La caratteristica principale delle Primitive è quella di essere parametriche, cioè di descrivere una determinata geometria solida o di superficie attraverso dei parametri.

Questi parametri riguardano le caratteristiche principali della geomatria come le dimensioni, la quantità di poligoni che le descrivono, le misure di alcune caratteristiche peculiari e la proprietà di visualizzazione interpolata matematicamente (Smooth) per le superfici curve, fra le principali. Il "funzionamento" parametrico delle Primitive è concettualmente lo stesso per i diversi tipi di geometrie che è possibile creare. Cambiano di volta in volta le caratteristiche peculiari delle varie geometrie che è possibile determinare parametricamente.

Passiamo ad osservare il comportamento delle Primitive principali: Parallelepipedo, Sfera e Cilindro.

Creando una Primitiva Box trascinando interattivamente il cursore nello spazio tridimansionale della scena e cliccando tre volte per definire prima la dimensione della base e poi l'altezza del Parallelepipedo, vediamo che l'oggetto da noi creato presenta valori relativi ai parametri Length (Lunghezza) Width (Profondità) Height (Altezza). Per il momento questi valori sono casuali perchè il Box è stato creato con il semplice trascinamento del cursore del mouse. Se avessimo voluto un oggetto con dei valori precisi per quelle caratteristiche avremmo potuto digitarle prima, in ogni caso è sempre possibile modificarle, anche in un secondo momento, tornando al livello relativo alle caratteristiche di base della Primitiva all'interno dell'Albero di Costruzione (Costruction Tree).

Parleremo in seguito dell'Albero di Costruzione. Per il momento vediamo nelle immagini seguenti che è possibile modificare i parametri Length (Lunghezza) Width (Profondità) Height (Altezza) della Primitiva Parallelepipedo tramite immissione dei valori voluti nei relativi campi (è possibile eseguire questa modifica dei valori anche tramite gli spinner o cursori sul fianco delle caselle numeriche). In questo modo è stato possibile ottenere un Box di esatte dimensioni modificando i parametri adeguati.

Oltre i parametri relativi alle dimensioni dell'oggetto, è possibile per la Primitiva Box modificare i parametri di Suddivisione o Segmentazione e cioè stabilire la quantità di poligoni di cui deve essere composta una determinata parte della geometria. Le immagini seguenti mostrano la Primitiva Box che stiamo utilizzando con valori di segmentazione diversi da quelli originali. 5 per Length Segs. (Segmentazione Lunghezza) 4 Width Segs. (Segmentazione Profondità) 3 Height Segs. (Segmentazione Altezza). In questo modo le coppie delle facce del Parallelepipedo relative alle tre direzioni sono state suddivise rispettivamente in 5 4 e 3 porzioni.

Mentre l'utilità della variazione dei parametri dimensionali è di immediata comprensione, meno lo è quella riguardante la Suddivisione. Sono due i vantaggi principali della Suddivisione: la possibilità di approssimare con maggior precisione una superficie curva per mezzo di elementi piani (per un Parallelepipedo nel caso questo venga modificato topologicamente tramita operazioni di "piegatura") e l'opportunità, ove necessario di lavorare ad un maggiore livello di dettaglio solo su determinate porzioni della geometria. Vedremo di seguito queste possibilità. In ogni caso è sempre bene non abusare della Suddivisione ma adoperarla solo se e dove serve perchè la quantità di poligoni con cui è descritta una geometria Mesh rappresenta uno dei principali fattori di "appesantimento" dei modelli e dei relativi file compromettendo la facilità di manipolazione per mezzo del software e la relativa visualizzazione tramite Rendering allungandone notevolmente i tempi di produzione.

 

La seconda Primitiva Geometrica che analizziamo è la Sfera. Come per il Parallelepipedo la Sfera è descritta da Parametri, dove i principali sono Radius (Raggio) che ne determina la dimensione, Segments cioè il valore di Suddivisione o Segmentazione e la proprietà di visualizzazione interpolata matematicamente (Smooth). Qui di seguito abbiamo riportato una Sfera creata per trascinamento nello spazio tridimensionale quindi con un Raggio non preciso, e con una Segmentazione di 24.

Come è possibile constatare nella visualizzazione sia Shaded (Ombreggiata) che Wireframe (Reticolo) contemporaneamente nel caso della Sfera la Suddivisione ha una influenza diretta sull'aspetto della geometria. In base al concetto già esposto della creazione di superfici curve per approssimazione di queste tramite piccoli elementi piani noti come poligoni (nel sistema Mesh) maggiore è il numero di Segments migliore è il risultato in termini di rotondità della Sfera stessa.

In associazione alla Segmentazione, nel caso di primitive composte del tutto o in parte da superfici curve e lavorando congeometrie di tipo Mesh, è di fondamentale importanza la proprietà di visualizzazione interpolata matematicamente (Smooth). La Suddivisione da sola non è in grado di simulare perfettamente una superficie curva, a meno che non eleviamo il valore del parametro Segments in maniera esponenziale tanto da compromettere il funzionemento del software o ancor più del computer, per cui è il programma stesso attraverso un algoritmo di calcolo a darci l'impressione della continuità dei poligoni che compongono la Sfera, proprio attraverso il parametro Smooth. Attraverso questa opzione il software crea una suddivisione della superficie della sfera solo relativa alla sua visualizzazione (sia sullo schermo che in fase di Rendering) interpolando di fatto i poligoni adiacenti che compongono la superficie.

Negli esempi seguenti è possibile vedere la stessa Sfera, visualizzata nella finestra prospettiva nella sola modalità Shaded (Ombreggiata) e non Wireframe (Reticolo), sia con il parametro Smooth attivo che disattivo e aprezzarne la notevole divverenza di visualizzazione a parità di Segmentazione. Pur avendo a disposizione l'opzione Smooth è sempre necessario un valore di Suddivisione non troppo basso (neanche troppo alto in base a quanto già detto), sia per un suo corretto ed efficace finzionamento sia perchè l'opzione Smooth non interviene sul bordo della superficie curva, mostrandone in tal modo la vera identità.

Gli altri parametri della Sfera riguardano caratteristiche geometriche più particolari, come la possibilità di creare una sfera parziale sia in senso verticale generando quindi una Calotta (Hemisphere) sia in senso radiale una Porzione di Sfera (Slice).

Come già detto nella pagina iniziale del corso, a causa di una evidente quanto necessaria opera di sinteticità di queste lezioni, per questo e per futuri argomenti si consiglia il lettore di compiere delle prove e delle esercitazioni in prima persona delle parti solo accennate ma anche di quelle più approfondite per una miglior constatazione del funzionamento degli strumenti e delle tecniche.

 

La terza Primitiva analizzata è il Cilindro. Questa presenta caratteristiche parametriche simili sia al Parallelepipedo che alla Sfera. La Primitiva Cilindro è caratterizzata dai parametri dimensionali Radius (Raggio) che ne descrive la dimensione della base ed Height (Altezza) cioè quello relativo allo sviluppo in altezza. I parametri riguardanti la Segmentazione permettono di modificare la Suddivisione della superficie principale del Cilindro sia lungo lo sviluppo rettilineo della verticale (Height Segments) con le stesse finalità della Segmentazione relativa alle faccie piane della Primitiva Parallelepipedo e cioè per una migliore modificabilità e lavorabilità nel dettaglio, sia lungo la sua curvatura (Sides) con le stesse finalità della Segmentazione della Primitiva Sfera e cioè per una migliore approssimazione della curvatura stessa della superficie principale. E' presente inoltre la possibilità di segmentare le due faccie piane tramite una serie di poligoni concentrici e radiali (Cap Segments).

E' presente anche per il Cilindro l'opzione Smooth cioè la proprietà di visualizzazione interpolata matematicamente, per la quale valgono le considerazioni già fatte parlando della Primitiva Sfera. Per visualizzare anche qui gli effetti del "lavoro" congiunto della Segmentazione e dell'algoritmo di calcolo Smooth proviamo dapprima ad abbassare il valore della Segmentazione Sides a 5 (era 24) e osserviamo l'effetto. Il Cilindro a base circolare è diventato un Cilindro a base poligonale (pentagonale) ma presenta delle "sporcature". Questo perchè la funzione Smooth non riesce più ad interpolare le superfici piane contigue in quanto il valore dell'angolo compreso fra due poligoni adiacenti in senso radiale è sceso sotto il valore di soglia impostato per un corretto funzionamento dell'algoritmo. A conferma di ciò se eliminiamo l'opzione Smooth il Cilindro diventa "pulito" mostrandoci meglio la sua natura di solido reticolare (Mesh) composto da pilogoni piani interpolati ove necessario per simulare la continuità di una superficie curva.

Gli ulteriori parametri relativi alla Primitiva Cilindro permettono di creare solo una porzione di questa (Slice).

Dipo aver illustrato le caratteristiche principali delle Primitive Geometriche o Parametriche passiamo a mostrare il passo successivo in un ipotetico percorso di modellazione e cioè quello relativo alle Deformazioni Parametriche. Altre metodologie di lavoro, all'interno di un iter progettuale, susseguenti la creazione di Primitive, come le Operazioni Booleane o la modifica della struttura Mesh, verranno illustrate in seguito sia in questa lezione che nelle prossime.

caad_2003 tutorial

Tutorial - sistemi vettoriali 3D

francesco.deluca@uniroma1.it

02 - Primitive Parametriche

01 - 03 - 04 - 05 - 06