J'essaie actuellement de comprendre certaines choses sur la pixellisation des graphiques vectoriels et les différentes façons dont elle est implémentée dans différents types d'applications.
J'ai testé et comparé quelques programmes et j'ai remarqué qu'il existe une différence majeure dans le comportement de l' anti-aliasing dans le processus de tramage. Je m'intéresse particulièrement au comportement de rendu dans Illustrator . Vous verrez pourquoi en lisant plus loin.
Pour mes tests, j'ai utilisé une composition très simple de triangles organisés en hexagone irrégulier avec différentes couleurs.
Logiciels graphiques vectoriels
Voici trois rendus du même graphique vectoriel dans Illustrator, Affinity et Inkscape. (L'image produite dans Affinity et Inkscape est exactement la même.)
Comme vous pouvez le voir, il y a une ligne blanche indésirable sur chacun des bords de l'image rendue avec Affinity et Inkscape. L'anticrénelage ne remplit pas cette zone d'une couleur unie, ce qui entraîne un petit écart entre les formes adjacentes.
Bien qu'il n'y ait pas d'espace dans le rendu Illustrator, les bords des formes sont aussi lisses que le rendu Affinity.
Voici une image montrant la même zone de chaque image mise à l'échelle.
Il y a une différence très subtile entre les deux images. Le rendu Affinity est un tout petit peu plus fluide, mais il est presque impossible de voir la différence en regardant les images dans leur taille d'origine.
Navigateurs
Rendu SVG
L'affichage des mêmes graphiques exportés au format SVG dans un navigateur ressemble beaucoup à l'image raster produite par Affinity et Inkscape.
Il existe de très petites différences dans l'anti-aliasing des bords (qui ne valent pas vraiment la peine d'être présentées ici), mais la pixellisation SVG dans les navigateurs courants se comporte à peu près de la même manière.
Rendu décomposé
En testant le rendu d'Illustrator un peu plus loin, j'ai essayé de fractionner des parties de mes graphiques et de les exporter individuellement, puis de les recomposer avec un logiciel d'édition raster.
En théorie, cela donnerait la même image que de l'avoir en une seule pièce, mais le résultat est légèrement différent en utilisant cette méthode.
Comme indiqué, lorsque les deux parties sont composées, il y a un petit espace entre elles. Bien qu'il soit plus subtil, il est très similaire au graphique rendu dans Affinity.
Rendu de polygone
Blender (logiciel 3D)
Blender vous permet d'importer des fichiers SVG et de les manipuler comme des objets courbes. Voici le graphique importé affiché dans la fenêtre 3D. (Par défaut, le matériau sera affecté par les lumières de la scène. La vérification de la propriété Shadeless dans le panneau des propriétés du matériau permettra de rendre les formes avec leurs couleurs d'origine.)
Voici un rendu fait du SVG dans Blender.
Il n'a pas d'espace entre les triangles. D'autres logiciels 3D sont très susceptibles de fonctionner de la même manière. Donc, Blender se comporte exactement comme Illustrator , n'est-ce pas? C'est peut-être l'inverse?
Les vraies questions
- Quelle bibliothèque de dessins vectoriels Illustrator utilise-t-il en arrière-plan?
- Serait-il possible qu'Illustrator utilise une sorte de moteur de rendu 3D? Est-ce open source? (probablement pas?)
- L'une des bibliothèques de dessins vectoriels bien connues telles que Cairo et Skia peut-elle obtenir le même comportement de rendu? (Pas d'espace entre les formes)
- Existe-t-il une bibliothèque de dessins vectoriels moins connue qui a le même comportement?