Russian Qt Forum
Ноябрь 23, 2024, 01:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Селективный эффект  (Прочитано 2161 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Апрель 02, 2014, 13:21 »

Добрый день

Есть фабрика эффектов (десятка 2) применяющихся к изображению. Псевдокод
Код
C++ (Qt)
struct Effect {
Effect( arg1, arg2, ... );   // опции задаваемые пользователем
 
virtual void Apply( ARGB & pixel, const Options & );  // действия/применение самого эффекта
 
virtual void OpenUI( Options & );  //  UI где юзер меняет опции эффекта
};
Можно сказать и "плагин" (вместо "эффект")

Задача сделать эффекты селективными, т.е. юзер задает маску (в простейшем случае альфа-канал, хотя есть и др варианты). На первый взгляд все просто: пусть все эффекты выполняются как сейчас, а потом смешали/взвесили результат с исходным по маске. К сожалению, так не выходит. Пример: эффект "вращение". Если мы хотим иметь "половину вращения" - надо уменьшить угол поворота вдвое - но не смешивать с исходным. Юзер хочет видеть бубочку в UI эффекта (рядом с параметром "angle") где он сможет назначить/сменить маску.

Прямолинейное решение: перелопатить все UI и все опции (со всеми вытекающими). А как это сделать "более идейно" ?

Спасибо
 
« Последнее редактирование: Апрель 02, 2014, 15:01 от Igors » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Апрель 04, 2014, 07:28 »

Ну вот, я ожидал что меня затопчут "современными технологиями" (по ходу дела объясняя какой я отсталый и тупой) - но ничего не произошло  Улыбающийся

Вот слыхал я про "Node Editor" и вот вроде он здесь в масть, подходит. Наверное и реализации open-source найдутся. Но то все посвящено визуализации, а как мне строить структуры/данные в расчете на это?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.328 секунд. Запросов: 22.