Рейтинг@Mail.ru
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Сейчас на сайте
Гостей: 7

Пользователей: 1
BigSerpent

Всего пользователей: 1,270
Новый пользователь: valentin_13

Четыре тысячи слов о состоянии проекта Krita

Мы работали над Krita 2.0 с 2006 года и похоже, что мы выпустим новую стабильную версию в начале 2009 года. Это, в свою очередь, означает целых три года работы над проектом. Примерно столько же, если начать отсчёт с версии 1.4 (когда я присоединился к команде) потребовалось на разработку версий 1.4, 1.5 и 1.6 вместе взятых!

Конечно, делать подобные сравнения не совсем правильно, так самой трудоёмкой частью было портирование кода на Qt4 и KDE4. Если оглянуться немного назад, я думаю, что мы должны были подождать с портированием до середины 2007 года и вместо этого разрабатывать версию 1.7: либо добавить новые функции и возможности, либо переделать стек слоёв, либо мозаичную систему. Но нам, разработчикам, нестерпимо хотелось попробовать новшества Qt4.0 — знали бы мы, чем это кончится!

Ещё одна причина, по которой разработка ветки 2.х длилась так долго, заключается в том, что некоторое количество ключевых для Krita 1.x технологий, например, система инструментов, были перенесены в библиотеки KOffice, чтобы все приложения проекта могли использовать их. В процессе портирования инструменты изменились до неузнаваемости, и большая часть 2006 года ушла на поддержание Krita на плаву и работу над общими для KOffice инструментами и холстом, причем эта работа все еще не завершена. Думаю, что потратил порядка девяти месяцев только на инструменты при том, что эта подсистема уже прекрасно функционировала в ветке 1.x.

Третья причина, или, возможно, следствие — сокращение команды разработчиков. Нам не хватало Адриана, Барта, Каспера и Михаэля. Хотя Адриан сделал почти все первоначальное портирование, а Каспер работал над библиотеками KOffice, сейчас реально активны только Сирил, Свен и я: Эмануэле сделал много великолепных вещей, но в обозримом будущем он слишком занят на работе. Лука, наш студент Google Summer of Code 2008, тоже сделал много чего интересного, но он работает над расширениями, а не над ядром Krita.

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

Четвёртая причина — проблемы в реальной жизни: я перегорел в 2006 году — трения в общем проекте KOffice, переезд, смена работы в 2007 и снова в 2008... Всё это имело свою цену. Другие разработчики тоже не были исключением, и это, в принципе, нормально для большого проекта, работа над которым ведётся в течении нескольких лет. Как говорит Аарон [Сейго], встряска — это нормально, но потери должны восполняться новоприбывшими. А в проекте не будет новых участников, если не будут выходить новые версии.

Но самая важная причина идёт под номером пять — Krita разрабатывалась так долго  потому, что мы проделали поистине огромную работу. Уже Krita ветки 1.x была уникальным свободным редактором изображений с такими функциями как:

  • коррекционные слои;
  • группы слоёв;
  • модули цветовых пространств;
  • сменные движки кистей.

В Krita ветки 2.х мы реализовали массу новых функций, часть из которых уникальна для мира свободного ПО, а часть вообще нигде больше не встречается. И хотя мы могли бы выпустить версию с частью уже работающего функционала, эта версия все же должна быть выпущена синхронно с библиотеками KOffice, которые на тот момент ещё не были готовы.

Итак, давайте проведем «инвентаризацию» и определим актуальное состояние всех этих новшеств: какие из них готовы ко включению в состав версии 2.0, а какие будут доделаны в течение цикла разработки ветки 2.х. Также отметим, какие регрессии произошли, с какими функциями придётся расстаться или временно исключить, чтобы продолжить разработку, и что пока еще не было воссоздано.

Замечу, что я добавил имена основных разработчиков, дабы отдать дань славы тем, кто этого заслуживает. Но нужно заметить, что ребята успели отметиться в коде практически везде, так что весь редактор действительно является коллективной работой. Мы, да будет мне позволено так сказать, реально круты!

Новый функционал

Библиотека PigmentCMS

  • Авторы: Сирил Бергер, Баудевейн Ремпт
  • Суть: библиотека PigmentCMS — это старый механизм манипуляций с цветом, переехавший из самой Krita в общие с KOffice програмные библиотеки. В ходе  переноса он был усовершенстован не только для работы с основанными на LittleCMS модулями цветовых пространств, но и с OpenCTL и расширениями «изобразительных» пространств. Код был переделан для еще более простого добавления новых цветовых пространств. Плюс еще несколько новых интересных возможностей. В качестве эксперимента я переписал PigmentCMS с использованием только библиотеки Qt и необязательной зависимостью от LittleCMS — эта работа заняла всего несколько часов. Получившаяся библиотека — действительно подарок богов для тех, кто хочет написать независимый от используемого цветового пространства код для уродования пикселов: pigmentcms не только просто обеспечивает преобразование цветовых пространств, но и выполняет другие операции, от композитинга до конволюции. Фактически, всё, что работает с цветами.
  • Статус: сейчас работает очень хорошо, добавить новое цветовое пространство или операцию удивительно просто.

Цветовые пространства с использованием OpenGTL

  • Авторы: Сирил Бергер
  • Суть: как было замечено выше, PigmentCMS теперь может иметь дело с цветовыми пространствами, которые не используют LittleCMS. OpenCTL — это свободная замена неудачно лицензированной AmpasCTL. Она предоставляет примитивы программам, модифицирующим изображение на уровне отдельных пикселов; эти программы затем компилируются при помощи llvm в «родной» код, который и исполняется. Интерпретатор Krita использует OpenCTL для поддержки цветовых пространств, требующих вычислений с плавающей точкой, что необходимо для изображений HDR. OpenCTL — часть OpenGTL (Graphics Transformation Languages), которые также содержат OpenShiva — интерпретатор языка программирования, созданный под впечатлением от PixelBlender компании Adobe, который выполняет ядерные преобразования, т.е. использует множество пикселов на входе.
  • Статус: отлично работает. OpenCTL пока недоступен во всех дистрибутивах в виду сравнительной молодости, но мы считаем, что скоро это изменится.

Фильтры, основанные на шейдерах

  • Авторы: Баудевейн Ремпт, Том Бёрдик
  • Суть: теперь можно писать фильтры, используя язык шейдеров GLSL из состава библиотеки OpenGL. Это, возможно, обеспечит неплохой прирост скорости для некоторых фильтров и цветовых пространств — весьма занимательная штука. Спроектированный API напоминает инструментарий Cg от Nvidia для программы Photoshop.
  • Статус: отложено до 2.1: у Тома реально не было достаточно времени, чтобы закончить этот модуль, а у меня нет ноутбука с поддержкой GLSL. Сказать по правде, мой Thinkpad на основе Intel даже с простым OpenGL не в ладах.

Маски эффектов

  • Авторы: Баудевейн Ремпт
  • Суть: маски эффектов — это комбинация выделения и фильтра или преобразования или прозрачности — в-общем, что-нибудь маскирующее. Маски — ключ к неразрушающему редактированию в Krita. Для этого пришлось перепроектировать внутреннюю структуру представления данных — дерево узлов, и я на всякий пожарный случай сделал это дважды.
  • Статус: почти готово. У нас определенно будут маски фильтров, маски полупрозрачности и маски локального выделения. Маски преобразования будут готовы к версии 2.1 —- и даже тогда они, возможно, будут создаваться с помощью инструмента преобразования, а не через диалог как сейчас.

Векторные слои

  • Авторы: Байдевейн Ремпт, Эмануэле Тампони
  • Суть: в Krita 1.x можно было встроить один KPart пакета KOffice в качестве объектного слоя — например, векторный рисунок Karbon или текстовый документ KWord. Это способ был не очень гибким, и одной из причин создания библиотеки Flake была потребность в разделении хорошо структурированных объектов между приложениями. Так что в Крита теперь есть тип слоя, который может содержать любое количество векторных объектов, отрисовывающихся с разрешением документа (а не устройства вывода), а затем смешивающихся с документом.
  • Статус: есть что улучшить в части взаимодействия с пользователем, но векторные слои войдут в состав релиза 2.0.

Редактируемый сложноформатированный текст

  • Авторы: Томас Зандер, Ян Хамбрехт
  • Суть: не совсем заслуга именно Krita, но благодаря новому векторному слою вы сможете использовать внутри документа Krita текстовые формы Flake, а следовательно и редактировать текст со сложным форматированием. Параллельно доступен написанный Яном простой текстовый объект, размещаемый по контуру.
  • Статус: определенно войдёт в 2.0.

Редактирование метаданных в слоях

  • Авторы: Сирил Бергер
  • Суть: с момента выхода версии 1.6 в обиход вошли новые схемы аннотирования изображений, такие как XMP и Dublin Core. В Krita метаданные редактируются на уровне слоя, а не всего изображения.
  • Статус: редактор работает и поддерживает Dublin Core и Exif; метаданные могут импортироваться из нескольких файловых форматов, но импорт и сохранение в родном для Krita формате пока не готовы.

Движки кистей

  • Авторы: Баудевейн Ремпт, Эмануэле Тампони, Лука Тврдый
  • Суть: Krita — единственное приложение для рисования, имеющее встроенный механизм сменных движков кистей. Архитектура расширений для движков кистей улучшена: движки получают больше информации для работы и могут использоваться для рисования как простых линий, так и кривых Безье, а не только для обычного рисования. Есть удобная библиотека, содержащая код простых операций, например, кривые отклика на силу нажатия пером планшета. Благодаря Луке Тврдому добавлены несколько новых движков.
  • Статус: работает, плюс-минус пара ошибок. Лука также добавил следующие кисти:
    • Кисть Sumi-e: её создание началось как эмуляция техники китайской каллиграфии, но сейчас ближе к более общей симуляции волосяных кистей. Будет в 2.0.
    • Деформация: не будет включена в релиз 2.0, но её код дописан и стабилен. Можно рисовать искажениё поверх пикселов. Клёво.
    • Мелок: на самом деле, это ранняя версия Sumi-e, вполне приемлемая симуляция сухих материалов.
    • Кривая: создаёт случайные или фрактальные кривые вдоль нарисованной вами линии. Идеальна для рисования береговых линий :) В общем-то готово, но в 2.0 не войдёт.
    • Брызги: старомодная симуляция брызг от пульверизатора. Вместе со сглаживанием и дрожанием/вибрацией смотрится очень красиво. В 2.0 не войдёт, но работает достаточно стабильно.
    • Dynadraw: вдохновлено программой Dynadraw Пола Хаберли.
  • Лука будет писать диссертацию на материале кистей в Krita, так что мы ожидаем появления множества новых и интересных кистей в течение нескольких следующих лет.
    Сирил Бергер создал движок программируемой кисти, но он, к сожалению, находится сейчас в экспериментальной стадии.

OpenRaster

  • Авторы: Сирил Бергер
  • Суть: OpenRaster — файловый формат растровых изображений для обмена проектными данными. Проект был начат мной, Баудевейном Ремптом, с целью создать общепринятый формат файлов для хранения и передачи проектных данных, поскольку формат Adobe Photoshop  никогда не был ни открытым, ни стандартным, ни доступным без подписывания соглашения о неразглашении полученных сведений (NDA).
  • Статус: дела не так уж плохи. MyPaint стал первым приложением, которое может загружать и сохранять OpenRaster, и Krita теперь тоже может загружать многослойные изображения, созданные в MyPaint. Отличная новость!

Направляемое рисование

  • Авторы: Сирил Бергер
  • Суть: это новый тип расширений Krita: расширения, которые более или менее точно направляют движения вашей руки.
  • Статус: работает, также есть вспомогательная линейка для тестирования этой функциональности.

Золотое сечение

  • Авторы: Томас Зандер
  • Суть: это расширение реализовано как объект Flake (и потому может быть использовано повсеместно в KOffice), основная задача которого показывать сетку золотого сечения поверх документа. В будущих версиях мы можем переделать эту сетку в обычную — в Krita уже реализовано несколько типов сеток.
  • Статус: работает, хотя всё еще недостаёт некоторых значков.

Разрешение изображения

  • Авторы: Каспер Бёман, Баудевейн Ремпт
  • Суть: Krita версий 1.x не принимал во внимание ни разрешение вашего принтера, ни вашего экрана, ни самого импортированного в программу изображения. Пиксел был просто пикселом. В версии 2.0 программа учитывает разрешение и может корректно отображать изображение на экране. Это значит, что если вы сканируете изображение в разрешении 300dpi и имеете монитор с разрешением 96dpi, изображение при 100% увеличении будет таким же большим, как оригинал его физического носителя. Достаньте линейку и проверьте!
  • Статус: я не уверен, что печать вообще работает — это нужно проверить кому-нибудь, у кого есть принтер! Остальное сделано и войдет в состав версии 2.0.

Реалистичное смешение цветов

  • Авторы: Эмануэле Тампони
  • Суть: начало было положено проектом Эмануэле в рамках Google Summer of Code 2007 года: нам нужен был холст для смешивания красок наподобие палитры в Corel Painter, но только чтобы смешение цветов было таким же, как в жизни. Эмануэле много раз переделывал свой код и в итоге получил действительно хорошее приближение к действительности.
  • Статус: смешение работает, у нас есть палитра для смешивания красок и оператор рисования, но они пока не доделаны: есть несколько регрессий по сравнению с последней версией работающего кода, и все же нам очень хочется, чтобы в версии 2.0 эта функциональность была. Основная проблема состоит в том, что Эмануэле сейчас слишком занят на работе, чтобы продолжать работать над своим кодом.

Динамические генераторы

  • Авторы: Баудевейн Ремпт
  • Суть: генератор, как основа генератора слоёв — это по существу фильтр, работающий без пикселов на входе, но производящий пикселы на выходе. Его можно использовать для получения фракталов, шума, пламени. В репозитории расширений Krita2 есть экспериментальный генератор, основанный на Shiva.
  • Статус: работает, есть тип слоя, использующий результат работы генератора. Пока еще не воплощено, но в планах на версию 2.1 есть следующее применение генератора: использовать его в качестве опции заливки в инструменте заливки или геометрических инструментах рисования, либо вместо однородной цветовой заливки фона при рисовании или как фоновое изображение для слоя — получить эффект старой бумаги, например.

Клонирование слоёв

  • Авторы: Баудевейн Ремпт
  • Суть: инструмент копирует часть другого слоя (или даже целиком) и переносит его куда угодно в стопке слоёв. Вы можете наложить новую маску эффектов на копию, например, для создания эффекта размытости. Клонирование слоёв также важно для формата OpenRaster.
  • Статус: похоже, что работает. Но нужно тестирование со стороны пользователей

Инструмент измерения

  • Авторы: Свен Лангкамп
  • Суть: этот инструмент (не путать с вспомогательной линейкой при рисовании) позволяет вам измерять расстояние вдоль прямой линии между двумя точками.
  • Статус: отлично работает, будет в версии 2.0.

Векторное/пиксельное выделение

  • Авторы: Свен Лангкамп, Баудевейн Ремпт
  • Суть: в ходе GSoC 2007 Свен Лангкамп  искал возможность улучшения механизма выделения в Krita. Его исследования воплотились в новом методе выделения, обьединяющем в себе векторное и растровое отображение. Граница области выделения отображается теперь с эффектом «марширующих муравьёв». Векторные части механизма выделения интергированы в систему Flake из KOffice, правда пока не полностью — невозможно использовать произвольные формы, только контуры.
  • Статус: работает, но загрузка и сохранение векторных частей выделения, связанного с маской и корректирующим слоем, пока не готовы.

Выбор цвета

  • Авторы: Каспер Бёман, Сирил Бергер
  • Суть: сначала Каспер создал диалог выбора цвета, который исправлял выявленные недостатки ветки 1.x, например, невозможность ввода цвета в цветовых пространствах L*a*b* и CMYK. Затем Сирил добавил массу других выборщиков цвета, в том числе компактный выборщик, используемый теперь по умолчанию.
  • Статус: теперь есть из чего выбрать, но я не думаю, что мы разработали совершенный выборщик цвета. Ни один из наших новых выборщиков не помечает цвета, выходящие за рамки цветового охвата, а в крупном выборщике есть несколько ошибок.

Выбор активного канала

  • Авторы: Баудевейн Ремпт
  • Суть: выполнение операции только в одном канале слоя или ограниченном подмножестве — очень полезная функция. В Krita 2.x мы сделали эту фунцию общедоступной. Вы можете указать, какие каналы слоя являются активными, и только эти каналы будут сводиться в изображении, обрабатываться фильтрами и быть разрисовываемыми.
  • Статус: кое-как работает, но слишком много критических ошибок, поэтому мы наверное не включим эту функцию в состав версии 2.0.

Предустановки движка кисти

  • Авторы: Баудевейн Ремпт
  • Суть: в качестве активного ресурса простая кисть с картофельным штампом или кисть вроде ABR больше не используется. Вместо них — индивидуальный набор параметров кистевого движка. Эффект этих параметров показан при предпросмотре в виде росчерка кисти. В набор параметров могут входить градиенты, текстуры или наборы фильтров. Такие предустановки могут свободно модифицироваться и распространяться через сервис Get Hot New Stuff.
  • Статус: работает, плюс-минус пару ошибок. Сохранение измененных предустановок пока не реализовано, но есть в планах на версию 2.1.

Аппаратно ускоренная отрисовка холста через OpenGL с предспросмотром градиентов на холсте

  • Авторы: Адриан Пейдж
  • Суть: если ваш видеоадаптер поддерживает OpenGL, вы можете использовать аппаратно ускоренную отрисовку холста. Этот способ более быстр и использует меньше ресурсов в сравнении с обычным холстом. Если доступен GLSL — OpenGL Shading Language, видеокарта будет задействана для предпросмотра градиентов и экспозиции HDR.
  • Статус: пока не использует выделение для ограничения градиента.

Улучшенное экранное масштабирование

  • Авторы: Баудевейн Ремпт, Каспер Бёман, Сирил Бергер
  • Суть: для уменьшения масштаба отображаемого изображения Krita 1.6 использует очень простой и быстрый алгоритм. В случае с детализированными изображениями при масштабировании сильно деградирует конечное качество картинки. Теперь Krita использует (когда не работает в режиме OpenGL) куда как более продвинутый алгоритм, основанный на разработках Дэвижа Дулейни, автора темы Mosfet Liquid.
  • Статус: работает хорошо, результаты отличные. Иногда всплывают малозаметные артефакты, но причастность нового алгоритма к ним пока что не доказана, да и производительность пострадала не слишком ощутимо. Следующим шагом будет использование пирамидального метода, чем планирует заняться Барт Коппенс .

Запись макросов

  • Авторы: Сирил Бергер
  • Суть: при включении системы Большого Брата — магнитофона действий — вы получаете сценарий, содержащий запись всех выполненных вами действий. Вы можете воспроизвести этот сценарий просто как повтор последовательности действий или как демонстрацию некоторой техники. Сценарий записывается в формате файлов на основе XML и может быть легко передан кому-нибудь.
  • Статус: работает хорошо, хотя редактирование записанных действий пока не реализовано и не всё еще интегрировано с магнитофоном. Кроме того, я сломал выделение активной кисти, хотя это будет исправлено к выходу версии 2.0.

Предпросмотр фильтров на холсте

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

Новый мозаичный механизм

  • Авторы: Барт Коппенс
  • Суть: мозаичный механизм для Krita был создан еще Патриком Джулиеном. Каспер Бёман сделал возможным автоматически продляемый холст (как в Photoshop, но в противоположность реализации Gimp). Однако в эпоху многоядерных процессоров текущий мозаичный механизм тормозится так называемым Великим и Ужасным Блокиратором Krita. В нагрузку идет еще пара несчастий. Но Барт Коппенс изготовил противоядие в виде нового мозаичного механизма.
  • Статус: пока не закончено, и производительность еще только предстоит оптимизировать. К тому же, некоторые части кода Krita, в основном фильтры, делают неверные предположения, что новый механизм уже используется.  К несчастью, это выливается в падение программы. Так что новый мозаичный механизм в состав версии 2.0 включён не будет.

Сжатая мозаика

  • Авторы: Баудевейн Ремпт
  • Суть: если сжимать старые мозаичные данные (например, информацию для отката изменений) в памяти и записывать такой архив в файл подкачки, это даст экономию при расходе памяти и в количестве обращений к кэшу, а следовательно поднимет производительность при использовании области подкачки.
  • Статус: как бы работает, но нестабильно, чтобы быть включенной по умолчанию — пришлось временно выкинуть эту функцию за борт. Впрочем, для версии 2.1 она еще не потеряна, поскольку поможет существенно сократить размер потребляемой памяти.

Многопоточное выполнение многих операций

  • Авторы: Баудевейн Ремпт, Сирил Бергер
  • Суть: фильтры, обрабатывающие большие участки слоя или сразу несколько слоёв — первые кандидаты на переделку под многопоточность, чтобы задействовать всю мощь современных многоядерных процессоров. Мы реализовываем многопоточность разными способами, в основном посредством Threadweaver — это класс KisThreadedApplicator, который берет слой, задание и участок, автоматически разбивает участок на куски и ставит их обработку в очередь. При рисовании используются «нити» — мы заносим в очередь ваши движения кистью и обрабатываем их в фоновой «нити». Многие операции, затрагивающие сразу несколько слоёв, распараллелены: например, масштабирование или трансформация цвета. Благодаря всему этому Krita теперь имеет индикаторы прогресса для каждого обрабатываемого слоя и маски в диалоге слоёв.
  • Статус: и хорошо, и плохо. С одной стороны, рекомпозиция выполняется в фоновых потоках, но из-за некоторых алгоритмических недочетов пришлось от этого отказаться, и я работаю над новым подходом. Кстати говоря, я ещё должен проверить, используется ли многопоточность при масштабировании изображений.

Также есть несколько других новых расширений, например, отображение тонов, сборка экспозиций в HDR и отображение тонов, сборка панорам и ещё больше в репозитории расширений Krita2.

Наконец, Krita теперь запускается на OSX и Windows — установить программу достаточно сложно, но это вполне выполнимая задача.

Регрессии

Панель навигации по изображению. Благодаря тому, что теперь есть общий холст и архитектура документа, эту панель можно реализовать для всего KOffce сразу. Мартин Пфайфер, победитель конкурса на лучший дизайн интерфейса KOffice2, взялся за реализацию этой функции, но без вести пропал.

Фильтр CImg: Я сделал этот фильтр для Krita 1.х в порядке эксперимента и на самом деле никогда не занимался поддержкой его в рабочем состоянии. Он зависит от цветового пространства, очень медленно работает, и компилятор выдаёт на нём множество страшных предупреждений. Недавно мы перенесли его в пакет krita-plugins. Некоторые другие фильтры тоже не были портированы: например, colorify и halftone.

Векторные инструменты. Работая над Krita во время Summer of Code 2006, Эмануэле Тампони написал для нас инструмент рисования кривых Безье, выделение кривыми Безье и просто безумный инструмент магнитного выделения. Так как мы теперь делим векторные инструменты с остальными приложениями пакета KOffice, эти векторные инструменты никогда не были портированы. Сейчас в Krita есть векторное выделение и векторное рисование с использованием кисти, но инструмента магнитного выделения до сих пор нет.

Маски выделения. Свен Лангкамп создал для Krita выделение «марширующими муравьями» и функцию смешанного векторного-пиксельного выделения в рамках своего проекта Google Summer of Code 2007. Однако его работа застопорилась на процессе отображения выделения или маски как маски. С этим тоже нужно что-то делать, когда мы приступим к переделки механизма перерисовки.

Распаралелленная рекомпозия. Вообще-то, эта функциональность никогда и не входила в Krita 1.x, но в процессе разаработки ветки 2.0 некоторое время работала. Мне пришлось выкинуть ее, когда я заново создавал стратегию рекомпозиции. Тем не менее я добавил этот пункт в свой TODO для ветки 2.1.

Контуры курсора кисти. С новым механизмом отрисовки вQt оператор XOR больше не поддерживается, что сильно затрудняет реализацию этой функции. Пока в списке планов на будущее.

Акварели, наша гордость и краса. Мы убрали это цветовое пространство из-за возникших проблем с механизмом отката изменений и спроектировали новою архитектуру как часть проекта Эмануэле в рамках GSoC, чтобы использовать это пространство более широко. «Влажность» никогда не была достаточно готова для 2.0, хотя цветовое смешение теперь значительно лучше, чем в старой версии. Плюс со времён 1.х в TODO осталось несколько пунктов, например панель истории действий.

Окончательно отвергнутые планы

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

Итоги

За вычетом пигментов и других разделяемых с KOffice библиотек Krita сейчас содержит 120 000 строк кода. Половина из них приходится на расширения, а другая половина разбивается на 30 000 строк кода ядра и 20 000 строк кода пользовательского интерфейса. Что, собственно, не намного больше чем для Krita 1.6!

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


Автор: Баудевейн Ремпт
Оригинал: Four thousand words on the state of Krita
Перевод: Сергей 'SeaJey' Андреев, Алексей 'LXj' Алексеев
Лицензия: Creative Commons BY-NC-ND 3.0

Комментарии
#1 | max 15/02/2009 15:39
Отсутствие виндовой версии и жесткая привязка к KDE делали свое пагубное дело.
#2 | SeaJey 15/02/2009 21:12
Отсутствие виндовой версии

Собственно, она есть:
Наконец, Krita теперь запускается на OSX и Windows — установить программу достаточно сложно, но это вполне выполнимая задача.


и жесткая привязка к KDE

Иначе пришлось бы огромное количество кода писать на голом Qt. C'est la vie.
#3 | max 15/02/2009 23:06
Собственно я ничего против KDE не имею, даже наоборот.
ИМХО из-за наличия виндовой версии у GIMP больше аудитория чем у Krita, тоже происходит и с inkscape VS karbon14. И грешить на падучесть kritы нельзя, было бы больше комьюнити...
Про портирование в винду знаю.
#4 | SeaJey 16/02/2009 00:24
и с inkscape VS karbon14

Имхо, карбон инскейпу не конкурент. Но он вполне смотрится в составе Koffice-suit.
С Критой сложнее, но опять же, нужно правильно её позиционировать:
сделать упор на то, что это прежде всего инструмент для рисования и компьютерной живописи, а уже потом для редактирования изображений и работе с фотографиями.
Плюс, "Запись макросов" в потенциале мегафича:
на том же deviantART'е до сих пор популярна по нынешним временам уже древняя версия графического редактора openCanvas - а всё из-за того, что можно было записывать свои действия в файл и обмениваться ими.
#5 | prokoudine 16/02/2009 11:29
@SeaJay: это не просто ИМХО, это факт Smile Даже скопипащенная из инкскейпа каллиграфическая кисточка не помогает Smile
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.