Cobalt

Вы просматриваете архив старого форума. Новый форум по ссылке


Автор Сообщение

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 25-12-2011 13:18
Cobalt

Прототип графического редактора / программы для композитинга на основе узлов (нодов).

Мне нравится встроенный в Blender редактор узлов, при помощи которого можно осуществлять пост-обработку отрендеренных изображений. Поэтому решил написать что-то похожее - тем более, что таких программ вообще на сегодняшний день очень мало.



Принцип работы

Каждая операция над изображением представлена отдельным узлом графа, который хранит отфильтрованную копию оригинального изображения (для ускорения операций, копия уменьшается). Она передается по цепочке другим узлам - до достижения финального результата. По команде пользователя осуществляется полный рендеринг путем прохождения оригинального изображения через все узлы. Таким образом редактирование получается нелинейным и неразрушающим - в любой момент можно изменить любой шаг работы. Это значительно отличается от традиционного подхода с использованием слоев.

Фильтров пока не так много. Есть только самые простые:
- размытие (Blur);
- инвертирование (Invert);
- конвертация в черно-белое (Desaturate);
- повышение контраста (Contrast);
- распознавание контуров (Edge Detection) методом DoG (Difference of Gaussians);
- повышение резкости (Sharpen);
- зеркальное отображение по вертикали (Flip Vertical).

Инструкции по использованию

- На данный момент нет интерфейса загрузки изображений - программа при старте загружает картинку по умолчанию из images/image001.tga и создает узел с ней.
- Чтобы добавить узел-фильтр к изображению, выделите его и нажмите одну из ссылок вверху.
- Выделять/перетаскивать узлы можно левой кнопкой мыши. Есть поддержка выделения боксом. Можно зажать левый Ctrl и выделить несколько узлов подряд.
- Можно перемещаться по рабочему пространству, зажав среднюю кнопку мыши. Колесико мыши масштабирует вид.
- Чтобы отрендерить узел, выделите его и нажмите Enter. Результат будет сохранен в tmp/last_output.ppm (формат PPM открывается в GIMP).

Ограничения

- На данный момент невозможно менять связи между существующими узлами.
- Нет настройки фильтров (не реализованы виджеты интерфейса для узлов).
- Нет диалога загрузки/сохранения изображений.
- Топорный интерфейс добавления фильтров.
- Программа нестабильна и неоптимизирована.

Планы на будущее

- Инструменты для рисования (узел-холст) - возможно, с поддержкой графического планшета;
- Скриптовый язык для написания фильтров (либо поддержка бинарных плагинов);

Скачать

Для Windows
Для Linux
Исходники

бывалый
Группа: Участники
Сообщений: 49
Добавлено: 01-01-2012 22:20
Это что-то типа MapZone? Как обрабатываешь картинку? Программно или средствами OpenGL?
Тоже хотел написать похожую программу, но отложил на неопределённый срок. Очень много других дел.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 02-01-2012 19:10
Да, нечто вроде MapZone.
Весь GUI работает на OpenGL.

бывалый
Группа: Участники
Сообщений: 49
Добавлено: 03-01-2012 23:47
Про GUI я и так понял. Эффекты к картинке как делаются? Программно циклами или через шейдеры?

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 29-01-2012 11:00
Эффекты делаются программно (пока только в момент создания узла). Поскольку фильтруется уменьшенная копия, это происходит очень быстро.