Давно хотел простой способ попиксельно работать с видео, теперь вот, когда очередной раз понадобилось, наконец организовал себе таковой. Сохраняю в текстовом редакторе скрипт, переоткрываю файл в VirtualDub и сразу вижу результат. Для этого потребовалось написать один маленький плагин для AviSynth, который берет в качестве параметра имя файла с исходником на Leo, при загрузке вызывает мой компилятор, тот выдает байткод, который плагин исполняет с помощью LeoVM при обработке каждого кадра. Ависинтовский скрипт выглядит так:
LoadPlugin("leovid.dll")
AviSource("source.avi").ConvertToRGB32().RunLeo("fire.leo")
Его-то я и открываю в VirtualDub'e.
В качестве теста вспомнил детство, когда мы во времена DOS'a и VGA мониторов дергали прерывание 10h для перехода в режим 13h (320x200, 256 цветов) и рисовали там всякие штуки, например, огонь. Помнится, на первом курсе мы соревновались у кого короче получится реализация - рисующая огонь программа занимала около сотни байт. Сейчас модифицировал его алгоритм, чтобы картинка исходного видео задавала вероятности и интенсивности появления источников огня, получился довольно симпатичный эффект:
В оригинале видео более зернистое, ютюб его размазал. Исходник эффекта.
LoadPlugin("leovid.dll")
AviSource("source.avi").ConvertToRGB32().RunLeo("fire.leo")
Его-то я и открываю в VirtualDub'e.
В качестве теста вспомнил детство, когда мы во времена DOS'a и VGA мониторов дергали прерывание 10h для перехода в режим 13h (320x200, 256 цветов) и рисовали там всякие штуки, например, огонь. Помнится, на первом курсе мы соревновались у кого короче получится реализация - рисующая огонь программа занимала около сотни байт. Сейчас модифицировал его алгоритм, чтобы картинка исходного видео задавала вероятности и интенсивности появления источников огня, получился довольно симпатичный эффект:
В оригинале видео более зернистое, ютюб его размазал. Исходник эффекта.
no subject
Date: 2010-06-17 03:57 pm (UTC)Я тоже в режиме 13h рисовал огонь в старших классах школы. А еще рисовал вайрфреймом какие-то кубики и другие вращающиеся объекты под этим эффектом огня.
А мой друг был тогда более крут: он делал софтверный рендеринг цельных объектов, сделал Z buffer, потом текстуры натянул, освещение. Красиво довольно выглядело. Эх... ностальгия.