User Tag List

Показано с 1 по 10 из 40

Тема: Программный вертикальный скролл

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    01.03.2011
    Адрес
    Stamford
    Сообщений
    336
    Спасибо Благодарностей отдано 
    46
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Года 2 назад я самоуверенно утверждал, что субтайловый рендерер на Векторе просадит скорость до неиграбельной.

    Озвучу ниже некоторые свои соображения по поводу субтайлового скролла применительно к Вектору, сидящие уже года полтора в мозгах дабы поправить досадное недоразумение.

    Мне думается, что очень легко сделать программный скролл тайлмапа с дискретностью в 8 пикселов, и практически такой же скоростью как в Роботах. То бишь чистый скроллерный движок тайлов (без спрайтовых оверлеев, музыки и т.п.), может в теории давать 17-18 кадров в секунду во вьюпорт размером 208x160 пикселов при сохранении двойной видео буферизации. Тайлы - такого же размера, как и в Роботах: 16x16 пикселов, 2 бита на пиксел, змейкой.

    Идея в том, что необходим рендерер как выше (стеком), но имеющий 2 дополнительные ветки кода для вывода только левой половины тайла (1 байт по горизонтали) и для вывода правой половины тайла. Дискретность рендерера устанавливается в 8 пикселов (сдвиг по горизонтали побайтно). При выводе первой и последней вертикальной колонки тайлов используются 2 новые процедуры, выводящие по пол тайла (правая половина тайла для первой колонки и левая половина тайла для последней) или по целому тайлу в зависимости от чётного и нечётного кадра. Получаем субтайловый 8-пиксельный рендерер со скоростью как в Роботах. Вывод оверлеев, привязанных к координатной сетке тайлмапа (т.е. спрайтов, но с не произвольной координатой, типа батареек в Роботах), при этом становится сложнее так как им тоже нужно делать клиппинг, но к счастью по такому же 8-пиксельному алгоритму, то бишь, без сдвигов.

    При определённых серьёзных ухищрениях, можно сделать и рендерер с субтайловой точностью в 2 пиксела и скоростью вывода наверное не хуже, чем в 2 раза по сравнению с Роботами (на самом деле-практически сравнимой). Для этого нужно при загрузке сдвинуть все тайлы на 0,2,4,6 бит, заполнив сдвинутые биты нулями и уложить полученные сдвинутые изображения в 4 банка RAM-диска в соответствии со сдвигом. При выводе нужен будет рендерер, получающий изображение тайла сложением (OR-ом) сдвинутых изображений для смежнных тайлов из 2х банков. Вывод оверлеев при 2-х пиксельной субтайловой точности придётся делать также используя клиппинг и заготовленные сдвинутые части битмапов.

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

  3. #2

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

    По умолчанию

    Цитата Сообщение от PPC Посмотреть сообщение
    рендерер с субтайловой точностью
    Не знаю, будет ли это реализовано на векторе, но можно посмотреть, как это сделали на спеке.

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

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

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

Похожие темы

  1. Программный детект модели IDE
    от SAM style в разделе Программирование
    Ответов: 5
    Последнее: 14.02.2007, 13:57

Ваши права

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