Digital 2D-art by Pavel Golovii, Стокгольм, Швеция
Леди Шалотт - персонаж легенд о короле Артуре, баллады Альфреда Теннисона «The Lady of Shalott» (1842) и игры «Crusader Kings III » - «Legends of the Dead» и т.д. и т.п.
Жила она обособленно в замке на острове реки, что течёт к рыцарскому замку Камелот короля Артура. И довлело над нею странное проклятие: обязательная и постоянная повинность ткать; посматривать на окружающий мир дозволялось только через спец.волшебное зеркало,- в нём она видела только «shadows of the world» / «тени мира» :(
Проклятье ждёт её тогда,Грозит безвестная беда,И вот она прядёт всегда...
И увидела однажды в етом спец.зеркале: бесстрашного рыцаря Ланселота,- он ехал по дороге к Камелоту. Очаровалась сильно, может, слегка влюбилась, и от избытка чувств стала смотреть мимо зеркала (которое вообще разбилось к чертям собачьим) напрямую в окно, и ткать при этом перестала!- всё, тушите свечи, проклятье начало свой финальный отсчёт :|
«Леди Шалотт смотрит на Ланселота» - картина Джона Уильяма Уотерхауса (1894, масло, холст)
Нашла леди лодку, написала на её борту «The Lady of Shalott», и поплыла. Вдогонку за рыцарем.
«Леди Шалотт» - картина Джона Уильяма Уотерхауса (1888, масло, холст)
Но! До замка Камелот доплыло лишь её прекрасное тело, уже не живое... В дворце весёлый смех погас,-О, Господи, помилуй нас!-Молились все, греха страшась.И только рыцарь Ланселот,Подумав, молвил, не спеша,-Лицом, как ангел, хороша,Да упокоится душа...
Такова печальная легенда о смерти.
Музыкальное видео американской кантри-группы The Band Perry - If I Die Young
На гитхаб выложили нейросеть Face Depixelizer, которая «повышает» чёткость пиксельным изображениям.В качестве теста через неё прогнали персонажей видеоигр, и местами получилось неплохо, а вот от некоторых можно вздрогнуть
Нашел в своей детской тетрадке и оказалось, что я почти забыл, что мы играли в эти танчики. Для тех, кто не знает, как в это играть: Рандомно рисуются танчики на обоих листах тетради. Затем на дуле одного танка шариковой ручкой рисуется кружок (выстрел). Быстро переворачиваем этот лист и с обратной стороны на месте выстрела( его видно) опять рисуем "кружок" (кружком я его называю условно). Так как чернила еще не успели засохнуть то на другом поле с танками противника остается след от чернил. Если попало на вражеский танк, значит подбит. Потом с другой стороны стреляют и когда все выстрелы закончатся, считают кто больше подбил тот и победитель. Игралось,как вдвоем так и в одиночку.
На работу над этим проектом Пекку Вяанянена вдохновили и широко известный . Если подобное возможно, то почему бы не вывести на экран трёхмерную графику?
Рисование на осциллографе происходит в режиме XY, в котором напряжения определяют координаты точек на экране. Их достаточно варьировать как функцию времени, чтобы рисовать линии. При этом скорость изменения нужно оставлять примерно одинаковой, иначе будут получаться линии с различной яркостью. Согласно отличному руководству от Джеда Марголина, особой точности в определении длины линии не нужно. Чтобы нарисовать не связанный с предыдущим сегмент, луч нужно быстро сдвинуть, не оставляя видимой линии. Youscope отлично отрендерился после добавления особенностей работы люминофора.
Для вывода использовался аудиовыход компьютера — вполне типичное решение, которое использовалось для того же Youscope.
Quake — это игра 1996 года, которая исполняется очень быстро на современном «железе», и генерацию сигналов тоже лучше сделать быстрой. Сначала выбор пал на ASIO SDK, но после пары вечеров попыток Вяанянен решил использовать PortAudio, который отлично подошёл для задачи. Впрочем, библиотека без «плясок с бубном» не скомпилировалась.
Все из доступных звуковых карточек применяли фильтр нижних частот, поэтому пропускная способность была ограничена. Это означает, что получается отрисовать меньше линий, чем в Youscope, у создателя которого нашлась звуковая карта с нужными характеристиками. Не слишком помогло и увеличение частоты до максимально доступных 96 кГц.
Процесс генерации разбит на две части: игровой движок Darkplaces и синтезатор аудиосигнала, которые «общаются» друг с другом посредством WinAPI под названием pipe.
Модификация Darkplaces оригинального движка Quake предоставляет детали геометрии, в частности, передавались рёбра треугольников. Брались не все, из общего числа отфильтровывались только видимые и не являющиеся дубликатами друг друга.
Аудиопоток имеет очередь линий для отрисовки, которые запрашиваются из движка игры. Затем в своём собственном темпе процесс работает над отображением этих линий, выдавая 32-битный поток данных частотой 96 кГц.
В среднем за кадр передаётся 1800 линий. Если новых данных нет, то будет отрисован предыдущий кадр. За каждую линию на демонстрации отвечает 5—20 сэмплов. Качество картинки увеличивается с замедлением отрисовки.
Генерация аудиосигнала отнимает процессорную мощность, но большая часть тратится на растеризацию буфера глубины движка игры. За счёт подбора параметров сигнала конечная производительность и величина времени запаздывания позволяют комфортно играть с помощью клавиатуры и мыши, а не просто проигрывать демки.
Как пишет Вяанянен, производительность всё равно осталась на неудовлетворительном уровне. Максимально получается одновременно отрисовывать 1000 линий и меньше. Большее количество требует болеее высокой частоты звука, чем это может предоставить текущий аудиовыход.
Ускорение отрисовки снижает качество картинки, а если оставлять больше времени на каждую из линий, то будет страдать отклик.
Также появляется низкочастотный шум, особенно заметный при быстрых движениях, когда обновляется весь экран. Возможно, это от увеличения уровня басов эквалайзера в аудиокарте, но автор проекта не уверен в своей догадке.