Как включить луковую кожу в krita

Обновлено: 03.05.2024

Чуть больше чем три недели назад проект Крита запустил кампанию по сбору средств для Криты 2.9 на Кикстартере. Для всех участников процесса это был первый опыт организации подобных вещей, и разработчики столкнулись множеством трудностей на пути: от попытки снять промо-ролик с участием трех человек, живущих в разных концах Европы, до обороны от троллей на «профильных» форумах. Несмотря на это, кампанию уже можно считать успешной: на данный момент проект собрал минимально необходимую сумму, чтобы релиз 2.9 состоялся. Взносы, сделанные во время оставшихся пяти дней, лишь определят, достигнет ли проект первой стретч-цели и сколько новых функций будет добавлено.

Однако в потоке новостей как-то затерялись известия о том, что в процессе Крита обзавелась функциями, которые давно ждали художники: быстрое редактирование выделений и удобный лайн-арт. В этой статье я бы хотел рассказать об этих нововведениях.

Лайн-арт — стабилизация пера с задержкой

Разработчики наконец-то позаботились об удобстве работы художников. Зачастую, процесс создания изображения состоит из следующих этапов:

1) Создание эскиза грубой кистью
2) Аккуратная обводка контуров изображения тонкой, но жесткой кистью.
3) Заливка цветом полученных областей.



Иллюстрация Wolthera van Hövell tot Westerflier

Для облегчения второго этапа, был добавлен новый тип сглаживания линий: «Стабилизатор с задержкой». Он позволяет вести линии ровно и при этом контролировать параметры кисти: силу нажатия, поворот и т.д. Да, в Крите и до этого присутствовало взвешенное сглаживание линий, однако новый метод работает абсолютно иначе. Видео от Павла Гераськина лучше всего демонстрирует, как работает эта функция:

(многие могу заметить сходство с аналогичными инструментами Blender и zBrush)

Прямые линии

Более того, разработчики наконец-то переделали инструмент рисования прямых линий. Теперь он не только имеет предварительный просмотр отрисованной линии и доступен по нажатию клавиши 'V', но и позволяет контролировать силу нажатия во время ведения пера вдоль прямой. В этом заключается основное отличие от функционала, предлагаемого в MyPaint. Видео Timothee Giet:

Быстрое редактирование масок и выделений, изолированный режим клавишей Alt

Так уж сложилось, что все выделения в Крите представляют собой всего лишь узлы дерева слоев. Каждое выделение — это узел «Маска выделения» (Selection Mask). Каждая маска определяет выделенную область при редактировании родительского узла и всех его потомков. Такую маску можно редактировать не только специальными инструментами, на ней можно рисовать обычными кистями, фильтровать, заливать заливками и градиентами. База кода для этого функционала существовала уже давно но пользоваться ей было не совсем удобно: глобальные выделения были недоступны в виде масок и было невозможно быстро переводить их в изолированный режим.

Теперь эти проблемы решены. При включении опции «Отображать маски глобальных выделении» (Show Global Selection Masks) маска глобального выделения будет показана в дереве слоев и ее можно будет редактировать любыми доступными средствами.

Кроме того, теперь можно зажать клавишу Alt, щелкнуть на любом слое, и Крита войдет в режим изолированного редактирования слоя. Этот режим доступен для любых типов слоев, в том числе и глобальных выделений.

Вместо заключения


Эти нововведения — лишь только начало тех плюшек, которые запланированы для Криты 2.9. К концу года, разработчики реализуют от 12 до 24 новых функций! Сейчас же новый функционал можно испробовать, скачав пакеты для Windows или установив Krita Lime под Linux.

Дмитрий Казаков

Сергей, у вас вкючена кисть Quick Brush. Она еще пока не умеет зеркалирование. Включите любую кисть Pixel Brush или Colorsmudge Brush, и они будут нормально зеркалировать.

Дмитрий Казаков

Алиса,два варианта: ваш слой полностью непрозрачный,поэтому перекрывает (просто новый слой создайте), центральный столбик с настройках луковых слоев либо отключен (кнопка сверку), либо опущен вниз.

Дмитрий Казаков

Варвара, у вас включен стабилизатор кисти. Нужно выбрать следующее: Tool Options->Smoothing Type->Basic Smoothing

Варвара Тихомирова

Надежда Светлая

Всем привет. Я абсолютный новичок в рисовалках. Скачала Крита. Но настроить "горячие" клавиши не могу. Окно Криты легко увеличивается и уменьшатся. Но когда включаю окно настроек, что бы поменять горячие клавиши, оно открывается большим и невозможно его уменьшить. Самый низ, где стоит кнопки ОК и отменить уплывает за низ экрана, и поэтому не получается зафиксировать изменения. Крита у меня 32 битная, так же как и мой ноут. Что в этом случае посоветуете? Да,и Крита у меня на русском.

Анна Плисецкая

помогите пожалуйста у меня лаганула крита и настройки мягкости превратились в кашу я не знаю что делать

Бесплатная онлайн-школа анимации

      /  Учебная программа  /   Основы анимации в Krita  /  
  • Тема 3: Ваша первая анимация в Krita. Равномерное движение шарика.

Количество часов: 2.

  • Как создаётся покадровая анимация
  • Понятие кадра
  • Что такое режим кальки
  • Понятие равномерности движения
  • Включать панели для работы с анимацией
  • Добавлять кадры
  • Включать режим кальки
  • Воспроизводить анимацию
  • Перемещать кадры
  • Изменять промежутки между кадрами

Содержание занятия

План

  • Настройка интерфейса для работы с анимацией
  • Шкала кадров
  • Добавление кадров
  • Режим кальки (луковая кожура)
  • Воспроизведение анимации

Задание: Сделать равномерное движение шарика. Сохранить как «krita-03.kra».

  • Перемещение кадров
  • Изменение промежутков между кадрами

Задание: Изменить скорость движения шарика.

Выполнение задания (с комментариями):

Результат выполнения задания:

При проверке задания обращать внимание на следующее:

  • Шарики должны быть приблизительно одного размера на протяжении всей анимации. Типичные ошибки — шарик существенно увеличивает или уменьшает свой размер к концу анимации.
  • Шарик должен двигаться вдоль прямой, без существенных отклонений.
  • Смещение шарика на каждом кадре должно быть примерно одинаковым.

Типичные ошибки

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Сегодня наконец-то состоялся очередной релиз редактора для художников Krita 3.0. На разработку новой версии ушел почти год. За этот год в Крите были реализованы анимация, режим мгновенного предпросмотра и множество мелких улучшений, за которые проголосовали спонсоры Кикстартера 2015. Кроме того, в проекте произошло много организационных изменений: отделение от Calligra, порт на Qt5 + KDE Frameworks 5 и старт выпуска стабильных версий для OSX.


Обо всем этом я постараюсь рассказать в данной статье!

Технические детали

Итак, начнем с технических деталей. Осенью 2015-го года, Крита официально отделилась от родительского проекта, офисного пакета Calligra. Она уже давно перестала вписываться в концепцию «офисного» приложения, а необходимость портирования на новую версию библиотек (Qt5 + KDE Frameworks 5 Tier1) лишь ускорило этот процесс. В итоге Крита обзавелась отдельным репозитарием и избавилась от множества лишних зависимостей, что значительно облегчило жизнь разработчиков.

Кроме того, начиная с версии 3.0 Крита официально поддерживается на OSX. Есть правда несколько проблем, связанных с openGL. Пока недоступны две функции: High Quality Canvas Filtering и Instant Preview. Обе эти функции требуют поддержки openGl 3.0, что пока невозможно на OSX + Qt5.

Дело в том, что Apple в своих продуктах отказалась от поддержки профиля «openGL Compatibility Profile». Т.е. разработчики приложений для OSX не могут одновременно работать с старыми функциями эпохи openGL 2.1 и нововведениями openGL 3.0 — либо одно, либо другое. Код самой Криты уже давно портирован на openGL 3.0 и вовсю использует его возможности, однако, как оказалось, библиотека Qt — нет. Qt внутри использует функции времен openGL 2.1. При попытке запуска такого «смешанного» приложения на OSX пользователь вместо окна увидит лишь черный прямоугольник.

Сейчас разработчики временно решили эту проблему отключением под OSX всех функций 3.0 и использованием лишь старого API. Но к концу лета эти проблемы должны быть исправлены: студент Julian Thijssen уже начал свой проект Google Summer of Code, в котором код Qt будет портирован на новые интерфейсы openGL 3.0!

Чего же все-таки нового?

Рисованная анимация

Главным нововведением релиза является, конечно, поддержка анимации. Ради этого разработчикам пришлось практически полностью переписать движок просчета изображения. Однако это дало свои плоды: теперь пользователь может создавать многослойные анимированные клипы, использовать «луковые слои» для сравнения с предыдущими и следующими кадрами, экспортировать анимацию в виде спрайтов.

Режим «Мгновенный предпросмотр»

Изображения пользователей становятся все больше и больше, и Крита уже перестает справляться с отрисовкой больших кистей на лету. Еще несколько лет назад разработчикам пришла в голову идея, что кисти не обязательно обсчитывать на лету, а можно показывать пользователю лишь уменьшенную копию изображения, а оригинал считать в фоновом режиме (см. прошлогоднюю статью на Хабре). И вот теперь эта идея, наконец, воплощена в жизнь в виде режима Instant Preview. Он работает с большинством кистей и фильтров.

Работа со слоями

Был полностью переписан интерфейс работы со слоями. Изменился как внешний вид, так и функциональность. Пользоветель теперь может работать сразу с некколькими слоями: выделять на холсте видимые слои с помощью комбинации Shift+R+Click, переносить, группировать, изменять свойства. Появилась возможность задавать отдельным слоям цветные метки, а потом фильтровать их по цветам. Подробности можно увидеть в видео от GDQuest:

Сетки и направляющие


Одной из задач, выбранных спонсорами было создание нормального пользовательского интерфейса для сеток и направляющих в Крите. Теперь и те, и другие настраиваются через специальную панель. Кроме того, большинство инструментов в Крите теперь поддерживают «прилипание» к сеткам, направляющим и векторным объектам. Настроить прилипание можно вызвав специальное сеню сочетанием Shift+S.

Градиентный мэппинг


Этот фильтр не был запланирован, но пользователь Spencer Brown просто взял и написал его :)

Выпуск новой версии Криты стал возможен исключительно благодаря прошлогодней кампании на Кикстартере. В этом году проект также проводит кампанию, которая позволит добавить Крите новые инструменты работы с текстом и векторными объектами! Кроме этого, после окончания кампании спонсоры смогут выбрать между 24 стреч-целями, т.е. определят, какие дополнительные функции будут реализованы в Крите.

Посмотреть подробности и, при желании, помочь проекту можно на странице кампании на Kickstarter.


До конца кампании на Kickstarter осталось чуть меньше недели, но графический редактор Krita уже собрал средства на две главные задачи этого года: анимацию и рисование огромных изображений. И если с анимацией все более менее понятно, то вот с большими изображениями возникают вопросы. Как просчитать и отобразить на экране изображение в 100 млн. пикселов? Как обеспечить, чтобы кисть размером в 1 млн. пикселов отрисовывалась без задержек 500 раз в секунду? На эти вопросы я постараюсь ответить в этой статье.


Для начала нужно разобраться, как происходит рисование в современном графическом редакторе. Любая кисть представляет собой изображение («мазок» или «dab»), которое либо загружается пользователем напрямую, либо генерируется параметрически. Когда пользователь делает штрих кистью, это изображение последовательно накладывается на холст с определенным шагом (spacing) (обычно 10-20% от размера кисти). Полученное изображение попадает в конвейер рендеринга, где оно сливается со всеми слоями и передается в пользовательский интерфейс, где уже отрисовывается на экране монитора. Со стороны это выглядит просто, но на самом деле даже для простой кисти на протяжении конвейера сделанный пользователем штрих будет обработан около 7(!) раз.

  1. Маска кисти заполняется цветом и формируется сам мазок
  2. Мазок рисуется поверх временного холста, который позволяет штрихам не накладываться друг на друга (режим непрямого рисования или «Wash Mode»)
  3. Временный холст рисуется поверх содержимого слоя
  4. Все слои сливаются в одно изображение
  5. Изображение копируется в пользовательский интерфейс
  6. В интерфейсе происходит преобразование цветового пространства изображения, чтобы соответствовать цветовому пространству монитора
  7. Финальная картинка загружается в текстуру openGL и отрисовывается на экране


Пример

Итак, каждый «мазок» претерпевает минимум 7 преобразований. Много это или мало? Давайте рассмотрим простой пример. Представим, что мы рисуем кистью 300х300 пикселов (300 * 300 * 4 = 312 КБ) на холсте формата A4 300dpi (3508x2480 пикселов).

Скорость, с которой художник может комфортно двигать стилус планшета (с учетом зума) составляет около 18 пикселов в миллисекунду. Тогда (при шаге кисти 10%) средняя скорость, с которой мы должны успевать отрисовывать кисть на холсте составит 600 «мазков» в секунду.

График скорости просчета «мазков» в зависимости от скорости мыши.
Кисть: 300 пикс.
Изображение: A4 300dpi (3508x2480 пикс.), зум 25%
CPU: Core i7 4700MQ



С учетом размера кисти получается, что на каждой стадии конвейера редактору нужно обрабатывать порядка 187 МБ в секунду, что составляет более 1,2 ГБ/с (!) на весь конвейер. И это даже не учитывая того факта, что почти на всех стадиях конвейер не просто преобразовывает одну область размером 300х300, а берет два изображения, просчитывает их композицию (минимум одна операция деления на пиксел) и записывает результат обратно в память. Получается, что даже на таких относительно небольших размерах кисти и изображения мы достаточно близко приближаемся к теоретическим пределам скорости работы оперативной памяти (10-20ГБ/с).

«WTF?!» — спросит внимательный читатель. «Как ж это тогда вообще работает?!» Конечно, на каждом этапе конвейера применяется множество оптимизаций. Вся область разбивается на несколько потоков, которые, мало того выполняются параллельно, так еще используют векторные инструкции SSE/AVX, позволяющие обрабатывать до 8 пикселов одновременно. Кроме того, в некоторых частных случаях (например, один из пикселов целиком прозрачен или непрозрачен), композиция вырождается в простое копирование байтов.

Однако все эти меры помогут очень слабо, если мы начнем говорить о кистях размером в 1000 пикселов и более. Ведь при увеличении размера кисти в 3 раза объем обрабатываемых данных увеличится уже не в 3, а в 9 раз! Обрабатывать по 12 ГБ в секунду? Ну уж нет! Так как же быть?


В трехмерной графике есть известный прием, который позволяет повышать скорость и качество текстурирования объектов, находящихся далеко от камеры. Дело в том, что когда объект удаляется от наблюдателя, он становится меньше в размерах и, соответственно, его текстура должна так же масштабироваться. Чтобы ускорить этот процесс была придумана технология MIP-текстурирования. Её смысл заключается в том, что вместе с самой текстурой хранится множество ее уменьшенных копий: в 2, 4, 8, 16 и т.д. раз. И когда графическому процессору требуется нарисовать уменьшенную версию текстуры, он уже не занимается масштабированием оригинала, а просто берет заранее подготовленную копию и работает с ней. Это увеличивает не только скорость прорисовки объектов, но и сильно повышает их качество, так как при предварительной генерации можно использовать более точные «медленные» алгоритмы.

Здесь стоит учесть одно наблюдение, что если пользователь решит рисовать на изображении шириной в 10k пикселов, то большую часть времени он будет использовать масштаб в 20-15%. Иначе это изображение чисто технически не уместится на экране его Full HD монитора, шириной едва дотягивающего до 2k. Этим фактом мы и воспользуемся!

В начале этого года мы сделали прототип системы отложенного просчета изображения для Krita. Когда пользователь рисует кистью по холсту, Крита не спешит просчитывать все его действия. Вместо этого она берет уменьшенную копию изображения и отрисовывает все штрихи на ней. Так как уменьшенная копия имеет размер в 2-4 раза меньше оригинала, то и рисование на ней происходит в 4-16 раз быстрее, и поэтому отсутствуют какие-либо задержки, отвлекающие художника от его творческого процесса. А так как художник не может рисовать все 100% времени, то у Криты будет еще множество времени, когда можно в фоновом режиме, не торопясь, просчитать штрихи на оригинальном изображении.

Видео, демонстрирующее рисование 1k кистью на 8k изображении. Обратите внимание, как через несколько секунд после завершения штриха приходит вторая волна обновлений.

В итоге мы решили главную задачу. Теперь мы не пытаемся обработать гигабайты данных в реальном времени. В реальном времени нам нужно просчитать лишь превью, который позволит пользователю комфортно работать. А оригиналом можно заняться и потом.

На данный момент у нас есть готовый прототип системы работы с уровнями детализации. В нем работает лишь один движок кистей, и то не со всеми параметрами. Однако он уже позволяет сделать нам некоторые выводы:

  1. Мы решили главную задачу: пользователь видит, что он рисует
  2. Качество превью достойное. Проблемы возникают лишь на границах областей обновления, где меняется алгоритм интерполяции, используемый в openGl-шейдерах. Нужно решать.
  3. В качестве бонуса openGL 3.0 и выше позволяет загружать/читать информацию напрямую с определенного уровня детализации (GLSL 1.3: textureLod(). Т.е. нам не нужно держать копии всех текстур, просто обновляем определенный уровень, говорим шейдеру про него, а тот читает напрямую
  4. Главный недостаток подхода заключается в том, что эта система привела к серьезному усложнению планировщика задач Криты. Требуется решить очень много проблем. Например, две копии изображения (оригинал и уменьшенная копия) нужно регулярно синхронизировать. И это усугубляется тем фактом, что не все действия в Крите можно выполнить над уменьшенной копией. Многие действия (т.н. legacy-действия) требуют полного контроля над изображением. Они работают подобно барьерам: перед их запуском все «раздвоенные» действия должны быть завершены, а после их завершения копии изображения должны быть синхронизированы.
  5. Соответственно, если пользователь запустит legacy-действие, то ему придется ожидать, пока завершится вся фоновая обработка. Что может, конечно, не совсем удобно. Единственным решением этой проблемы может быть лишь уменьшение количества legacy действий.

Наш проект на Kickstarter уже достиг минимальной цели, поэтому следующие несколько месяцев мы потратим на реализацию полноценной системы работы с уровнями детализации. И уже совсем скоро любой желающий сможет протестировать рисование огромными кистями в Крите!

Читайте также: