Page 2 of 3

Re: sXg: Spectrum eXtended Graphics

PostPosted: Mon, 23.03.2015 13:05:53
by jimbo_77
Еще немного в палитре

Re: sXg: Spectrum eXtended Graphics

PostPosted: Mon, 23.03.2015 23:42:33
by evovxn
jimbo_77, симпатично. Чем-то похоже на винрарную спековскую игру Myth - History in the Making. Вот бы её на TS-Conf перенести со спрайтами и тайлами!

Re: sXg: Spectrum eXtended Graphics

PostPosted: Tue, 24.03.2015 10:11:54
by VBI
jimbo_77, по тайлам и спрайтам такая ситуация:
на тайл или на спрайт идёт одна палитра: 15 цветов + 1 фоновый, который будет прозрачным.
всего палитр у нас 16, и для тайлов/спрайтов они группируются в наборы по 4 штуки
все палитры общие

Re: sXg: Spectrum eXtended Graphics

PostPosted: Tue, 24.03.2015 11:00:43
by jimbo_77
То есть в результате 16 тайлов по 16 цветов мы имеем используемую палитру в 256 отображаемых на экране цветов.
Поправте если я не правильно понял. Еще интересует вопрос по размерам тайлов, спрайтов. Есть ли ограничения 10х10 или 100х100 к примеру
EVOVXN. Да игры были шедевральные и Myth и Rex 1-2 в плане графического исполнения выше всяких похвал. Но мне кажется для zx были бы полезнее оригинальные проекты, способные заинтересовать, привлечь новых пользователей и продвинуть платформу.

Re: sXg: Spectrum eXtended Graphics

PostPosted: Tue, 24.03.2015 13:05:38
by VBI
один тайл - одна палитра, для одного слоя - не больше 4х палитр на экран. т.е. - палитра для земли юзается в тайлах земли, палитра для лестниц (дерево, к примеру) - на всяких деревянных тайлах :)
с размерами тайлов: тайл 8x8 точек, из них городи что угодно до от 1х1 до 64х64 тайла на один слой

Re: sXg: Spectrum eXtended Graphics

PostPosted: Tue, 24.03.2015 13:14:39
by TS-Labs
VBI wrote:для тайлов/спрайтов они группируются в наборы по 4 штуки

Только для тайлов. Спрайт имеет 4 бита палитрового селектора. Тайлы - 2 и 2 в общем селекторе для слоя (индивидуально для 2 слоев).
jimbo_77 wrote:Еще интересует вопрос по размерам тайлов, спрайтов.

Тайлы только 8х8 (в англоязычной литературе тайлы называют текстмодом, фактически так и есть - "символ" 8х8 пикс, "знакогенератор" из 4096 "символов"). Спрайты от 8х8 до 64х64, с шагом 8, по обеим осям независимо.

Re: sXg: Spectrum eXtended Graphics

PostPosted: Tue, 24.03.2015 13:36:13
by jimbo_77
По размерам более менее понятно, плясать надо от стандарта 8х8. Но как писал выше TS-Labs фон может быть к примеру 128 цветов, а остальная графика в спрайтах-тайлах как мы говорили только-что

Re: sXg: Spectrum eXtended Graphics

PostPosted: Tue, 09.02.2016 18:07:44
by VBI
Dyadya breeze, нужен твой рецепт готовки sXg для рс, желательно в виде исходника.
по компрессии не решалось ничо?

Re: sXg: Spectrum eXtended Graphics

PostPosted: Tue, 09.02.2016 23:46:51
by LessNick
По компрессии не решалось ничего. Формат уже как бы описывался, но приатачу сорцы loadsxg для Cli2. При желании не сложно допилить до плагина WC. Вприниципе я уже начинал его писать, но что-то не сраслося.

Есть утилита в консоль «bmp2sxg».

Re: sXg: Spectrum eXtended Graphics

PostPosted: Wed, 10.02.2016 00:16:05
by VBI
Спасибо!
хорошо бы получить любой исходник bmp2sxg, пусть даже на Perl ;)


Re: sXg: Spectrum eXtended Graphics

PostPosted: Wed, 10.02.2016 00:27:41
by moroz1999
Правильно ли я понимаю, что:
1. Палитра имеет нефиксированную длину, конец задается смещением.
2. Палитра два байта на цвет. По какой логике задаются цвета?
3. Пиксели - просто однобайтовый номер цвета в палитре, верно?

Я с tsconf не работал, не понимаю еще немного.
Если в заголовке указать 16ц, то палитра должна быть один байт на цвет, да?

Re: sXg: Spectrum eXtended Graphics

PostPosted: Wed, 10.02.2016 00:29:59
by LessNick
VBI wrote:хорошо бы получить любой исходник bmp2sxg, пусть даже на Perl


исходник на c, компилится gcc под bsd и win32, сцылко в пм

Re: sXg: Spectrum eXtended Graphics

PostPosted: Wed, 10.02.2016 00:37:06
by LessNick
moroz1999 wrote:Правильно ли я понимаю, что:
1. Палитра имеет нефиксированную длину, конец задается смещением.


да, есть палитра для 16ц, и для 256ц

moroz1999 wrote:2. Палитра два байта на цвет. По какой логике задаются цвета?


Ну по той же какой и задумывал автор. Вообще, если цвета «выбиваются» из 555 палитры, то они «адаптируются», пример лога работы bmp2sxg:

Code: Select all
           No #      R   G   B        R   G   B        pentevo    xRRrrrGG gggBBbbb
BMP color   0[#00] [#00,#00,#FF] ->   0,  0, 24 ->   0, 24[#0018] 00000000 00011000
BMP color   1[#01] [#00,#00,#F4] ->   0,  0, 23 ->   0, 23[#0017] 00000000 00010111
BMP color   2[#02] [#00,#00,#E9] ->   0,  0, 22 ->   0, 22[#0016] 00000000 00010110
BMP color   3[#03] [#00,#00,#DF] ->   0,  0, 21 ->   0, 21[#0015] 00000000 00010101
BMP color   4[#04] [#00,#00,#D4] ->   0,  0, 20 ->   0, 20[#0014] 00000000 00010100
BMP color   5[#05] [#00,#00,#C9] ->   0,  0, 19 ->   0, 19[#0013] 00000000 00010011
BMP color   6[#06] [#00,#00,#BF] ->   0,  0, 18 ->   0, 18[#0012] 00000000 00010010
BMP color   7[#07] [#00,#00,#B4] ->   0,  0, 17 ->   0, 17[#0011] 00000000 00010001
BMP color   8[#08] [#00,#00,#AA] ->   0,  0, 16 ->   0, 16[#0010] 00000000 00010000
BMP color   9[#09] [#00,#00,#9F] ->   0,  0, 15 ->   0, 15[#000F] 00000000 00001111
BMP color  10[#0A] [#00,#00,#94] ->   0,  0, 14 ->   0, 14[#000E] 00000000 00001110
BMP color  11[#0B] [#00,#00,#8A] ->   0,  0, 13 ->   0, 13[#000D] 00000000 00001101
BMP color  12[#0C] [#00,#00,#7F] ->   0,  0, 12 ->   0, 12[#000C] 00000000 00001100
BMP color  13[#0D] [#00,#00,#75] ->   0,  0, 11 ->   0, 11[#000B] 00000000 00001011
BMP color  14[#0E] [#00,#00,#6A] ->   0,  0, 10 ->   0, 10[#000A] 00000000 00001010


Так же в bmp2sxg можно принудительно зарезать палитру до 64х цветов аля ATM-натюрель.

moroz1999 wrote:3. Пиксели - просто однобайтовый номер цвета в палитре, верно?


да, если режим 256ц. если режим 16ц, то 2 точки рядом по 4 бита.

Re: sXg: Spectrum eXtended Graphics

PostPosted: Wed, 10.02.2016 04:55:23
by g0blinish
breeze wrote:По компрессии не решалось ничего.


надо бы.

Re: sXg: Spectrum eXtended Graphics

PostPosted: Wed, 10.02.2016 12:16:05
by LessNick
g0blinish wrote:надо бы.


Ну поскольку очень часто встречаются длинные последовательности, то имхо RLE прикрутить проще всего.

Re: sXg: Spectrum eXtended Graphics

PostPosted: Wed, 10.02.2016 13:29:16
by g0blinish
breeze wrote:то имхо RLE прикрутить проще всего.


можыд, zx7?

Re: sXg: Spectrum eXtended Graphics

PostPosted: Thu, 11.02.2016 01:50:09
by moroz1999
breeze wrote:Ну по той же какой и задумывал автор. Вообще, если цвета «выбиваются» из 555 палитры, то они «адаптируются», пример лога работы bmp2sxg:

Спасибо! Разобрался, просто раньше не работал с 555.

Re: sXg: Spectrum eXtended Graphics

PostPosted: Thu, 11.02.2016 02:11:49
by moroz1999
Итак, саппорт sXg на ZX-Art готов.
Излагаю мнение по поводу имеющихся работ:
1. baseconf-юзеры (deathsoft, например), выбрали себе 16 colors bmp в качестве формата хранения. Считаю, что работы под baseconf стоит оставить в этом самом bmp, так как у них есть просмотрщик на реале, к которому они привыки.
2. авторы сами решают, использовать sXg или bmp. У авторов приоритет выше, это их работы.
Согласны с такой постановкой?

Re: sXg: Spectrum eXtended Graphics

PostPosted: Thu, 11.02.2016 02:15:34
by moroz1999
http://zxart.ee/eng/authors/b/breeze/vd14f/ - breeze, эту работу я для пробы заменил на sXg. Всё правильно выглядит?

Re: sXg: Spectrum eXtended Graphics

PostPosted: Thu, 11.02.2016 02:20:43
by moroz1999
И еще уточнение. У tsconf бордер есть? :)

Re: sXg: Spectrum eXtended Graphics

PostPosted: Thu, 11.02.2016 02:39:37
by TS-Labs
Есть. Полный видеорастр (то, что попадает в монитор и не закрашено гасящими) - 360х288. Есть 4 размера пиксельной области 256х192, 320х200, 320х240, остальное по краям бордюр. В 360х288 бордюра нет.

Re: sXg: Spectrum eXtended Graphics

PostPosted: Thu, 11.02.2016 13:39:08
by LessNick
moroz1999 wrote:Всё правильно выглядит?


Ну скажем так. Я не знаю что за картинку ты брал за основу, но вообще по идее оно выглядит не правильно. Ибо изначально это рисовалось под Pentagon SL 2.2 со стандартными 16 ZX цветами. Подозреваю, что таки мой лейм ибо в bramble я не проверил и также искаженная палитра.

По сему должна быть цвета #00 -> #7f -> #ff без всяких левых примесей.

Вот собственно правильный файл и выглядит так:

Image

Расширение sxg запрещено администратором.

И да, работы в SXG уже можно заливать на ZXArt? :vodka:

Re: sXg: Spectrum eXtended Graphics

PostPosted: Thu, 11.02.2016 14:01:03
by moroz1999
Давай сначала разберемся с палитрой, тогда будем заливать остальные работы, иначе мне кэш файловый нужно будет как-то сбрасывать ручками для этих работ.
Я брал sXg из bramble.
1. У тебя на картинке есть бордер зеленый. Это обычный зеленый бордер, правильно?
2. Возможно, я из RGB555 неправильно делаю RGB888. Очень возможно, я перепроверю, что в исходном sXg, и что получается у меня.

Посмотри, пожалуйста - я правильно понимаю, что зеленый цвет в палитре этого sXg файла идет первым (номер 0), его значение #01C5, то есть 0000000111000101 ?

Re: sXg: Spectrum eXtended Graphics

PostPosted: Thu, 11.02.2016 14:08:28
by moroz1999
Моя логика вычислений.

Если в RGB555 цвет 0000000111000101, то:
Синий 00101 = 5
Зеленый 01110 = 14
Красный 00000 = 0

Итого RGB888:
Синий 5/24 * 255 = 53 = #34
Зеленый 14/24 * 255 = 148 = #94
Красный 0/14 * 255 = 0 = #0

Итого RGB888= #009434. На картинке пипеткой можно намерять #009535, тут погрешность может быть мелкая.

Re: sXg: Spectrum eXtended Graphics

PostPosted: Thu, 11.02.2016 14:08:35
by LessNick
moroz1999 wrote:Давай сначала разберемся с палитрой,


Если ты брал из bramble, тогда понятно там палитра тоже была искаженная.

moroz1999 wrote:1. У тебя на картинке есть бордер зеленый. Это обычный зеленый бордер, правильно?


нет, эту картинку я уже переделал под 360x288x16 здесь нет бордера вообще!

moroz1999 wrote:2. Возможно, я из RGB555 неправильно делаю RGB888


Не думаю, скорее всего проблема в изначально неверной палитре у меня. Перезалей файл SXG что я приатачил выше проверь что получилось.

Вот лог преобразования bmp2sxg:

Code: Select all
           No #      R   G   B        R   G   B        pentevo    xRRrrrGG gggBBbbb
BMP color   0[#00] [#FF,#00,#FF] ->  24,  0, 24 ->  96, 24[#6018] 01100000 00011000
BMP color   1[#01] [#7F,#00,#7F] ->  12,  0, 12 ->  48, 12[#300C] 00110000 00001100
BMP color   2[#02] [#00,#00,#FF] ->   0,  0, 24 ->   0, 24[#0018] 00000000 00011000
BMP color   3[#03] [#00,#00,#7F] ->   0,  0, 12 ->   0, 12[#000C] 00000000 00001100
BMP color   4[#04] [#00,#FF,#FF] ->   0, 24, 24 ->   3, 24[#0318] 00000011 00011000
BMP color   5[#05] [#00,#7F,#7F] ->   0, 12, 12 ->   1,140[#018C] 00000001 00000000
BMP color   6[#06] [#FF,#FF,#FF] ->  24, 24, 24 ->  99, 24[#6318] 01100011 00011000
BMP color   7[#07] [#00,#FF,#00] ->   0, 24,  0 ->   3,  0[#0300] 00000011 00000000
BMP color   8[#08] [#00,#7F,#00] ->   0, 12,  0 ->   1,128[#0180] 00000001 00000000
BMP color   9[#09] [#FF,#FF,#00] ->  24, 24,  0 ->  99,  0[#6300] 01100011 00000000
BMP color  10[#0A] [#7F,#7F,#00] ->  12, 12,  0 ->  49,128[#3180] 00110001 00000000
BMP color  11[#0B] [#FF,#00,#00] ->  24,  0,  0 ->  96,  0[#6000] 01100000 00000000
BMP color  12[#0C] [#7F,#00,#00] ->  12,  0,  0 ->  48,  0[#3000] 00110000 00000000
BMP color  13[#0D] [#00,#00,#00] ->   0,  0,  0 ->   0,  0[#0000] 00000000 00000000