Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Раскраска текстуры [Delphi, Windows]


Dimaxx ©   (2004-05-12 21:29:00) 

Сабж. Есть текстура туманности. Она в оттенках красного (с примесью других цветов, но может быть и синего, принципиально неважно). Мне нужно получить другой цвет этой туманности. Например, желтовато-зеленый, с сохранением внешнего вида и сохраненным черным цветом фона. Есть какой-нить алгоритм для перекрашивания изображения. Цвет не фиксирован, нужна универсальность. Текстура, допустим, фиксирована. Цвет ее зависит, скажем, от звезды. Вот и нужно перекрасить в цвет свечения звезды.


Dimaxx   (2004-05-14 23:40:00) [1]

Mihey - super!!! Respect.


MeF88   (2004-05-14 09:59:00) [2]

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


Mihey   (2004-05-13 22:58:00) [3]

Примерчик...
http://delphibase.endimus.ru/?action=viewfunc&topic=mediaimg&id=10178


Dimaxx   (2004-05-13 22:44:00) [4]

Примерчик про перемножение цвета в grayscale мона? Я тока начинаю с этим работать, поэтому и возникают такие глупые вопросы.


wiz   (2004-05-12 22:48:00) [5]

to Dimaxx:

Mihey в целом прав, делаешь grayscale текстуру, а потом домножаешь на определённый цвет, получаешь то, что нужно...

способ второй (более геморойный), сделать алгоритм изменения Hue ("цветность") а-ля мощные редакторы (Photoshop и проч.). Алгоритм должен работать примерно следующим образом:
1) переводим пиксел картинки из RGB в HSB (Hue/Saturation/Brightness)
2) добавляем к значению Hue нужное число X
3) переводим обратно в RGB

таким алгоритмом ты будешь переводить (в зависимости от X), например, красный в зелёный, при этом зелёный переходит в синий, синий в красный, чёрный и белый остаются на местах.

перевод RGB->HSB искать на просторах интернету...
(например http://vedenev.gorodok.net/RGB_HSB/)


Mihey   (2004-05-12 22:19:00) [6]

Серой текстуру сделать - это будут оттенки будущего цвета.


Thor   (2004-05-12 21:32:00) [7]

первое, что приходит на ум - менять цветовую схему с, положим, RGB на BGR и т.п.


Наверх

Титульная страница Поиск, карта сайта Написать письмо