User Tag List

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

Тема: версия ёмулятора для просмотра демовых скроллов

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

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

    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir Kladov
    а я не верю, что мерцание должно быть! вот там слева есть статическое изображение. Как его не усредняй по кадрам, он НЕ ДОЛЖНО меняться! Возможная причина мне думается - ошибки при усреднении, при использовании целочисленной арифметики (например). Советую проверить формулы на конкретных значениях, возможно отдельно от задачи
    проверял и отдельно. фильтр вообще разрабатывал в Matlab DSP toolbox, примеры считал там без округлений. дело в том, что по-хорошему, после ресамплинга обязательно нужно ставить НЧ-фильтр на частоту среза, равную половине частоты дискретизации, иначе появляются "паразитные частоты" (альясинг). то есть зря я cutoff выключил по умолчанию в ini, надо было предусмотреть что-то среднее между 0-м и 1-м режимом. интересные твои рассуждения насчёт усреднения - ведь каждый новый кадр берёт исходные кадры с другими коэффициентами, иначе не видать плавности - отсюда и разные яркости
    Цитата Сообщение от Vladimir Kladov
    Вообще не пойму, почему надо было 4 кадра (да еще до и после)
    зачем брать кадры до и после - очевидно, для симметрии. если брать только прошедшие кадры, то получим шлейф типа motion blur вслед за скроллом, а так - контуры отстоят от букв симметрично, inho это выглядит лучше. увы, приходится за это платить дополнительной задержкой, особенно заметной на программах, управляемых от мыши
    Цитата Сообщение от Vladimir Kladov
    я же говорил, что достаточно 2х
    ради интереса я попробовал поставить интерполяцию по двум кадрам (благо, алгоритм гибкий): скролл плавный, хвостов совсем не видно, но мерцать стал сильнее. причём не только статика, но и сам скролл. на двух кадрах правильный нч-фильтр не сделаешь, как бороться с мерцанием - не знаю. если мысленно продолжить двигаться в сторону уменьшения числа смешиваемых кадров, получим ещё большее мерцание - на 2 кадра спектрума экспонируется один чёрный (если переводить 50hz в 75). такое сильно мерцание перейдёт уже в подёргивание
    Цитата Сообщение от Vladimir Kladov
    и продолжаю так и думать
    попробуй. может, у тебя лучше получится

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

  3. #2

    Регистрация
    18.03.2005
    Адрес
    Moscow
    Сообщений
    18
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Справедливости ради, в обычном 0.28 эта демка смотрится куда приятнее.

  4. #3

    Регистрация
    26.01.2005
    Адрес
    Минск
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    У меня эта версия работает следующим образом:

    1) При Refresh=85 или 100 ругается DDERR_UNSUPPORTED (WinXPsp2+Radeon9550), при 0 и 60 плавности нету. Плавный скролл наблюдается только при 75Гц.
    2) На больших скроллах немного заметен шлейф, из-за которого смазывается четкость букв.

  5. #4

    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Agent Cooper
    Справедливости ради, в обычном 0.28 эта демка смотрится куда приятнее.
    но ведь скролл дёргается...

  6. #5

    Регистрация
    30.01.2005
    Сообщений
    62
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Хм, у меня тоже вылетает на частоте 100Гц (типа не поддерживается такой режим) WinXpSp2 GF5600. Да и AY звук играется рывками.

  7. #6

    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Exclamation На самом деле, чтобы скроллы игрались замечательно

    надо делать межкадровую интерполяцию, но очень хитрым способом: нужно брать два соседних кадра экрана zx, анализировать когда должен начать поход луч монитора, а затем только рассчитывать кадр. Причём рассчитывать смещение строки или каких то других элементов скролла, чтобы действительно не было рывков.

    Пример:

    Частота развёртки - 85 Гц
    Частота экрана zx - 50 Гц

    Тогда пусть между двум кадрам экрана ZX В данной итерации соответствует три кадра монитора (вообще то может оказаться и 1 и 2 и 3 - в зависимости от времени).

    Пусть бежит бегущая строка, в первом кадре экрана zx она находится на позиции с смещением 1 пиксель относительно бордюра, во втором кадре - со смещением 2 пикселя относительно бордюра.

    Тогда в первом кадре (кадры синхронизации) изображение спекка точно равно изображению на мониторе (просто копируются/преобразуются данные 1 в 1).
    Во втором кадре монитора строка уже ушла с позиции в 1 пиксель, но ещё не дошла до позиции в 2 пикселя, тогда при приходе новой развёртки
    строчка должна находиться в позиции 1,6 пикселя!!!
    А при приходе следующего прерывания - в точке 2,2 пикселя!!!
    И не должно быть ровных чисел (1 пиксель, 2 пикселя и т.д.) - они будут лишь в точке синхронизации.
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  8. #7

    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    19
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    чего ж тут хитрого? покомпонентное усреднение 2х или 3х экранов, со своим весом. (x1 * k1 + x2 * k2 + x3 * k3) / (k1 + k2 + k3), причем k1+k2+k3 = const.

  9. #8

    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GriV
    Во втором кадре монитора строка уже ушла с позиции в 1 пиксель, но ещё не дошла до позиции в 2 пикселя, тогда при приходе новой развёртки
    строчка должна находиться в позиции 1,6 пикселя!!!
    А при приходе следующего прерывания - в точке 2,2 пикселя
    попробуйте набросать алгоритм (не заботясь пока о ресурсах) имеем набор спековских кадров, хоть в 6912, хоть как массив точек 256x192. нужно пересчитать кадры в любом разрешении, любой цветовой глубины, но чтобы смотрелся хорошо не на 50 hz.
    думаю, энтузиазма с полупикселями поубавится

    Цитата Сообщение от Vladimir Kladov
    чего ж тут хитрого? покомпонентное усреднение 2х или 3х экранов, со своим весом. (x1 * k1 + x2 * k2 + x3 * k3) / (k1 + k2 + k3), причем k1+k2+k3 = const
    k1,k2,k3 не меняются от кадра к кадру?

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

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

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

Ваши права

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