Quake на осциллографе
На работу над этим проектом Пекку Вяанянена вдохновили и широко известный . Если подобное возможно, то почему бы не вывести на экран трёхмерную графику?
Рисование на осциллографе происходит в режиме XY, в котором напряжения определяют координаты точек на экране. Их достаточно варьировать как функцию времени, чтобы рисовать линии. При этом скорость изменения нужно оставлять примерно одинаковой, иначе будут получаться линии с различной яркостью. Согласно отличному руководству от Джеда Марголина, особой точности в определении длины линии не нужно. Чтобы нарисовать не связанный с предыдущим сегмент, луч нужно быстро сдвинуть, не оставляя видимой линии. Youscope отлично отрендерился после добавления особенностей работы люминофора.
Для вывода использовался аудиовыход компьютера — вполне типичное решение, которое использовалось для того же Youscope.
Quake — это игра 1996 года, которая исполняется очень быстро на современном «железе», и генерацию сигналов тоже лучше сделать быстрой. Сначала выбор пал на ASIO SDK, но после пары вечеров попыток Вяанянен решил использовать PortAudio, который отлично подошёл для задачи. Впрочем, библиотека без «плясок с бубном» не скомпилировалась.
Все из доступных звуковых карточек применяли фильтр нижних частот, поэтому пропускная способность была ограничена. Это означает, что получается отрисовать меньше линий, чем в Youscope, у создателя которого нашлась звуковая карта с нужными характеристиками. Не слишком помогло и увеличение частоты до максимально доступных 96 кГц.
Процесс генерации разбит на две части: игровой движок Darkplaces и синтезатор аудиосигнала, которые «общаются» друг с другом посредством WinAPI под названием pipe.
Модификация Darkplaces оригинального движка Quake предоставляет детали геометрии, в частности, передавались рёбра треугольников. Брались не все, из общего числа отфильтровывались только видимые и не являющиеся дубликатами друг друга.
В среднем за кадр передаётся 1800 линий. Если новых данных нет, то будет отрисован предыдущий кадр. За каждую линию на демонстрации отвечает 5—20 сэмплов. Качество картинки увеличивается с замедлением отрисовки.
Генерация аудиосигнала отнимает процессорную мощность, но большая часть тратится на растеризацию буфера глубины движка игры. За счёт подбора параметров сигнала конечная производительность и величина времени запаздывания позволяют комфортно играть с помощью клавиатуры и мыши, а не просто проигрывать демки.
Как пишет Вяанянен, производительность всё равно осталась на неудовлетворительном уровне. Максимально получается одновременно отрисовывать 1000 линий и меньше. Большее количество требует болеее высокой частоты звука, чем это может предоставить текущий аудиовыход.
Ускорение отрисовки снижает качество картинки, а если оставлять больше времени на каждую из линий, то будет страдать отклик.
Также появляется низкочастотный шум, особенно заметный при быстрых движениях, когда обновляется весь экран. Возможно, это от увеличения уровня басов эквалайзера в аудиокарте, но автор проекта не уверен в своей догадке.
Подробнее
How To Draw Mushrooms On An Oscilloscope With Sound,Music,,lissajous shrooms tutorial by Jerobeam Fenderson http://www.jerobeamfenderson.net Check out this PD patch and try for yourself: http://bit.ly/1i4dXmq
Youscope (oscilloscope demo),Entertainment,youscope,oscilloscope,demoscene,assembly,SONG: http://koodaa.mine.nu/tvt/youscope-soundtrack.mp3 a demo using an oscilloscope to display something. - third in assembly 2007 shortfilm compo - most original entry at assembly 2007 - scene.org awards nomination to most original concept, breakthrough performance and best animation. Try it on your oscilloscope: http://kapsi.fi/~jpa/stuff/other/youscope-wave.flac (flac) / http://mirror.kapsi.fi/koodaa.mine.nu/tvt/youscope-wave.wav The oscilloscope is in X/Y-mode, with right channel connected to X and left to Y input. Z (brightness) input is not used. Most soundcards (and other players) seem to have a lowpass filter at about half of the samplerate, making some effects here look quite strange. The soundcard used in this video just didn't have proper filters so it happens to be suitable for these effects. http://www.pouet.net/prod.php?which=31592
Quake on an oscilloscope,Games,,Playing E1M1 of Quake on a Huawei V-422 oscilloscope. Detailed explanation: http://www.lofibucket.com/articles/oscilloscope_quake.html
Всё самое интересное,интересное, познавательное,,разное,Quake,Игры,осциллограф,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор