Ich versuche derzeit, ein paar Dinge über die Rasterisierung von Vektorgrafiken und die unterschiedlichen Implementierungsweisen in verschiedenen Anwendungstypen zu verstehen.
Ich habe einige Programme getestet und verglichen und festgestellt, dass es einen großen Unterschied im Verhalten von Anti-Aliasing im Rasterungsprozess gibt. Mich interessiert besonders das Rendering-Verhalten in Illustrator . Sie werden sehen, warum, indem Sie weiterlesen.
Für meine Tests habe ich eine sehr einfache Zusammensetzung von Dreiecken verwendet, die in einem unregelmäßigen Sechseck mit verschiedenen Farben angeordnet sind.
Vektorgrafiken-Software
Hier sind drei Darstellungen derselben Vektorgrafik in Illustrator, Affinity und Inkscape. (Das in Affinity und Inkscape erzeugte Bild ist genau das gleiche.)
Wie Sie sehen, befindet sich an jedem Rand des mit Affinity und Inkscape gerenderten Bildes eine unerwünschte weiße Linie. Das Anti-Aliasing füllt diesen Bereich nicht mit einer durchgehenden Farbe, was zu einer kleinen Lücke zwischen benachbarten Formen führt.
Obwohl im Illustrator-Rendering keine Lücke vorhanden ist, sehen die Kanten der Formen so glatt aus wie beim Affinity-Rendering.
Hier ist ein Bild, das den gleichen Bereich von jedem Bild zeigt, das vergrößert wurde.
Es gibt einen sehr feinen Unterschied zwischen den beiden Bildern. Das Rendern mit Affinität ist ein bisschen weicher, aber es ist fast unmöglich, den Unterschied zu erkennen, wenn Sie die Bilder in ihrer Originalgröße betrachten.
Browser
SVG-Rendering
Die Anzeige derselben als SVG exportierten Grafiken in einem Browser ähnelt stark dem von Affinity und Inkscape erzeugten Rasterbild.
Es gibt sehr kleine Unterschiede beim Kanten-Anti-Aliasing (die es nicht wirklich wert sind, hier gezeigt zu werden), aber die SVG-Rasterisierung in gängigen Browsern verhält sich ziemlich ähnlich.
Zerlegtes Rendering
Um das Rendering von Illustrator weiter zu verbessern, habe ich versucht, Teile meiner Grafiken zu teilen und einzeln zu exportieren und sie dann mit einer Raster-Bearbeitungssoftware wieder zusammenzusetzen.
Theoretisch würde es dasselbe Bild ergeben wie ein einziges Stück, aber das Ergebnis ist bei dieser Methode etwas anders.
Wie gezeigt, besteht zwischen den beiden Teilen eine winzige Lücke. Obwohl es subtiler ist, ist es der in Affinity gerenderten Grafik sehr ähnlich.
Polygon-Rendering
Mixer (3D-Software)
Mit Blender können Sie SVG-Dateien importieren und als Kurvenobjekte bearbeiten. Hier sehen Sie die importierte Grafik im 3D-Ansichtsfenster. (Standardmäßig wird das Material durch Lichter in der Szene beeinflusst. Wenn Sie die schattenlose Eigenschaft im Materialeigenschaftsfenster aktivieren, können die Formen mit ihren ursprünglichen Farben gerendert werden.)
Hier ist ein Render aus dem SVG in Blender.
Es gibt keine Lücke zwischen den Dreiecken. Andere 3D-Software funktioniert wahrscheinlich genauso. Blender verhält sich also genau wie Illustrator oder doch? Vielleicht ist es umgekehrt?
Die wirklichen Fragen
- Welche Vektorzeichenbibliothek verwendet Illustrator hinter den Kulissen?
- Könnte es sein, dass Illustrator eine Art 3D-Rendering-Engine verwendet? Ist es Open Source? (wahrscheinlich nicht?)
- Kann eine der bekannten Vektorzeichenbibliotheken wie Cairo und Skia dasselbe Renderverhalten erzielen? (Keine Lücke zwischen den Formen)
- Gibt es eine weniger bekannte Vektorzeichnungsbibliothek, die das gleiche Verhalten aufweist?