Перейти к содержимому

Придирчивые пиксели: Krita на GSoC 2024!

Предыдущая запись | Вторник, 10 сентября 2024 | Время чтения: 4 мин | Следующая запись

Ну что ж, очередное лето* как-то подошло к концу, а вместе с ним практически завершилась и программа Google Summer of Code этого года!

Небольшое скоростное прохождение GSoC

Тем, кто не знаком с Google Summer of Code (далее в этом сообщении — «GSoC», чтобы не утомлять пальцы), поясним: это ежегодная программа, которую проводит Google и в рамках которой платят за успешный вклад в виде новых возможностей и улучшений в проекты свободного и открытого программного обеспечения («FOSS»), подобные нашему. Будем надеяться, что это выгодно всем сторонам: для участника это неплохой летний заработок и полезный опыт, это побуждает новых людей сделать первые шаги в разработке FOSS, и теоретически укрепляет экосистему свободного ПО, на которую в значительной степени опираются такие компании, как Google.

Как и многие другие проекты FOSS, Krita уже несколько лет участвует в GSoC, и успешные проекты принесли немало приятных улучшений: усовершенствованное управление ресурсами, совершенно новую панель «Раскадровка», панель «Запись» и так далее.

Что лучше всего, в последние годы Google открыла дверь для всех (уже не только для студентов высших учебных заведений!), так что участвовать могут люди с самым разным жизненным опытом и происхождением. Разумеется, для успеха, вероятно, нужны хотя бы базовые знания программирования и хорошие навыки общения, но очень радует, что программа стала гораздо более открытой и справедливой. (Хороший ход, Google!)

Итак, если это звучит интересно и есть уверенность, что задача по силам, GSoC — хороший способ получать оплату за вклад в любимые проекты FOSS.

Почти идеальные пиксели

В этом году GSoC прошёл довольно спокойно: был всего один проект — «Pixel Perfect Lines» Ken Lo, с простой целью улучшить рабочий процесс художников, работающих с пиксельной графикой и спрайтами, позволив создавать «идеальные» линии толщиной в один пиксель.

Возможно, возникает вопрос: что делает линию толщиной в один пиксель «идеальной»?

В своей основе искусство — это самовыражение, поэтому объективно хорошего или плохого, правильного или неправильного и тому подобного не существует. Пиксельная графика в этом отношении ничем не отличается, но, как и в любом другом виде искусства, в ней есть определённые условности и традиции, которые людям просто нравится видеть. Для художников пиксельной графики одна из таких условностей — привлекательность чётких и разборчивых однопиксельных линий, которые можно использовать, например, для контура персонажа или другого объекта. Насколько я понимаю, хорошей однопиксельной линией по общепринятым меркам художники пиксельной графики считают линию с минимальным числом изменений направления под прямым углом (Г-образных, Т-образных и так далее). Избегая прямых углов, можно получить красивые и изящные кривые — то, что легко воспринимается как само собой разумеющееся, пока не начнёшь работать при сверхнизком разрешении.

Что возвращает нас к цели Ken в рамках GSoC 2024: добавить в Krita новую возможность, позволяющую художникам пиксельной графики рисовать плавные, текучие линии толщиной в один пиксель одним движением пера! И я рад сообщить, что он практически достиг этой цели, добавив в инструмент «Кисть» новый параметр сглаживания «Пиксел», который должен значительно упростить работу над пиксельной графикой в Krita. (Скоро на панели «Параметры инструмента»!)

Убедитесь сами:

Демонстрация линий, нарисованных без нового режима сглаживания «Пиксел» и с ним. У КРАСНОЙ линии сглаживание установлено в «Нет», у ЗЕЛЁНОЙ — в «Пиксел». Синие пиксели показывают типы пиксельных артефактов, от которых нужно избавиться. ПРИМЕЧАНИЕ: КРАСНАЯ и ЗЕЛЁНАЯ линии нарисованы вручную по отдельности, поэтому они не будут полностью идентичными.

Что касается того, получились ли линии «pixel perfect», — что ж… пока нет, но они чертовски близки к этому! Мы с Ken очень надеялись за время этого GSoC добиться в Krita по-настоящему «pixel perfect» линий для пиксельной графики, и Ken провёл немало полезных исследований о том, как этого можно достичь. Однако в конечном итоге мы пришли к выводу, что настоящая «pixel perfect» точность, вероятно, потребовала бы более серьёзных изменений в логике кистей Krita, чем позволило бы оставшееся время GSoC. Ничего страшного, и, думаю, это хороший урок: иногда план, с которого начинаешь, заходит в тупик, и приходится просто приспосабливаться!

Иными словами, всё ещё можно наткнуться на случайный лишний пиксель, который захочется стереть. Но точно могу сказать одно: вклад Ken в Krita в рамках GSoC 2024 — это значительно улучшенное качество однопиксельных линий, которое, уверен, серьёзно улучшит рабочий процесс всех спрайтеров, художников пиксельной графики и разработчиков игр, использующих Krita как один из своих инструментов.

Разумеется, мы не собираемся сдаваться, пока не достигнем вершины пиксельного совершенства, поэтому, если у кого-то есть идеи, как вывести эту функцию на новый уровень, напишите нам!

Ладно, здорово! Но… как?

Я чуть не забыл рассказать, как этим пользоваться… Но хорошая новость в том, что всё довольно просто.

Чтобы включить новый стабилизатор пиксельных линий, выберите инструмент «Кисть» или аналогичный, откройте панель «Параметры инструмента» и установите в раскрывающемся списке «Сглаживание кисти» значение «Пиксел». Скорее всего (будем надеяться) при рисовании обычной кистью на обычном холсте изменения в производительности или качестве линий не будут заметны, но если выбран профиль кисти для пиксельной графики размером 1 px, плавные штрихи дают более аккуратные пиксельные линии.

Панель «Параметры инструмента» с параметром «Сглаживание кисти», установленным в значение «Пиксел»

На этом всё!

На этом всё о GSoC 2024!

Спасибо Google за сотрудничество с такими проектами, как Krita, и за очередной успешный GSoC, а также особая благодарность участнику Krita в GSoC этого года — Ken!

И наконец, будь то программа вроде GSoC, наш фонд развития или огромное количество добровольных вкладов, которые постоянно поступают от участников сообщества, такие проекты, как Krita, держатся на щедрости и поддержке таких людей, как вы. Поэтому, как всегда, ОГРОМНОЕ спасибо всем, кто так или иначе поддерживал этот проект в этом году! :)

Emmet

*Здесь, в Северном полушарии, но я вижу и вас, жителей Южного полушария!