На даний момент я намагаюся зрозуміти кілька речей щодо растеризації векторної графіки та різних способів її реалізації в різних типах додатків.
Я перевірив і порівняв кілька програм , і зауважив , що є велика різниця в тому , як згладжування поводиться в процесі растеризації. Мене особливо цікавить поведінка візуалізації в Illustrator . Ви побачите чому, читаючи далі.
Для мого тестування я використав дійсно просту композицію з трикутників, організованих у неправильний шестикутник з різними кольорами.
Програмне забезпечення векторної графіки
Ось три візуалізації однієї і тієї ж векторної графіки в Illustrator, Affinity та Inkscape. (Зображення, створене в Affinity та Inkscape, точно однакове.)
Як ви бачите, на кожному з країв на зображенні, зображеному Affinity та Inkscape, є небажана біла лінія. Згладжування не заповнює цю область суцільним кольором, що призводить до невеликого зазору між суміжними формами.
Хоча в візуалізації Illustrator немає розриву, краї фігур виглядають так само гладко, як візуалізація Affinity.
Ось зображення, що показує однакову площу кожного масштабного зображення.
Існує дуже тонка різниця між двома зображеннями. Відображення Affinity - це крихітніше плавніше, але майже неможливо побачити різницю, дивлячись на зображення в оригінальних розмірах.
Браузери
Візуалізація SVG
Відображення тієї ж графіки, експортованої як SVG у веб-переглядачі, виглядає дуже схоже на растрове зображення, створене як Affinity, так і Inkscape.
Існують дуже невеликі відмінності в розширенні країв (які насправді не варто показувати тут), але растерізація SVG у звичайних браузерах поводиться майже однаково.
Розкладений візуалізація
Тестуючи рендеринг Illustrator трохи далі, я спробував розділити частини моєї графіки та експортувати їх окремо, потім скласти їх назад разом із програмним забезпеченням для редагування растрових.
Теоретично це призведе до того ж зображення, що і його в цілому, але результат дещо інший за допомогою цього методу.
Як показано, коли дві частини складені, між ними існує невеликий проміжок. Хоча він і більш тонкий, він дуже схожий на графіку, представлену в Affinity.
Візуалізація багатокутника
Blender (програмне забезпечення 3D)
Blender дозволяє імпортувати файли SVG та обробляти їх як криві об'єкти. Ось імпортна графіка, показана у вікні 3D перегляду. (За замовчуванням на сцену впливатимуть світильники. Перевірка властивості без тіней на панелі властивостей матеріалу дозволить надати фігурам їх оригінальні кольори.)
Ось візуалізація, зроблена з SVG всередині Blender.
У ній немає розриву між трикутниками. Інші програмні засоби для 3D-програм, ймовірно, працюють так само. Тож Блендер поводиться так само, як Illustrator , чи так? Може, це навпаки?
Справжні питання
- Яку бібліотеку векторних малюнків використовує Illustrator за кадром?
- Чи можливо, що Illustrator використовує якусь двигун 3D-рендерінгу? Це відкритий код? (напевно, ні?)
- Чи може будь-яка з відомих векторних бібліотек малювання, таких як Каїр і Скія, досягти однакової поведінки візуалізації? (Немає проміжку між формами)
- Чи є там менш відома бібліотека векторних малюнків, яка має таку саму поведінку?