Bezier e Bspline

Ho ricevuto questo messaggio…che ne pensate?


Con …omesso… riesci a creare superfici di alta qualità con matematica bezier, …

… superfici di tipo Nurbs, ossia superfici le quali non hai il controllo dei CV e della qualità stessa, ritenute di scarsa qualità.

Se intendi creare superfici per scopi produttivi e di qualità, necessiterei di strumenti per creare superfici bezier.


Cosa ne pensate?

A parte la sintassi incerta,
Che e’ stato scritto da qualcuno che ama disegnare con le Bezier.

Per l’italiano penso molto male… per il fatto che dica che con le nurbs non hai alcun controllo sui cv, secondo me c’è qualcosa che non torna.
Probabilmente in tutti questi anni ho lavorato con photoshop senza accorgermene…
Ah, si, e con l’ultima frase del discorso produttivo… diciamo che certi ignoranti andrebbero presi a calci nel deretano (se vuoi vendere il tuo prodotto, esponi i pregi e i punti forti, non dire che gli altri non sono in grado di farlo mentendo spudoratamente).

Che quest’estate il sole ha picchiato forte. :wink:

Concordo con gli altri, se la persona voleva promuovere un software poteva evitare di dire bugie e casomai informarsi sui reali punti di forza o debolezze dei concorrenti, perché così ne è uscito maluccio :wink:

Per rispondere in modo più articolato:

Le curve e le superfici Bezier sono un sottoinsieme delle NURBS, in particolare quelle in cui il numero di punti di controllo è pari al grado della curva+1, e sono dette anche a singolo span.
Ad esempio curve di grado 2 con 3 punti di controllo oppure di grado 3 con 4 punti di controllo sono curve di Bezier. Aggiungendo punti di controllo si genera un nodo (knot) , che divide la curva in due span.

Per cercare di spiegare la cosa in modo intuitivo, se prendo due punti esiste una sola linea (grado 1) che passi per entrambi i punti, ma se aggiungo un terzo punto, in generale occorreranno due tratti di linea per unire i punti.

In generale le curve di Bezier hanno dei diagrammi di curvatura “puliti” perché sono descritte a parità di grado dal minor numero di punti di controllo e quindi hanno un andamento matematico più “naturale”.

Peen chi volesse approfondire questo articolo dà un po’ di informazioni: http://www.bluesmith.co.uk/nurbs2.htm

Rhino - così come altri software come Alias - dà il controllo completo sui punti di controllo e permette di lavorare sia con curve di Bezier che con curve NURBS a span multiplo. Da questo punto di vista l’affermazione originale è semplicemente falsa.

Casomai è vero che ci sono programmi - come mi sembra ICEM Surf - che obbligano l’utente ad utilizzare curve di Bezier. Sicuramente avranno strumenti specifici per questo scopo, ma alla fine l’obiettivo della modellazionne è creare geometrie di qualità, quale che sia lo strumento usato.

Nella modellazione di superfici complesse di qualità (cosiddette in classe A) i problemi di Rhino sono secondo me altri, relativi al processo di modellazione e non al tipo di matematica generato.

2 Mi Piace

Punto !

Mah …

E’ vero che la frase sul controllo dei CV mi lascia perplesso… Cosa avra’ voluto dire ?
Per il resto mi sembra piu’ una scuola di pensiero.

Se non ricordo male, tempo fa, sul forum USA un disegnatore di carrozzerie auto diceva che usare le Bezier e’ piu’ comodo. Mi sembra parlasse soprattutto di modifiche.
Modificare una Bspline mantenendo il controllo della forma forse non e’ una passseggiata. :wink:

Ad ogni modo, soprattutto parlando di software ‘generalisti’, preferisco senza dubbio poter usare sia Bezier che Bspline. :slight_smile:

Rhino quindi usa entrambe le curve?
Devo fare un corso prima o poi.

Comunque pensando a chi lo ha scritto mi vien da ridere, soprattutto leggendo il commento di Lucio. Chi scrive vi é noto… molto probabilmente ed è certamente un professionista.
Per l’italiano mi sento di difenderlo, ormai la grammatica la fanno i telefoni cellulari ormai…
…io faccio un botto di errori e poi rileggendo mi chiedo cosa gli altri abbiano capito.

Quindi converrebbe usare le curve di Bezier.

@marcoTraverso una curiosità, il fatto che l’estrusione di certe curve creano delle linee nere (non parlo di Rhino) potrebbe essere dovuto ad una curva di bezier con punti maggiori di grado+1?

Le bezier e le bspline sono un caso particolare delle nurbs.
Con Rhino puoi anche dusegnare una curva di bezier.
Nella stragrande maggioranza dei casi disegni delle bspline.

Spero di non scrivere scemate ma il grado della curva di bezier è dato dal numero di punti di controllo meno uno.
Se aggiungi un punto aumenta il grado di conseguenza.
Una curva di bezier con un numero di punti di controllo maggiore di grado + 1 … non è una curva di bezier.

Certo.
Ma, curiosamente, non c’e’ un comando apposito.
Anche se in RhinoCommon c’e’ la classe BezierCurve (ma non c’e’ BezierSurface).
In ogni caso, per disegnare a video una BezierCurve, la devi prima convertire in NurbsCurve.
( Parlo di script. Nell’uso interattivo basta disegnare una curva dai CV, o comunque col giusto grado)

Salvo quando usi archi di cerchio o superfici con isocurve a curvatura costante ( … fillet ? :smile: )
( Intendendo Bspline come non razionali … )

@luca.filippone :

E le Bezier sono un caso particolare delle Bspline.

Infatti disegnando una Bezier di solito tu gli dai solo i punti, il grado viene di conseguenza.

Come fate a valutare una superficie?
Supponendo di avere davanti una superficie di una carrozzeria auto (disegnata per scopi professionali), cosa vi parla della bontà del lavoro?

Volendo semplificare, Il primo elemento è la qualità dei riflessi: devono svilupparsi in modo fluido lungo tutta la carrozzeria. Se ci sono punti in cui si interrompono, formano degli angoli o delle ”ondulazioni” allora vuol dire che ci sono problemi.

Dal punto di vista matematico uno dei requisiti minimi è che vi sia continuità di curvatura tra tutte le superfici visibili della carrozzeria.

Però è possibilissimo avere un modello che rispetti i criteri tecnici abbia bassa qualità e viceversa.

Le superfici devono essere armoniche, avere delle curve che esaltino il dinamismo della vettura, ad esempio usando linee con una curvatura che diminuisce o aumenta progressivamente.

Con Rhino puoi fare delle valutazioni con ZebraAnalysis (sulle superfici) e con CurvatureGraph.

Tieni presente che nell’automotive design il modello CAD finale viene fatto da modellatori specializzati (al 99% diversi dai designer), sulla base di un modello di stile fisico (ad esempio in clay) scansionato in 3D, e quindi partendo da nuvole di punti. Oppure a partire da un modello digitale creato per definire la forma ma poi ricostruito per avere delle matematiche utilizzabili per la produzione.

Il modello è di qualità se riesce a descrivere bene le forme date dai designer utilizzando geometria più semplice possibile: se la stessa linea data dal designer si riesce a rappresentare con una singola curva (magari a span singolo) di grado 5 è probabilmente meglio rispetto a utilizzare due o tre tratti diversi raccordati tra loro oppure una singola curva di grado 9.

Un’ultima nota: va distinta la qualità tecnica della realizzazione dalla qualità estetica vera e propria. Oggi come oggi la tecnica è spesso molto elevata (anche quella di produzione) e troviamo vetture con un design elaborato e complesso, ma che magari sono sproporzionate o semplicemente… brutte o comunque prive di ispirazione… se invece si considerano alcune auto degli anni ‘50 e ‘60, un’epoca in cui i computer proprio non c’erano, ci sono auto che lasciano a bocca aperta ancora oggi, e la loro realizzazione - fatta praticamente a mano e pur con i limiti dell’epoca - riusciva a esaltare il design con superfici armoniche e eleganti.

Concordo ! :slight_smile:

Queste matematiche con cosa sono ottenute?

Nel mondo automotive in genere Autodesk Alias oppure ICEM Surf.

Il che non vuol dire che con Rhino non si possa ottenere un risultato analogo, però i programmi che ho indicato, oltre a costare un ordine di grandezza in più (da pagare ogni anno!), hanno funzioni dedicate a quel tipo di modellazione, d’altra parte gli utenti target di Rhino non sono le case automobilistiche.

Ciao Marco, ho letto bene il tuo post solo ora … sto usando il cellulare e per me non è il massimo visto che sono cecato.
Avevi già detto tutto tu in maniera chiara ed esauriente. :+1:

Ciao ragazzi.

Ho provato a fare un ‘giochino’ con GH (GH e’ imbattibile per i giochini ! :slight_smile: )

Abbiamo una Bspline di terzo grado.
( E’ in pratica una curva … unidimensionale, con le X come parametro e le Y come valore )

Sotto alla curva vera e propria, la definizione disegna le varie basi che costituiscono la Bspline.
( BSpline = Basis Spline, cioe’ una spline costruita da funzioni di base moltilpicate per i valori dei vari CV )
Per disegnare le basi, la definizione disegna semplicemente una curva con tutti i CV settati a zero, salvo quello corrispondente alla base.

( Oltre alla base pura e semplice, disegniamo anche quella moltiplicata per il valore del CV,
cioe’ quella che serve a costruire la nostra curva.
Su queste basi ‘scalate’ possiamo disegnare un segmentino che rappresenta il valore della curva ad un certo parametro. )

Ah, ci sono anche dei punti che servono a separare visivamente i vari span della curva.

Possiamo settare il numero di CV da 4 a 10.
Possiamo settare i valori (Y) dei vari CV
Possiamo infine dare un valore al parametro (normailzzato tra 0 e 1) per fargli disegnare i segmentini.

Lo scopo dei segmentini e’ verificare in pratica che la curva corrisponda veramente alla somma delle basi scalate con i CV.

Se (dopo un bake) misuriamo la lunghezza del segmentino sulla curva, vediamo che corrisponde alla somma delle lunghezze dei segmentini delle basi scalate.

Con 4 CV abbiamo una Bezier, se aumentiamo il numero, diventa una Bspline … generica. :wink:
bspline.gh (10,0 KB)
bspline

… Sempre ammesso di non aver fatto castronerie …

Scusate la definizione … spartana, a dir poco.

L’altezza delle basi (in Y) e’ arbitraria (scala = 10), idem lo spaziamento tra le curve-basi (15) … sorry.
La scala in X si puo’ variare da slider.

Ciao

… Spero (sono ottimista) che si capisca qualcosa … :confused:

2 Mi Piace

E chi è?

Citandoti “Quelsantuomodiemilio” posso usarlo nei corsi Rhino?