PDA

Просмотр полной версии : Наилучшая реализация гигаскрина для браузера



moroz1999
27.07.2010, 12:50
Текущий вариант, выбранный мной для zx.maros.pri.ee - это GIF. Как я понимаю, он устраивает далеко не всех.

Итак, сейчас имеем такие потенциальные варианты реализации:
1. Javascript на canvas - некроссбраузерный. нельзя сделать линк на картинку
2. Javascript на DOM - скорость под вопросом, нельзя сделать линк на картинку
3. Flash - скорость под вопросом, гипотетически можно сделать линк на картинку, но на практике - не факт из-за кроссдоменных ограничений на запрос данных.
4. GIF - некроссбраузерный, как показала практика, но можно свободно линковать все картинки. Уверен на 99%, что с точки зрения скорости работы - самый жизнеспособный.

Итак, какие будут предложения?

В частности, я могу попробовать сделать сэмплы для замеров скорости работы Javascript. С флэшем не обещаю, но попробовать можно.

GIF могу легко переделать на работу через интерлейс-мигание. Какая должна быть ширина интерлейсной строки (в zx-пикселях)?

---------- Post added at 11:50 ---------- Previous post was at 11:45 ----------

А, еще: механизмов для вертикальной синхронизации у браузеров нет, эту тему хочу сразу закрыть. Может, в будущем что-то и будет, но вряд ли скоро.
Единственное смутное сомнение есть у меня по поводу flash, т.к тот сейчас поддерживает аппаратное ускорение, но здесь нужен спец по flash, чтобы это подтвердить или опровергнуть.

pulsar
27.07.2010, 15:21
Наилучшая реализация гигаскрина для браузера
на самом деле выбор один flash или flash (java, javascript не предлагать), если конечно на flash'е можно будет добиться фрейма с миганием с частотой указанной в настройках видеоадаптера, если этого сделать нельзя, то и возиться нет смысла - gif в этом случае наше все!

по поводу линков на flash изображения проблема то в чем? классический пример - youtube, значит сделать по любому возможно. и пусть линк будет более сложным - это ничего не меняет.

и еще, при реализации на флеше можно будет на ходу накладывать всевозможные фильтры это факт.

PheeL
27.07.2010, 16:02
Еще больший шит. Интерлейс создает ощущение несуществующих пикселей (не понятно где есть пиксель а где нет из-за полосок).
Я, кстати, соглашусь, что интерлейс он не для всех картинок(или отдельных их участков) хорошо подходит. Особенно в этом плане страдают участки с текстурами типа "шахматки", когда те сильно разрежены. Там интерлейс уже не спасает, особенно на тёмных цветах, где экран с битовой информацией всего один. В принципе можно ведь(аппаратно ничто не мешает) сделать настраиваемый вьювер, где нужные регионы по-вертикали будут либо с интерлейсом, либо без. В любом случае по-таймингу интерлейс приходится подгонять.
Ну а как выход из такого положения, я предложил riskej'у по-экспериментировать и использовать в гигаскрин картинках текстуры, как я их называю "Sega'овские". Т.е. вертикальные полосы. Они гораздо лучше переживают интерлейс вывод за счёт своей формы. Я и сам планирую их использовать потом, особенно на больших участках заливки, они должны неплохо смотреться. Кстати, там с ними есть ещё один фокус, riskej осознанно на него натолкнулся или нет, не знаю, но подошёл очень близко - в его Animeeshon на подобного рода текстуре он начал рисовать\стирать пиксели доводя "прозрачность" цвета до 100\0% от 50% прозрачности текстуры:
http://lh3.ggpht.com/_7ELzlmTib4Y/TE7G0wfFKPI/AAAAAAAAAK8/TRsohrIVHms/Animeeshon_exmpl.gif
Есть ещё один вариант - он часто использовался для эффектов в демах, но для графики, я не припомню. Нечто вроде "bump"'а, когда линии в вертикальной текстуре смещаются по маске на один пиксель по горизонтали:
http://lh4.ggpht.com/_7ELzlmTib4Y/TE7G1GK1r8I/AAAAAAAAALA/hVb_lLs3V50/v_tex_sample.gif
Есть и ещё один фокус с вертикальной заливкой, но сейчас я его сходу не сформулирую, я его давно пробовал, даже тестовая картинка не сохранилась, кажется :( Смешение цвета через вертикальные полосы. Потом как-нибудь...


...
Ну а какой конечный итог ты хочешь в результате получить? Что бы было как на реальном Spectrum'е? Ну вряд ли у тебя это хорошо выйдет. Для этого надо делать эмуляцию видеоподсистемы со всеми теми ограничениями что есть на реальной машине. А её ни один из эмуляторов сейчас нормально не делает. Так, накодировали сканлайны, интерполяцию взяли с видяхи, маску положили чтобы вроде как эмулировать уже теневую маску телевизора... и довольны как питоны. А то что через антену всё было подключено и там цвет очень хитро "съезжал" из-за сигналов и вся старая графика эти глюки аппаратуры использует(поэтому так хреново и смотрится сейчас)... Ну попытался SMT в UnrealSpeccy такой фильтр сделать(и то слишком сильно выкрутил, а настроить если только через исходники), но а где сканлайны, где маски теневые чтобы как на реальном телеке? Не доделал никто. Так что смысла пытаться показать как на реале, думаю немного. Более того, наши соседи из Комода и с Амиги - они что свою интерлейс графику честно во всех галлереях показывают? Отнюдь. На Комоде половина всей сценовой графики фликует, и никто не жалуется почему-то, а как на Spectrum'е наконец начали использовать фликер - у всех дикий баттхёрт начался(да да, я имею ввиду ArtCity и "друзей" с Atari). Поэтому надрываться в этом плане не стоит имхо. Во всяком случае сейчас.

riskej
27.07.2010, 19:45
также соглашусь с newart'ом, что черезстрочный фильтр подходит далеко не для всех работ. собственно, мы это уже неоднократно обсуждали с pulsar'ом, когда я экспериментировал, в свое время pheel говорил мне по этому поводу. тема не нова, что говорить.

ну, а как альтернативу (и в силу ограниченности тактов на zx) pulsar сделал черезДВУХстрочный фильтр - он позволяет значительно понизить мигание, при этом не повреждая текстуру вообще.

что касается вертикальных "сеговских" текстур - для меня они стали просто находкой, спасибо pheel'у за своевременную наводку. те эксперименты с прозрачностью ее были намеренными, я им посвятил много времени.

собственно, продолжением использования этой текстуры на больших площадях стала моя последняя картинка:
http://artcity.bitfellas.org/gallery/r/riskej/17251_so-it-was-gray-e-male.png

moroz1999
27.07.2010, 22:47
на самом деле выбор один flash или flash (java, javascript не предлагать), если конечно на flash'е можно будет добиться фрейма с миганием с частотой указанной в настройках видеоадаптера, если этого сделать нельзя, то и возиться нет смысла - gif в этом случае наше все!Согласен.

по поводу линков на flash изображения проблема то в чем? классический пример - youtube, значит сделать по любому возможно. и пусть линк будет более сложным - это ничего не меняет. Примера ради: вот сюда, на форум, можно вставить хотя бы youtube ролик? А произвольный флэш?

---------- Post added at 21:47 ---------- Previous post was at 21:44 ----------

кстати, черездвухстрочный фильтр сделаю обязательно!

pulsar
28.07.2010, 05:42
вот сюда, на форум, можно вставить хотя бы youtube ролик?
сейчас нет, но проблема скорее политическая чем техническая. взять тот же speccy-live (http://speccy-live.untergrund.net/) - пожалуйста хоть в комент можно ролик с ютуп'а вставить.

moroz1999
28.07.2010, 12:01
сейчас нет, но проблема скорее политическая чем техническая.Верно, но таких форумов и сайтов пока что большинство, и вряд ли в ближайшем будущем это изменится.

pulsar
28.07.2010, 14:50
Верно, но таких форумов и сайтов пока что большинство, и вряд ли в ближайшем будущем это изменится.
ой ли?! что правильнее кобыла впереди телеги или наоборот?.. имхо, всю жизнь было так, что сперва появляется новая технология, а потом уже под нее адаптируют окружение, а не наоборот.

надо не бояться создавать что-то новое и пока не поддерживаемое (обрати внимание, что происходит с разновидностями гигаграфики) - смелая полезная идея выживет. хотя, вообще-то нужно сперва попробовать flash технологию может идея и яйца выеденного не стоит. тогда останется gif.

moroz1999
28.07.2010, 19:22
кто разбирается в Flash? кого бы спросить?

pulsar
28.07.2010, 21:39
кто разбирается в Flash? кого бы спросить?
monstr/sage, mmcm/sage быть может risk что-то в состоянии подсказать... еще есть flying - те кто первые на ум пришли...

moroz1999
23.08.2012, 01:48
Canvas/Javascript реализация для этой работы (http://zx.maros.pri.ee/zxscreen/palette/pulsar/mode/flicker/type/gigascreen/id/7660).
http://maros.pri.ee/test/index.xhtml

Имхо, работает чуть лучше, чем Gif, но отсутствие в браузерах на канвасе синхронизации с лучем - лицорука.
Можно, конечно, на requestAnimationFrame подвесить для чуть большей плавности, но тогда будет 60 герц вместо 50-и. Еще у канваса мелкий бонус - можно послесвечение изобразить попробовать через предварительное частичное смешение кадров.


http://maros.pri.ee/test/index2.xhtml - 60гц+requestAnimationFrame

newart
23.08.2012, 02:49
http://maros.pri.ee/test/index2.xhtml - 60гц+requestAnimationFrame
Пульсирует.

moroz1999
23.08.2012, 10:25
Мда, на рабочем компе хуже гифа дергается, так как на рабочем видеокарта, для которой не поддержано в FF аппаратное ускорение.
Для меня это загадка - четырехядерный проц не может без скрипа перерисовать 50 раз в секунду картинку 256*192 в браузере.

Что ж, можно еще flash попробовать.

---------- Post added at 09:25 ---------- Previous post was at 09:22 ----------

Судя по комодовскому сайту, флэш колбасит на таких частотах не меньше.
http://c64pixels.com/main.php?g2_view=keyalbum.KeywordAlbum&g2_keyword=F%2F+IFLI&g2_itemId=6936 - кликните по картинке, чтобы мерцание началось.