LINUX.ORG.RU
ФорумTalks

Плавный скроллинг экрана на LCD в браузере, тиринг

 , ,


0

2

в продолжение двух жирных тем про ЭЛТ ...

В ЭЛТ-мониторах гасли пиксели, и были шлейфы - при быстром перемещении мыши/ярких объектов по экрану. Это объясняется тем, что люминофор испускал свечение даже после ухода пучка электронов в сторону. Тут всё было просто. Ушёл луч - пиксель начинает гаснуть. Из верхнего левого - направо, от верхнего бордюра спускаясь вниз до конца нижнего бордюра.

А в LCD как этот эффект проявляется? В каком порядке по ЖК-сетке перемещается «луч»? И пиксели «гаснут» с какой скоростью? (16ms, 5ms, 2ms?) Ведь меняют состояние ЖК-пиксели не одновременно? Если двигать большое окно на LCD-дисплее за рамку, или скроллить текст в браузере — текст значительно искажается и во время движения окна его не разобрать. Есть ли способы устранения этой фичи, чтобы текст был различим? Как делается на MacBook/iMac? Я слышал, что на ноутбуках другой протокол передачи данных на ЖК, который не эмулирует ЭЛТ'шный протокол последовательного «сканирования» лучом.

Называется ли это на ЖК - «тиринг»?

★★★★★

Последнее исправление: pacify (всего исправлений: 1)

Ответ на: комментарий от Jefail

разве тиринг - это не программная проблема?

Программно-аппаратная, то есть программа должна помещать данные в видеобуфер (активный кадр) до сброса этого буфера через кабель на монитор. Во время «сброса данных» буфер лучше не менять, это раньше происходило с частотой порядка 50-100 Гц, то есть каждые 1/100 секунды. За остальное время надо было отрисовать в видеобуфере рисунок из «программного буфере».

Как было реализован «сброс данных» на монитор на аппаратном уровне раньше - не знаю. Но, по-идее, до сих пор данные из видеобуфера должны передаваться последовательным сканированием - чтобы успевать за «лучом» (ведь может оказаться, что к VGA/DVI подключен ЭЛТ-монитор).

У меня была как-то идея, передавать на монитор лишь те данные, которые изменились. Хотя бы, разбив экран на квадраты или другого вида области. Допустим, когда работаешь в текстовом редакторе - меняется только локально текст + курсор, и в notifications/applet что-то мигает-меняется. Остальная часть экрана - статична.

pacify ★★★★★
() автор топика
Ответ на: комментарий от Jefail

Что я должен был увидеть?

Кроме слабо-муаровой «радуги» (которая есть и на ЭЛТ), фон вам «подмигивает» при скроллинге. Как будто это простыня, которую несколько человек пробуют ровно тащить по земле волоком.

pacify ★★★★★
() автор топика
Ответ на: комментарий от pacify

Чисто по секрету - для этого ещё сто тысяч лет назад (во времена тех самых ЭЛТ) был придуман vsync и двойная буферизация. С обновлением данных прямо в основном буфере завязали ещё в шестидесятые, во времена первых графических дисплеев.

svr4
()
Последнее исправление: svr4 (всего исправлений: 2)
Ответ на: комментарий от svr4

С обновлением данных прямо в основном буфере завязали ещё в шестидесятые,

Я вернусь домой - и погляжу в книжке. По-моему, не все видеорежимы имели более одного буфера. Ведь в real mode объем видеопамяти был строго ограничен одним мегабайтом?

pacify ★★★★★
() автор топика
Ответ на: комментарий от pacify

real mode

На PC в массах графоуния не было в принципе до выхода видюх под VESA VLB. Я про нормальные платформы говорю. Хотя были и профессиональные видюхи от той же IBM, но стоили они как 3-4 тогдашних компа (то есть, начиная от 10к баксов).

svr4
()
Последнее исправление: svr4 (всего исправлений: 1)
Ответ на: комментарий от pacify

Вдогон: в 256-цветном режиме один пиксел представлен одним байтом, если чо. Так что на 320x200 можно было хоть двойную буферизацию, хоть чёрта лысого мутить.

svr4
()
Последнее исправление: svr4 (всего исправлений: 1)
Ответ на: комментарий от svr4

в 256-цветном режиме один пиксел представлен одним байтом

Это я знаю. Хотя я старался использовать простейший - 640x350x1bpp или 4bpp (у меня был EGA-адаптер).

pacify ★★★★★
() автор топика
Ответ на: комментарий от svr4

Вспомнил. Вот эта книга у меня была в 1994-1996-м: http://www.frolov-lib.ru/books/bsp/v03/ch5_2.htm
Так как раз написано: «В большинстве режимов видеоадаптеров видеопамять также разделена на несколько страниц. При этом одна из них является активной и отображается на экране. При помощи функций BIOS или программирования регистров видеоадаптера можно переключать активные страницы видеопамяти. Вывод информации можно производить как в активную, так и в неактивные страницы памяти. Таким образом, можно заранее подготовить несколько страниц памяти (несколько экранов), а затем быстро сменять их на экране дисплея.»

Я делал в 1996 году лабораторную по компьютерной графике, TP+EGAVGA.bgi, там переключал страницы - чтобы 3D-анимация выводилась без глюков (640x350 пикс, 16 градаций синего, перепрограммировал палитру).

P.S. Я в этом треде хочу сказать, что раньше отображение графики было какое-то другое. Определить словами не могу, но «подёргивания» изображения были обычными шлейфами. Сейчас же какая-то каша при перетаскивании окна на LCD/прокрутке в браузере.

pacify ★★★★★
() автор топика
Последнее исправление: pacify (всего исправлений: 1)
Ответ на: комментарий от pacify

По-моему, не все видеорежимы имели более одного буфера.

Дело не столько в режиме, сколько в количестве памяти в видеокарте. Если для двух плоскостей памяти не хватало, то их и не было. :)

atrus ★★★★★
()
Ответ на: комментарий от atrus

фон вам «подмигивает» при скроллинге

Да, оно самое.

И в чём же здесь дело? Почему «подергивается» и подмигивает?

pacify ★★★★★
() автор топика
Ответ на: комментарий от pacify

И в чём же здесь дело? Почему «подергивается» и подмигивает?

Пиксели не успевают перестоится. Пиксели «старого» кадра еще не успевают закрыться, нового - открыться. Это хорошо заметно на тонких ребристых объектах (1-2 pix шириной). Они же перестраиваются не со скоростью света, у них есть время отклика. Это ни коем образом не идет ни в какое сравнение с ЭЛТ с его послесвечием, кое является инертным.

MyLittlePony
()
Ответ на: комментарий от pacify

Ну, если подмигивание еще ладно, то возникающие на этом экране полосы очень огорчают

sehellion ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.