Просмотр полной версии : Генератор палитры
Кто-нибудь знает как правильно сгенерировать "правильную" палитру для шахматного пиксельного поля?
(ну по типу как для всяких атрибутных "огней", плазм, "бампмаппингов" или как там это всё называется).
На рис.1 - программка на бэйсике которая в общем-то генерит нечто похожее, но неправильно.
Должно получатся что-то вроде рис.2 (спектр и яркость распределены последовательно и плавно).
Как это рассчитывают демомейкеры? (ведь для того-же "огня" атрибутного нужно последовательно расставить чтоб от минимума яркости до максимума).
Неужели это всё руками подбирают?
Barmaley_m
12.11.2012, 02:14
Если речь идет просто о том, чтобы повторить рис. 2 - то это надо читать про цветовые модели HSV или HSL. Например, здесь:
http://ru.wikipedia.org/wiki/HSV_(%D1%86%D0%B2%D0%B5%D1%82%D0%BE%D0%B2%D0%B0%D1 %8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C)
В статье приведены формулы, по которым можно преобразовывать цвет из формы HSV в форму RGB. Грубо говоря, разложение цвета по компоненам HSV позволяет отдельно управлять оттенком, насыщенностью и яркостью. H - это оттенок (Hue), он проходит по всему спектру и закольцовывается через пурпурный. На изображенной картинке оттенок соответствует горизонтальной оси.
S - это насыщенность цвета (Saturation), когда она равна нулю - то имеем серый цвет, когда 1 - то цвет максимальной насыщенности, а между ними - промежуточные состояния. На картинке этот параметр соответствует вертикальной оси.
Ну и V (Value) или L (Level) - это яркость. На картинке она не изображена, поскольку для этого потребовалась бы объемная картинка. Примеры таких объемных картинок приведены в Википедии.
Отдельный вопрос - это реализация цветов на Спектруме. То есть, если создать плазму в HSV и потом пересчитать ее на RGB - то получить изображение удастся только на современных компьютерах, а у Спектрума цветов мало, поэтому потребуются ухищрения с применением мозаики и/или мерцания. Есть хорошая и простая в реализации методика генерации мозаики, называется Floyd-Steinberg Dithering - см. статью:
http://en.wikipedia.org/wiki/Floyd%E2%80%93Steinberg_dithering
На русский не знаю, как переводится.
null_device
12.11.2012, 02:38
Как это рассчитывают демомейкеры?
По-моему, пользуются неким подобием "таблицы".
у Спектрума цветов мало, поэтому потребуются ухищрения с применением мозаики
Посмотрите, как нечто подобное реализовано в заставке к НЛО2 или скринсейвере Brst Viewer.
скринсейвере Brst Viewer.
Вот это очень близко к делу.
(только синий и голубой цвета куда-то делись.)
goblinish
12.11.2012, 09:46
Да вообще, если глянуть на код, например в Rise demo себя не утруждают.
http://glair.narod.ru/zx/11.jpg
а вот в Catypn 4k наверняка забитая палитра. интересно было бы подобрать алгоритм.
Да вообще, если глянуть на код, например в Rise demo себя не утруждают.
В том и петрушка что такая страшненькая картинка не нужна.
а вот в Catypn 4k наверняка забитая палитра. интересно было бы подобрать алгоритм.
Можно ссылу?
(что-то не припомню я такого, глянуть хоть что там по сабжу)
goblinish
12.11.2012, 17:48
Можно ссылу?
(что-то не припомню я такого, глянуть хоть что там по сабжу)
http://zxspectrum48.i-demo.pl/zxdemos_pliki/intros/CATYPH4K.TAP
В том и петрушка что такая страшненькая картинка не нужна.
я, кстати, озадачивался похожей генерацией палитры, но пока ничего не придумал.
выходит, что как в TOXI(http://zxspectrum48.i-demo.pl/zxdemos_pliki/intros/TOXI_1kb.TAP) пользуются предварительной забитой палитрой.
В CATYPH4K смотрится хорошо, но там меняется и монохромная составляющая :( (это не подходит)
TOXI - тоже как-то страшненько.
Блин, даже дёрнуть палитру неоткуда :)
goblinish
12.11.2012, 18:02
TOXI - тоже как-то страшненько.
в токси здорово сделано, особенно с появлением цвета, заодно палитра при плазме(та же, что в Critical Error) - очень интересная.
Блин, даже дёрнуть палитру неоткуда
помочь?8)
помочь?8)
Не откажусь.
Только нужно придумать как её оценивать на взгляд.
Например возмем два вида заполнения #AA,#55 и #88,#22 (т.е. в каждом знакоместе сверху вниз чередуются байты #AA потом #55 - это шахматное поле. Или другая заливка - #88 и #22).
И наносить на эту сетку палитру.
goblinish
12.11.2012, 18:18
Только нужно придумать как её оценивать на взгляд.
Например возмем два вида заполнения #AA,#55 и #88,#22 (т.е. в каждом знакоместе сверху вниз чередуются байты #AA потом #55 - это шахматное поле. Или другая заливка - #88 и #22).
новые чанки?) на этой демки подборка удачная имхо. попробуй с ней.
новые чанки?) на этой демки подборка удачная имхо. попробуй с ней.
В архиве только скрин, а где саму демку взять?
(знаю про сайт ААА, но там всё так запутано что зарёкся туда лазить)
goblinish
12.11.2012, 18:27
В архиве только скрин, а где саму демку взять?
(знаю про сайт ААА, но там всё так запутано что зарёкся туда лазить)
где-то тут:
http://nitroroms.com/show/file-info/L148532/Sinclair_ZX_Spectrum/Madness%20Remix%20(1991)(The%20Mad%20Guys).z80.htm l
скрин оставил для себя, чтобы расколупать цвета. хотя, пока это не актуально, наверное.
скрин оставил для себя, чтобы расколупать цвета. хотя, пока это не актуально, наверное.
На том скрине чанки неравномерные.
Они спецом заточены под переходы цветов, причём строго по горизонтали.
Так что там даже не палитра, а в общем-то "наколка", "развод".
Частный случай.
goblinish
12.11.2012, 18:41
а том скрине чанки неравномерные.
Они спецом заточены под переходы цветов, причём строго по горизонтали.
Так что там даже не палитра, а в общем-то "наколка", "развод".
Частный случай.
по пути Debut пошел?
тогда я вижу только способ вытащить одну из готовых наборов атрибутов и посмотреть на набор чанок.
по пути Debut пошел?
Debut - это что? Демка, группа, человек?
тогда я вижу только способ вытащить одну из готовых наборов атрибутов и посмотреть на набор чанок.
Чанков быть не должно (просто статично залитый экран).
Меняются только атрибуты (ну например как в Noumenon, где буквы огненные)
goblinish
12.11.2012, 18:50
Debut - это что? Демка, группа, человек?
http://www.pouet.net/prod.php?which=58886
там на плазме чанке заковыристые.
Меняются только атрибуты (ну например как в Noumenon, где буквы огненные)
у огня либо красный-белый-желтый, либо вариации с синим, надо поискать интру, не помню, где было.
у огня либо красный-белый-желтый, либо вариации с синим, надо поискать интру, не помню, где было.
Да огонь можно и вручную задать (там не так много).
А вот чтоб все возможные цвета, да расположеные по спектру - вот собственно тема разговора.
goblinish
12.11.2012, 19:04
А вот чтоб все возможные цвета, да расположеные по спектру - вот собственно тема разговора.
и откуда спектр? не VGA часом?
null_device
12.11.2012, 19:05
тоб все возможные цвета, да расположеные по спектру - вот собственно тема разговора.
Собственно примерно, как в BV - одна "текстура", манипуляция с атрибутами. Первое - нечто, наподобии "радуги", второе - градиентный переход по очереди, от одного цвета к другому (хотя, даже при таком способе, конечных комбинаций можно получить больше).
goblinish, по дебюту - там чанки черезстрочные :) но интересные конечно
goblinish
12.11.2012, 19:09
goblinish, по дебюту - там чанки черезстрочные но интересные конечно
угу, верно.
goblinish
12.11.2012, 19:10
Собственно примерно, как в BV - одна "текстура", манипуляция с атрибутами. Первое - нечто, наподобии "радуги", второе - градиентный переход по очереди, от одного цвета к другому (хотя, даже при таком способе, конечных комбинаций можно получить больше).
ну здесь цвета - это просто, весь спектр в подборе.
Первое - нечто, наподобии "радуги"
Ну да, пожалуй то что нужно.
Раз нет алгоритма - попробую заюзать такую.
goblinish
13.11.2012, 14:27
плазма в TOXI, tox8e00.bin - сама палитра, если я правильно понял.
Как генерировать палитру?
Представьте себе трехзначное число с основанием счисления равным максимальному значению цветовой компоненты.
Вот и считайте его от 0 до скольки нужно, а результаты в таблицу складывайте. И будет вам счастье.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot