Справедливости ради, в обычном 0.28 эта демка смотрится куда приятнее.
Вид для печати
Справедливости ради, в обычном 0.28 эта демка смотрится куда приятнее.
У меня эта версия работает следующим образом:
1) При Refresh=85 или 100 ругается DDERR_UNSUPPORTED (WinXPsp2+Radeon9550), при 0 и 60 плавности нету. Плавный скролл наблюдается только при 75Гц.
2) На больших скроллах немного заметен шлейф, из-за которого смазывается четкость букв.
но ведь скролл дёргается...Цитата:
Сообщение от Agent Cooper
Хм, у меня тоже вылетает на частоте 100Гц (типа не поддерживается такой режим) WinXpSp2 GF5600. Да и AY звук играется рывками.
надо делать межкадровую интерполяцию, но очень хитрым способом: нужно брать два соседних кадра экрана zx, анализировать когда должен начать поход луч монитора, а затем только рассчитывать кадр. Причём рассчитывать смещение строки или каких то других элементов скролла, чтобы действительно не было рывков.
Пример:
Частота развёртки - 85 Гц
Частота экрана zx - 50 Гц
Тогда пусть между двум кадрам экрана ZX В данной итерации соответствует три кадра монитора (вообще то может оказаться и 1 и 2 и 3 - в зависимости от времени).
Пусть бежит бегущая строка, в первом кадре экрана zx она находится на позиции с смещением 1 пиксель относительно бордюра, во втором кадре - со смещением 2 пикселя относительно бордюра.
Тогда в первом кадре (кадры синхронизации) изображение спекка точно равно изображению на мониторе (просто копируются/преобразуются данные 1 в 1).
Во втором кадре монитора строка уже ушла с позиции в 1 пиксель, но ещё не дошла до позиции в 2 пикселя, тогда при приходе новой развёртки
строчка должна находиться в позиции 1,6 пикселя!!!
А при приходе следующего прерывания - в точке 2,2 пикселя!!!
И не должно быть ровных чисел (1 пиксель, 2 пикселя и т.д.) - они будут лишь в точке синхронизации.
чего ж тут хитрого? покомпонентное усреднение 2х или 3х экранов, со своим весом. (x1 * k1 + x2 * k2 + x3 * k3) / (k1 + k2 + k3), причем k1+k2+k3 = const.
попробуйте набросать алгоритм (не заботясь пока о ресурсах) имеем набор спековских кадров, хоть в 6912, хоть как массив точек 256x192. нужно пересчитать кадры в любом разрешении, любой цветовой глубины, но чтобы смотрелся хорошо не на 50 hz.Цитата:
Сообщение от GriV
думаю, энтузиазма с полупикселями поубавится :(
k1,k2,k3 не меняются от кадра к кадру?Цитата:
Сообщение от Vladimir Kladov
сегодня проверял на CRT-мониторах. глюк такой-же: в режимах ниже 640x480 как ati, так и nvidia драйвера мудрят с частотой развёртки. обязатально нужно ставить minres=480. по-хорошему, надо делать удвоение разрешения, а то был просто пример реализации технологии. ещё глюк нашёл на AMD - пишет "0 fps" из-за того, что нет emms между mmx и fpu-вычислениями. интелу это без разницы
не меняется сумма. Я извиняюсь, неужели я непонятно выразился? Просто у меня 2,5 математического образования (технарь, 3курса чистой математики + полный курс прикладной математики в универе), и мне трудно думать в каких-то иных категориях.Цитата:
Сообщение от SMT
у меня Pentium M (тот который Centrino), на нем тоже 0 fpsЦитата:
Сообщение от SMT