Просмотр полной версии : Наилучшая реализация гигаскрина для браузера
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, чтобы это подтвердить или опровергнуть.
Наилучшая реализация гигаскрина для браузера
на самом деле выбор один flash или flash (java, javascript не предлагать), если конечно на flash'е можно будет добиться фрейма с миганием с частотой указанной в настройках видеоадаптера, если этого сделать нельзя, то и возиться нет смысла - gif в этом случае наше все!
по поводу линков на flash изображения проблема то в чем? классический пример - youtube, значит сделать по любому возможно. и пусть линк будет более сложным - это ничего не меняет.
и еще, при реализации на флеше можно будет на ходу накладывать всевозможные фильтры это факт.
Еще больший шит. Интерлейс создает ощущение несуществующих пикселей (не понятно где есть пиксель а где нет из-за полосок).
Я, кстати, соглашусь, что интерлейс он не для всех картинок(или отдельных их участков) хорошо подходит. Особенно в этом плане страдают участки с текстурами типа "шахматки", когда те сильно разрежены. Там интерлейс уже не спасает, особенно на тёмных цветах, где экран с битовой информацией всего один. В принципе можно ведь(аппаратно ничто не мешает) сделать настраиваемый вьювер, где нужные регионы по-вертикали будут либо с интерлейсом, либо без. В любом случае по-таймингу интерлейс приходится подгонять.
Ну а как выход из такого положения, я предложил 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). Поэтому надрываться в этом плане не стоит имхо. Во всяком случае сейчас.
также соглашусь с 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 ----------
кстати, черездвухстрочный фильтр сделаю обязательно!
вот сюда, на форум, можно вставить хотя бы youtube ролик?
сейчас нет, но проблема скорее политическая чем техническая. взять тот же speccy-live (http://speccy-live.untergrund.net/) - пожалуйста хоть в комент можно ролик с ютуп'а вставить.
moroz1999
28.07.2010, 12:01
сейчас нет, но проблема скорее политическая чем техническая.Верно, но таких форумов и сайтов пока что большинство, и вряд ли в ближайшем будущем это изменится.
Верно, но таких форумов и сайтов пока что большинство, и вряд ли в ближайшем будущем это изменится.
ой ли?! что правильнее кобыла впереди телеги или наоборот?.. имхо, всю жизнь было так, что сперва появляется новая технология, а потом уже под нее адаптируют окружение, а не наоборот.
надо не бояться создавать что-то новое и пока не поддерживаемое (обрати внимание, что происходит с разновидностями гигаграфики) - смелая полезная идея выживет. хотя, вообще-то нужно сперва попробовать flash технологию может идея и яйца выеденного не стоит. тогда останется gif.
moroz1999
28.07.2010, 19:22
кто разбирается в Flash? кого бы спросить?
кто разбирается в 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
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 - кликните по картинке, чтобы мерцание началось.
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot