55 utenti della rete istituito questa curiosit ': [Spiegami] Perché i computer non possono creare curve?
Ogni software di modellazione 3D utilizza semplicemente una serie di poligoni piatti, abbastanza piccoli da apparire curvi, per creare sfere ecc. Perché? Perché la tecnologia ancora oggi può trovare più facilmente il rendering letteralmente di milioni di piccoli triangoli, rispetto a una sola curva?
Ed ecco le risposte:
Loro possono. In 2D, la grafica vettoriale può disegnare curve usando spline . Se usi un programma di grafica vettoriale come Adobe Illustrator o un formato immagine come SVG vedrai di prima mano che stai lavorando con curve morbide che non diventano mai frastagliate, non importa quanto ingrandisci.
Per la grafica 3D, viene chiamata una tecnica comune Geometria solida costruttiva . Puoi ingrandire un modello CSG per quanto vuoi e continuerà ad essere fluido. Molti programmi CAD usano una tecnica chiamata NURBS per specificare superfici curve come ali di aeroplano e carrozzerie di automobili.
Ma spesso gli sviluppatori non usano queste tecniche perché il rendering è più lento. La causa principale è che i poligoni si adattano in modo naturale al tipo di parallelizzazione che può fare una moderna scheda grafica, mentre non lo sono le tecniche per gestire le superfici curve. Una moderna scheda grafica avrà oltre 1, processori funzionanti in parallelo. Una moderna pipeline grafica prenderà i vertici di un modello 3D, lo ruoterà e lo ridimensionerà nella scena, lo trasformerà in triangoli, utilizzerà una trama per dipingerlo su uno schermo 2D con un buffer z, quindi applicherà vari shader ed effetti in cima di quello, tutto all'interno della GPU, il tutto con un fattore di parallelismo di 1, 000. È molto difficile per le tecniche più fantasiose competere con quello!
Non esiste davvero nulla del genere una curva. Solo cose che assomigliano così tanto alle curve da molto lontano, questo è ciò che le chiamiamo.
Dipingere una curva su un muro? Sono solo milioni di gocce di vernice. Lettere su carta? Milioni di piccole macchie di inchiostro. Il fondo rotondo delle tazze di vetro? Attraverso un microscopio, vedrai i singoli granelli di vetro, più come una spiaggia che una linea liscia. La curva attorno al bordo della luna? Sembra solo un cerchio perfetto da quaggiù. Lassù, ci sono migliaia di montagne.
Lo stesso vale per tutte le forme. Non esiste una cosa del genere. Non ci sono triangoli o quadrati. Solo cose a forma di triangolo, quadrate.
Nel mondo reale è facile trovare trilioni di cose, perché le cose possono essere piccole come un granello di polvere. Nel mondo dei computer, tutto deve essere contato prima di essere disegnato. Un computer può contare alto e veloce, ma non può andare per sempre. Alla fine deve smettere di contare e dire al monitor cosa mostrarti. Se funziona duro e disegna dieci milioni di punti e puoi ancora vedere dove si trova ogni punto, non sembrerà ancora molto simile a una curva. Sembrerà appuntito!
Ma abbiamo qualche asso nella manica. Diciamo ai computer di disegnare curve migliori tagliando automaticamente le linee e curvandole da sole. Più tempo diamo loro, meglio funziona, così CGI può richiedere curve piuttosto realistiche, mentre il tempo medio di utilizzo quotidiano non sarà affatto formoso.
La tua premessa non è corretta. Non tutti i software di modellazione 3D sono limitati a triangoli. 3D Studio Max, ad esempio, può modellare forme con vere superfici curve.
Per quanto riguarda il motivo per cui la maggior parte dei motori 3D utilizza triangoli invece di curve, è semplicemente perché sono più veloci e più facili da gestire. Una curva spline è esponenzialmente più matematicamente complessa di un triangolo piatto. “La tecnologia anche oggi” non cambierà questo fatto matematico.
E le singole superfici curve sono raramente approssimate con “milioni” di triangoli. Con Gouraud o Phong che consente di ombreggiare un oggetto può apparire realisticamente sinuoso con solo poche centinaia o anche una dozzina di poligoni.
Loro possono. NURBS. B-Splines razionali non uniformi. Anche la grafica vettoriale lo usa per. I driver grafici lo traducono in un raster per lo schermo o la stampante, ma le curve stesse sono equazioni matematiche.
Non tutti i software 3D sono limitati ai poligoni (in particolare triangoli e quad) Cinema 4D, per esempio, ha strumenti di modellazione NURBS completi.
La verità è che tutti i principali pacchetti 3d hanno un metodo per modellare con curve, spline, ecc. Quando si esegue il rendering, si sta semplicemente descrivendo la curva come un numero di passi / angoli in pixel. Calcolare l'illuminazione, i riflessi, le rifrazioni acceleri i calcoli suddividendo il modello in piani piani di triangoli, lo stesso per deformazioni, fisica, ecc. Si tratta solo di semplificare e velocizzare. Un cerchio costruito da 40 (8 gradi) triangoli sembra un cerchio e non hai nemmeno bisogno della metà di quelli se è in background e / o in movimento.