Осциллограф можно приспособить не только для отображения всяких синусоид, но и для компьютерных игр. Так, например, радиолюбитель Pekka Väänänen "запустил" на своем осциллографе старую игру Quake. Получилось впечатляюще, в стиле киберпанк.
В качестве "монитора" он использовал осциллограф Hitachi V-422. Pekka написал на простом языке программирования Processing специальный симулятор XY-oscilloscope simulator. Понимая природу осциллографа, можно сказать, что два напряжения определяют положение луча в горизонтальной и вертикальной плоскостях, поэтому изменяя их величины, как некоторые функции во времени, можно рисовать фигуры различных видов и форм. Рисование сегмента линии линейно интерполируется между двумя точками в течение некоторого промежутка времени. Это важно учитывать, чтобы сохранять скорость рисования линий разной длины постоянной, так как в противном случае у вас будут линии с различной интенсивностью. На самом деле не нужно вычислить длину линии, чтобы сохранять интенсивность на прежнем уровне, так как апроксимации будет достаточно из-за нелинейной гамма-кривой монитора.
Для отрезков линий, которые не связаны друг с другом, вам нужно быстро перемещать луч по экрану без фактического отслеживания видимой линии. Это может быть сделано за счет затраты большего времени для рисования видимых линий, а затем масштабирования интенсивность монитора, чтобы скрыть нежелательные артефакты.
В качестве информационного выхода для передачи данных игры в осциллограф использовался аудиовыход. Поскольку Quake - игра довольно быстрая, то сначала был задействован ASIO (Audio Stream Input/Output). ASIO представляет собой протокол передачи данных с малой задержкой для компьютерных звуковых карт. Он обеспечивает быстрый интерфейс с высокой точностью передачи данных между программным обеспечением и звуковой картой. Но этот протокол не дал желаемого результата, тогда была применена "открытая" кросс-платформенная библиотека PortAudio. Для ее работы также необходима установка ASIO SDK.
В итоге аудио сначала синтезировалось в виде стерео 96 КГц с 32-разрядными данными с плавающей точкой. После PortAudio оно преобразовалось в 32-разрядные целые числа со знаком. В среднем в процессе передачи отправляются 1800 строк в кадре.
Ниже представлено видео процесса игры в Quake на осциллографе Hitachi V-422. Отображаемая картинка выглядит, конечно же, очень интересно и концептуально, но все же не стоит долго играть перед таким монитором, иначе можно заработать красные глаза и другие проблемы со зрением.
© digitrode.ru