Поддержка сетчатых градиентов наконец-то официально включена в состав библиотеки Cairo. Это означает, что создавать фотореалистичную графику в Inkscape скоро станет проще.
Работа по реализации сетчатых градиентов (mesh gradients) в библиотеке Cairo [3] была начата ещё пару лет назад Адрианом Канчиани. Этот тип градиентов позволяет создавать сложные цветовые переходы для имитации неравномерно окрашенных или освещённых поверхностей.
В качестве примера можно привести векторную версию фотографии перца, созданную Тавмжонгом Бахом при помощи Inkscape из ветки mesh gradients [4], о которой мы уже
Для Inkscape официальный выпуск Cairo с включённой поддержкой сетчатых градиентов означает, что ветка mesh gradient стала на шаг ближе к включению в состав v0.49. Кроме того, это делает возможным имитацию конических градиентов, которая уже доступна в этой ветке:
Рабочая группа SVG в W3C уже согласилась сделать сетчатые градиенты частью стандарта.
Новая версия Cairo важна и для Scribus, где сетчатые градиенты тоже поддерживаются, причём программа была первой, где это новшество Cairo было задействовано (первая демонстрация прошла на LGM2009). Судя по всему, мы увидим это в Scribus 1.5.0.
Градиентами новшества в Cairo 1.12.0, конечно же, не исчерпываются. Разработчики улучшили производительность рендеринга и добавили возможность переключаться между уровнями сглаживания (none, fast, good, bad) для выбора между скоростью рендеринга и качеством. Бэкенд OpenGL был портирован на GLESv2 и доработан сверх того.
Наконец, в публичном API появилась пара интересных функций, добавляющих возможность обращаться к любой поверхности (“surface” в терминологии Cairo) как к изображению для внесения изменений напрямую, а также основы отложенного ренедеринга.
С полным списком изменений вы можете ознакомиться на сайте Cairo [8]. Наиболее любопытные как обычно могут скачать и собрать библиотеку из исходного кода [9]. Scribus в SVN trunk уже содержит локальную копию Cairo с сетчатыми градиентами, хотя её теперь надо бы обновить.
Ссылки:
[1] http://htfl.ru/cat-news-grafika
[2] http://htfl.ru/cat-news-obnovlenie-po
[3] /out.php?link=http://cairographics.org/
[4] /out.php?link=https://code.launchpad.net/%7Etavmjong-free/inkscape/mesh
[5] /out.php?link=http://linuxgraphics.ru/news.php?readmore=1889
[6] /out.php?link=http://tavmjong.free.fr/SVG/MESH/Mesh.html
[7] /out.php?link=https://bugs.launchpad.net/inkscape/+bug/375323/comments/47
[8] /out.php?link=http://cairographics.org/news/cairo-1.12.0/
[9] /out.php?link=http://cairographics.org/releases/cairo-1.12.0.tar.gz