Attualmente sto cercando di capire alcune cose sulla rasterizzazione della grafica vettoriale e sui diversi modi in cui viene implementata in vari tipi di applicazioni.
Ho testato e confrontato alcuni programmi e ho notato che esiste una grande differenza nel modo in cui l'antialiasing si comporta nel processo di rasterizzazione. Sono particolarmente interessato al comportamento di rendering in Illustrator . Capirai perché leggendo oltre.
Per i miei test, ho usato una composizione davvero semplice di triangoli organizzati in un esagono irregolare con colori diversi.
Software di grafica vettoriale
Ecco tre rendering della stessa grafica vettoriale in Illustrator, Affinity e Inkscape. (L'immagine prodotta in Affinity e Inkscape è esattamente la stessa.)
Come puoi vedere, c'è una linea bianca indesiderata su ciascuno dei bordi nell'immagine renderizzata con Affinity e Inkscape. L'antialiasing non riempie questa area con un colore solido che si traduce in un piccolo spazio tra le forme adiacenti.
Sebbene non vi sia spazio nel rendering di Illustrator, i bordi delle forme appaiono uniformi come il rendering Affinity.
Ecco un'immagine che mostra la stessa area di ogni immagine ingrandita.
C'è una differenza molto sottile tra le due immagini. Il rendering Affinity è leggermente più fluido, ma è quasi impossibile vedere la differenza quando si guardano le immagini nelle loro dimensioni originali.
browser
Rendering in formato SVG
La visualizzazione della stessa grafica esportata come SVG in un browser è molto simile all'immagine raster prodotta da Affinity e Inkscape.
Esistono differenze minuscole nell'antialiasing dei bordi (che non vale davvero la pena mostrare qui) ma la rasterizzazione SVG nei browser comuni si comporta praticamente allo stesso modo.
Rendering scomposto
Testando ulteriormente il rendering di Illustrator, ho provato a dividere parti della mia grafica ed esportarle singolarmente, quindi componendole di nuovo insieme con un software di editing raster.
In teoria si tradurrebbe nella stessa immagine di averlo in un singolo pezzo, ma il risultato è leggermente diverso usando questo metodo.
Come mostrato, quando le due parti sono composte, c'è un piccolo spazio tra loro. Sebbene sia più sottile, è molto simile alla grafica resa in Affinity.
Rendering poligonale
Blender (software 3D)
Blender ti consente di importare file SVG e manipolarli come oggetti curva. Ecco l'immagine importata mostrata nel viewport 3D. (Per impostazione predefinita, il materiale sarà influenzato dalle luci della scena. Il controllo della proprietà senza ombre nel pannello delle proprietà del materiale consentirà il rendering delle forme con i loro colori originali.)
Ecco un rendering in SVG all'interno di Blender.
Non ha alcun divario tra i triangoli. È molto probabile che altri software 3D funzionino allo stesso modo. Quindi Blender si comporta proprio come Illustrator , oppure? Forse è il contrario?
Le vere domande
- Quale libreria di disegni vettoriali utilizza Illustrator dietro le quinte?
- È possibile che Illustrator utilizzi una sorta di motore di rendering 3D? È open source? (probabilmente no?)
- Qualcuno delle librerie di disegno vettoriale ben note come Cairo e Skia può ottenere lo stesso comportamento di rendering? (Nessuno spazio tra le forme)
- C'è qualche libreria di disegno vettoriale meno conosciuta là fuori che ha lo stesso comportamento?