User Tag List

Страница 5 из 5 ПерваяПервая 12345
Показано с 41 по 49 из 49

Тема: Быстрый попиксельный вывод спрайтов с маской без таблиц

  1. #41

    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,691
    Спасибо Благодарностей отдано 
    302
    Спасибо Благодарностей получено 
    223
    Поблагодарили
    159 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Места займет больше чем автосгенерированная маска (но меньше, чем полный набор масок), но качество маскировки заметно лучше.
    У меня была чуть другая идея, пробовал собирать маску из стандартных блоков, которые в UDG есть + ещё несколько дополнительных.
    Heavy on the disasm
    Eric and the disasm
    Mask 3: Venom strikes disasm
    Bard's disasm

  2. #42

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,963
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    312
    Поблагодарили
    236 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Всего 4 спрайта движения 32*32 пикселя. Итого 512 байт. Но какой зоопарк среди масок!
    попробуй варианты OR и AND по всем маскам (одного байта)

    - - - Добавлено - - -

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    У меня была чуть другая идея, пробовал собирать маску из стандартных блоков, которые в UDG есть + ещё несколько дополнительных.
    емнип в Capitan Trueno маска сжатая и вдвое меньшего разрешения (по обеим осям)
    в одном байте хранится маска сразу для четырёх байт спрайта
    чётные и нечётные биты кодируют разные строки маски
    Прихожу без разрешения, сею смерть и разрушение...

    Этот пользователь поблагодарил Lethargeek за это полезное сообщение:

    parallelno(06.10.2024)

  3. #43

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,391
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Всего 4 спрайта движения 32*32 пикселя. Итого 512 байт. Но какой зоопарк среди масок!
    Т.е. это статистика по исходным спрайтам без сдвигов? Тогда идея не прокатила, со сдвигами будет еще хуже. Выходя за рамки темы - у Tony фишка в графике, и если однострочная автомаска будет ее портить, то лучше поискать другие варианты. Трехстрочная в реализации на 8080 будет довольно медленной. Может поделить игру на части или сделать подгружаемые с магнитофона уровни? А в MX можно и все сразу загрузить.

  4. #44

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,215
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,648
    Поблагодарили
    573 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Т.е. это статистика по исходным спрайтам без сдвигов?
    Да, увы...
    Цитата Сообщение от ivagor Посмотреть сообщение
    Может поделить игру на части или сделать подгружаемые с магнитофона уровни
    На части придётся делить так и так. Она и в оригинале каждый уровень подгружает на С64 и Atari. На Amiga, я не находил прохождений, там, наверное, всё загружается за раз.
    С уважением, Станислав.

  5. #45

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,963
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    312
    Поблагодарили
    236 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Опробовал данный способ. В принципе, учитывая, что в моём случае пересечения с фоном минимальны, то, наверное, этот метод будет приемлемым.
    Цитата Сообщение от CityAceE Посмотреть сообщение
    Всего 4 спрайта движения 32*32 пикселя. Итого 512 байт. Но какой зоопарк среди масок!
    не, по уму тогда нужно две таблицы масок - отдельно для левого и правого края
    причём для именно таких нешироких спрайтов без промежутков результат получится почти идеальный
    чтоб при сдвигах ширина маски не плавала - маскировать не просто крайний байт, а от края первый ненулевой
    Прихожу без разрешения, сею смерть и разрушение...

  6. #46

    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,691
    Спасибо Благодарностей отдано 
    302
    Спасибо Благодарностей получено 
    223
    Поблагодарили
    159 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    емнип в Capitan Trueno маска сжатая и вдвое меньшего разрешения (по обеим осям)
    в одном байте хранится маска сразу для четырёх байт спрайта
    чётные и нечётные биты кодируют разные строки маски
    Прикольно. Спасибо за информацию!
    Heavy on the disasm
    Eric and the disasm
    Mask 3: Venom strikes disasm
    Bard's disasm

  7. #46
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #47

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    CityAceE, Ну как прогресс?
    С уважением,
    Jerri / Red Triangle.

  9. #48

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,215
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,648
    Поблагодарили
    573 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    Ну как прогресс?
    https://zx-pk.ru/threads/35905-tony-...=1#post1204522
    С уважением, Станислав.

  10. #49

    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    2,080
    Спасибо Благодарностей отдано 
    87
    Спасибо Благодарностей получено 
    480
    Поблагодарили
    145 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    CityAceE, основаня идея быстрого сдвига без таблиц у меня была в том, при копировании спрайта из места хранения в буфер, который уже выводится на экран использовался сразу сдвиг на 1 пиксель влево или вправо, или без сдвига. Тут смысл в том, что если спрайты например хранились в отдельном банке, а вывести сдвинутый спрайт нужно на 5/7 экраны и спрайты у и тебя упакованные по строкам. Используется примитивный RLE, где ты можешь повторяющиеся строки или даже части спрайта не хранить повторно. Так вот, быстро сдвинув (RRA/RLA) при распаковки и копировании в буфер и получив предсдвинутый спрайт, при выоде на экран его нужно всего лишь досдвинуть до нужной фазы... например для фазы 0: выводим как есть, сдвигать не надо, для фазы 1 используем предсдвинутый при коприровании в буфер спрайт, для фазы 2 - используем предвинутый при коприровании и дополнительно сдвигаем его при выводе на экран на 1 пиксель. Самые меделенные фазы это сдвиг на 3 и 5 пикселей, понятно как быстро сдвинуть на 6 и 7 пикселей. Для 7 используем двиг влево, и для 6 используем сдвиг влево + доп сдвиг на пиксель, только нужно сместить указатель на адрес буфера. Ну, а для сдвигов на 3 и 5 используем RLD/RRD команды, сдвиг на полубайт, в сочетании с предсвдинутым буфером. Эта же команда используется для сдвига на 4. Рабочий пример этого способа, я выкладывал здесь на форуме. Сама процедурка получилась очень компактной и достаточно быстрой, конечно табличный метод работает чуть быстрее на 30% где-то, но если поджимает память то выкручиваться можно вот таким способом.

    Эти 2 пользователя(ей) поблагодарили drbars за это полезное сообщение:

    CityAceE(08.02.2025), Oleg N. Cher(10.02.2025)

Страница 5 из 5 ПерваяПервая 12345

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Попиксельный raycasting и sjasm
    от Destr в разделе Программирование
    Ответов: 98
    Последнее: 22.01.2020, 23:31
  2. Ответов: 7
    Последнее: 03.11.2015, 18:22
  3. Спрайтовывыводилка с пиксельной точностью без таблиц
    от shadwork в разделе Программирование
    Ответов: 11
    Последнее: 20.08.2015, 20:23
  4. Быстрый вывод картинки 88*88
    от ALKO в разделе Программирование
    Ответов: 49
    Последнее: 31.03.2011, 11:33
  5. Попиксельный скролл на Асме
    от helcril в разделе Для начинающих
    Ответов: 8
    Последнее: 17.12.2009, 09:31

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •