Подключение стереоочков
к любой видеокарте на процессоре
от NVIDIA




Данная статья будет интересна не только «самоделкиным», которые соберутся применять приведенную схему, но и обычным пользователям, которые захотят оценить целесообразность покупки комплекта ЖК очков и контроллера.

С появлением референсного драйвера от NVIDIA версии выше 10.хх любой владелец видеокарты на чипах этой компании стал иметь возможность использовать ЖК стереоочки. Возможно это стало потому, что в этих драйверах появилась поддержка режима стереокартинки. Сначала поддержка стереокартинки была неофициальной, однако с выходом релиза драйверов версии 12.41 NVIDIA выпустила и официальный стереодрайвер той же версии. Таким образом, есть основание полагать, что поддержка ЖК стереоочков не прекратится, а любители красиво поиграть в игры уже могут задумываться о покупке комплекта стереоочков и контроллера к ним. Если они, конечно, не являются уже счастливыми владельцами карты класса Deluxe от ASUS или аналогичной от ELSA. Однако цена комплекта из очков и контроллера (и, разумеется, карт Deluxe и подобных) достаточно велика.

Альтернативный подход к получению стерео состоит в использовании драйвера от фирмы Metabyte, который позволяет включить режим так называемых красно-синих очков. Однако shareware версия драйвера поддерживает только две игры, а полная версия вместе с красно-синими очками стоит $15.

Между тем, последние версии драйверов от NVIDIA принесли неожиданный бесплатный сюрприз в виде неофициальной поддержки режима красно-зеленого стереоизображения, включаемого через реестр следующим образом:

[HKEY_LOCAL_MACHINE\Software\NVIDIA Corporation\Global\Stereo3D]
"StereoViewerType"=dword:80000001

После установки стереодрайвера и такого изменения в файле реестра появляется соответствующая вкладка в свойствах экрана, на которой можно менять настройки стереоизображения.

Однако вариант с красно-зелеными очками хоть и дешев, но не предоставляет хорошего качества картинки из-за естественной ошибки цветопередачи (каждому глазу показывается картинка с отсутствующей красной или зеленой составляющей видимого света) и существенного затемнения видимого изображения хорошими красным и зеленым светофильтрами. Поэтому такой режим не может быть рекомендован к постоянному использованию. Видимо, исходя именно из этих соображений программисты из NVIDIA и не включили этот режим официально, несмотря на простоту его реализации в довесок к существующему стереорежиму через ЖК очки.

Таким образом, вариант с красно-зеленым стереоизображением мы будем рассматривать лишь в качестве одного из возможных, но не как рекомендуемый.

Надо сказать, что в последнее время в компьютерных фирмах достаточно часто отдельно продаются очки для комплектации видеокарт с соответствующим контроллером. Цена подобных изделий весьма невелика, и автор купил себе очки от фирмы ASUS (для любой из видеокарт класса Deluxe, например V3800, V7100, V6800 и т. п.) всего за $15, что, как вы помните, равно сумме, запрашиваемой фирмой Metabyte за свои красно-синие очки с драйвером. Осталось только подключить их к карте (фирмы Leadtek, не обладающей специальным управляющим устройством), и в распоряжении автора (и вашем распоряжении, если вы решите повторить сборку контроллера) появляется очень дешевый вариант системы стереоизображения.

Для начала оценим целесообразность использования ЖК стереоочков в обычных играх. И лишь в конце статьи те, кому это еще будет интересно :-), смогут увидеть непосредственно схему устройства.

На проблемах визуального восприятия при использовании стереорежимов мы здесь подробно останавливаться не будем, есть достаточное количество статей, посвященных этой проблеме. Следует упомянуть лишь, что восприятие стереоизображения — дело сугубо индивидуальное. Так что очень желательно сначала посмотреть, какой эффект оказывает картинка на конкретного человека (например, с помощью красно-зеленого стереорежима в драйверах от NVIDIA), и лишь затем идти на финансовые затраты. Лично мне игра в режиме стереокартинки очень понравилась.

Чтобы сразу и бесповоротно оттолкнуть основную массу пользователей от этой технологии :-), следует предупредить, что минимально необходимая частота кадровой развертки для удовлетворительного восприятия должна быть не ниже 120 Гц (60 Гц на каждый глаз). Лучше, чтобы было больше. Поэтому пользователи 15″ мониторов будут, скорее всего, ограничены режимом 640×480. Впрочем, это ограничение тоже сугубо индивидуально.

Завершая рассмотрение визуального аспекта, хочется сказать несколько слов об эффекте «ghosting», т. е. о появлении более бледного контура слева и справа от ярких объектов. Этот эффект связан с далеко не полным затемнением стекол ЖК очков. Однако добиться лучшего результата с существующими дешевыми жидкокристаллическими материалами вряд ли представляется возможным. Автор проводил эксперименты по затемнению стекол напряжением разной амплитуды и частоты. Стекла начинали затемняться с напряжения амплитудой примерно 4-5 В. Затемнение было весьма слабым, картинка сквозь него была отлично видна, но зато оно было равномерным. При повышении напряжения до примерно 6-7 В начинала нарастать неравномерность затенения стекол, однако само затенение становилось более глубоким. (Следует иметь в виду, что данные величины могут быть немного другими на вашем экземпляре очков из-за технологического разброса их параметров.) Ну а напряжения от 11 до примерно 14 В уже не давали существенного изменения плотности затенения. Поэтому напряжение амплитудой 12 В может считаться достаточным. Частота затеняющего напряжения 1,2 кГц тоже является оптимальной, при сильном ее увеличении затемнение стекол сходит на нет.

Не останавливаясь более подробно на визуальных качествах стереорежима, мы рассмотрим целесообразность приобретения ЖК очков со стороны скорости: хватит ли ее (в просторечии, fps) для включения такого режима работы.

Очевидно, что если мы показываем каждому глазу свою картинку, которая получается за счет смещения объектов одного кадра игры, то суммарное количество кадров в секунду для обоих глаз (тех самых кадров игры) уменьшится ровно вдвое. Кроме того, на подготовку сдвинутых для каждого глаза кадров необходима дополнительная работа как процессора, так и видеокарты (анализ расстояния до объекта и разнесение на основании этой информации изображения на нужную величину).

Проведем сравнение скоростей с включенным и выключенным эффектом стереоизображения. Чтобы более точно и детально оценить степень влияния включения стереорежима, необходимо провести это сравнение с ограничением отдельно для процессора и отдельно для видеокарты.

Для тестирования был использован следующий стенд:

  • Процессор: Athlon 1 ГГц (7,5×133 МГц)
  • Видеокарта: Leadtek WinFast GeForce3 64 МБ, работающая на частотах 255/575 МГц
  • Материнская плата: Epox 8KTA3+ (чипсет VIA KT133A)
  • Обьем памяти: 256 МБ PC133 SDRAM

Испытания проводились с использованием игры Quake3. Vertical Synchronization везде выключена. Драйвер версии 12.90, Stereo Driver 12.41, anisotropic filtering 16 tap, s3tc fix.

Полученные таким образом результаты приведены лишь для сравнения друг с другом, а не для сравнения с результатами в других статьях.

Для измерения увеличения нагрузки на процессор использовался режим Normal игры Quake3, в котором, на столь мощной видеокарте, именно скорость процессора будет являться фактором, ограничивающим количество fps. И даже возросшая при включении стереорежима нагрузка на видеокарту не сможет перегрузить GeForce3, оставляя именно процессор ограничивающим фактором.

Соответственно, для измерения возрастания нагрузки на видеокарту использовался режим максимального качества с изменениями, внесенными в конфигурационный файл Quake3 (baseq3\config.cfg), в разрешении 1280×1024×32. Естественно, в таком разрешении играть с включенным стереорежимом нецелесообразно. Однако именно в этом режиме уже только видеокарта будет «бутылочным горлышком» системы. Поэтому при увеличении нагрузки на видеокарту мы сможем лучше всего ее оценить именно в этом режиме.

Итак, обратимся к результатам тестов:

Как видно из графиков, скорость падает чуть меньше, чем в два раза, причем в обоих случаях. На первый взгляд картина достаточно странная: если вдвое увеличивается нагрузка на видеокарту, то падение скорости должно быть лишь в режиме 1280×1024×32, а если вдвое увеличивается нагрузка на процессор, то скорость должна падать лишь в низких разрешениях. Отсюда может последовать только один вывод: нагрузка растет в два раза и на видеокарту, и на процессор. Но давайте не будет хвататься за голову от такого вывода, а попробуем разобраться, почему такое происходит и возможен ли другой вариант.

Как меряют количество кадров в секунду все распространенные benchmark-и? Очевидно, что они считают количество выведенных на экран кадров. Но ведь при включении стереорежима каждый такой кадр преобразуется драйверами видеокарты в два — для левого и для правого глаза. Отсюда вытекает двукратное увеличение нагрузки на видеокарту. Если же вспомнить, что кадры для левого и правого глаза не являются просто смещенными копиями основного кадра, а изменены геометрически (повернуты на некоторый угол), то становится понятным, что и нагрузка на процессор растет вдвое. Как же исправить эту ситуацию? На текущий момент, с существующими видеокартами такое невозможно. Возможно, когда-нибудь будет выпущен 3D акселератор, который сможет полностью на аппаратном уровне смещать картинки для левого и правого глаза на величину, зависящую от удаления, хранимого в Z-Buffer. Причем такое дополнение к современным акселераторам не представляется очень сложным. Специалисты конечно же вспомнят о профессиональном акселераторе на чипе от NVIDIA — Quadro, который имеет специальное расширение OpenGL для работы в стереорежиме. Подобное расширение поддерживает, к примеру, Quake3 (команда r_stereo 1), однако при включении стереорежима на GeForce3 он не может найти OpenGL рендерер. И, к сожалению, программа SoftQuadro не дает никакого эффекта на GeForce3.

Таким образом, при включении стереорежима ваши процессор и видеокарта рендерят примерно такое же количество кадров (чуть большее, т. к. процессору требуется меньше времени на подготовку второго стереокадра, чем на подготовку нового кадра игры) в секунду, как и при выключенном стереорежиме, но «стереокадры» делятся на два. Можно сказать, что нагрузка на вашу аппаратуру, на один игровой кадр в секунду, возрастает примерно вдвое. А пока можете радоваться, что вы не паук, с его восемью глазами :-). Или не стрекоза.

Из вышесказанного можно сделать вывод, что существующее падение скорости сделает стереорежим играбельным лишь на весьма мощных компьютерах. Для определения скорости после включения стереорежима на вашей машине необходимо поделить получаемое на ней число fps на два и решить, будет ли для вас этого достаточно. Впрочем, следует помнить, что вы с большой долей вероятности все равно снизите разрешение в игре для достижения большей частоты развертки вашим монитором, так что нагрузка на видеокарту вряд ли превысит ее возможности. Что же касается необходимой мощности процессоров, то надо отметить, что цена на продукты от фирмы AMD настолько упала, что позволить себе очень мощный процессор может практически любой владелец персонального компьютера.

Теперь перейдем непосредственно к схеме контроллера. Рассуждения в этой части статьи могут быть понятны не только профессионалам. Однако для полного понимания работы контроллера необходимо наличие некоторых знаний по схемотехнике. А непрофессионалы могут просто повторить приведенную схему.

Еще до покупки ЖК очков от ASUS автор задался вопросом о том, какой формой напряжения управляются эти очки. Общая теория работы жидких кристаллов была известна, кроме того были проштудированы ресурсы Internet, описывающие устройства подключения различных ЖК очков к видеокартам. К сожалению, на указанном сайте не было схем подключения ЖК очков от ASUS, а присутствовали только схемы для подключения очков от Elsa, которые представляют собой более сложный (и, соответственно, дорогой) аппарат со встроенной системой управления (подробности рассмотрим дальше). Кроме того, практически на всех опубликованных схемах существовал тумблер текущего выбора «лево—право» и, следовательно, не существовало схемотехнического управления последовательностью закрывания (т. е. в 50% случаев картинка для левого и правого глаза менялась местами). Но на широких просторах Internet было обнаружено, что у очков Elsa Revelator управление «лево—право» осуществляется по каналу DDC (12-й вывод гнезда VGA). Немедленно было принято решение проверить эту информацию на произвольной карте с референсными драйверами от NVIDIA.

Для этого была добыта карта ASUS V3800 Deluxe, и были сняты осциллограммы напряжения на управляющем разъеме ЖК очков (простой стереоджек, как в наушниках для кассетного плеера (на рисунке справа указан общий провод ЖК очков от ASUS, «левый» и «правый» можно подобрать уже после сборки схемы)).

Амплитуда управляющего напряжения составила +12/-12В.

На 12-м выводе разъема VGA при включении режима стерео действительно присутствовал управляющий сигнал «лево—право». На основании этого можно сделать предположение, что Stereo Driver от NVIDIA основан на разработках ELSA. Из этого же можно сделать вывод, что при наличии ЖК очков Elsa Revelator схема их подключения будет весьма простой, и позднее мы о ней поговорим.

Частота следования двуполярных импульсов, поляризующих жидкие кристаллы (т. е. закрывающих один глаз), составила 1,2 кГц.

Из наличия двуполярных сигналов вытекало требование о наличии двуполярного источника питания. Однако известно, что для правильной поляризации жидких кристаллов совсем не обязательно управлять ими двуполярным напряжением. Есть более дешевые решения, при этом полностью соблюдающие все требования для правильного затемнения жидких кристаллов.

На основании всех этих соображений была разработана схема контроллера ЖК очков от ASUS для любой видеокарты на чипе от NVIDIA.

Напряжение питания 12В берется или от компьютерного блока питания (желтый провод «+», черный «-»), с разъемов по подключению винчестера / дисковода, или от внешнего блока питания. При питании от внешнего БП необходимо соединить общий провод схемы с землей в VGA разъеме, например, с 10-м выводом разъема VGA. Хотя такое действие, для защиты от наводок на сигнал кадровой синхронизации, будет нелишним выполнить и при питании от БП компьютера.

Устройство собирается на четырех распространенных и дешевых отечественных микросхемах: DA1 — КР1006ВИ1, DD1 — K561ЛП2, DD2 — К561ЛА7, DD3 — К561ЛН2. Замена на серию 176 не допускается. Следует упомянуть, что при работе с КМОП микросхемами желательно принимать меры предосторожности для защиты от статического электричества. Как то: пайка низковольтным паяльником с развязкой от сети, заземляющие браслеты и т. п.

В схеме присутствует переключатель, с помощью которого вы сможете после сборки схемы скорректировать положение «левый—правый». Этот переключатель (SA1) представляет собой тумблер или кнопку с фиксацией. Его спокойно можно исключить, настроив единожды схему на правильное положение. Делается это при подаче нулевого потенциала на один из входов микросхемы DD1 (2 или 6).

С помощью этого тумблера можно попробовать поменять местами картинку для левого и для правого глаза. Что интересно, стереоэффект при этом не пропадает, но глаза устают гораздо сильнее. Но это субъективное наблюдение, которое может не подтвердиться в вашем случае.

В схеме предусмотрено отключение очков в случае пропадания управляющего напряжения на выводе 12 разъема VGA (после выключения стереорежима). Сделано это для того, чтобы одно стекло не было постоянно включенным (затемненным), что может привести к выходу его из строя, преждевременному «старению» его параметров или к банальному удержанию затемнения стекла в течение некоторого времени после снятия управляющего напряжения, что является абсолютно неприемлемым для правильного отображения стереокартинки, так как вам просто не будет показываться картинка для одного глаза.

На выходе схемы установлена ИМС К561ЛН2 с высокой нагрузочной способностью, т.к. опытным путем было установлено, что ЖК очки являются существенной емкостной нагрузкой.

При сборке устройства нет необходимости соблюдать нумерацию логических элементов внутри микросхем DD1 — DD3; их можно менять в соответствии с удобством разводки.

Для увеличения стабильности схемы в нее включены фильтрующие конденсаторы на 0,1 мкФ и электролитический конденсатор на 100 мкФ. Желательно их расположить в месте подключения питающего напряжения к плате и на наибольшем удалении от него.

Подключать собранное устройство к видеокарте можно через passthrough разъем, сделанный из двух VGA разъемов (male и female), если не требуется особого качества 2D изображения (ибо любой дополнительный разъем приводит к ухудшению изображения). Можно проводить подключение прямо в разборном BNC коннекторе со стороны 15 pin VGA разъема. Особо экстремальные люди могут подпаять провод напрямую к видеокарте, прозвонив контакт 12, на место пайки разъема.

В результате, на выходе данного устройства относительно общего провода будут следующие диаграммы (они могут понадобиться при отладке неправильно собранного устройства и для понимания его работы):

Однако столь разительное отличие полученных диаграмм от исходных не должно вас пугать. Достаточно снять осциллограммы, установив общий провод осциллографа на выход «средний», а сигнальный вход на выходы «левый» или «правый», как осциллограмма примет вид, показанный на исходном рисунке. Однако следует иметь в виду, что в данной схеме нельзя «общий» провод разъема миниджек соединять с корпусом компьютера. Как нельзя и при снятии такой осциллограммы соединять между собой корпуса компьютера и осциллографа.

Конечно, схему можно сделать на совершенно другой элементной базе. Например, задачу миниатюризации можно решить, использовав какой-либо микроконтроллер в SOIC исполнении. Однако стоимость такого решения и необходимая подготовка были бы выше. Впрочем, все в ваших руках — дерзайте…

Теперь можно рассмотреть схему сопряжения очков Elsa Revelator с любой картой на чипе от NVIDIA.

Для подключения этих ЖК очков достаточно измерить уровни напряжения на выходе соответствующей карты от фирмы ELSA. Эти очки имеют встроенную систему управления, и им необходимы лишь внешнее напряжение и управляющий сигнал с вывода 12 разъема VGA. Однако автором такое подключение не проделывалось, и решившемуся на него придется самому измерить уровни требуемых напряжений и при необходимости поставить ключевой каскад (аналогичный первому транзисторному каскаду приведенной схемы) для повышения уровня управляющего напряжения, а также подать на вход питания очков требуемый уровень напряжения.

Напоследок хотелось бы напомнить, что не стоит производить какие-либо отключения/подключения приборов к персональному компьютеру во включенном состоянии. Как при изготовлении, так и при эксплуатации контроллера. Пусть вы потратите больше времени, зато будете хоть как-то гарантированы от поломок дорогостоящего оборудования.

Таким образом, приведенная схема позволяет получить систему с наличием стереоизображения за весьма небольшие, по сравнению со стоимостью фирменных систем, деньги. Причем надежность устройства и защита ЖК очков этой системой находятся на достаточном уровне. Однако решение вопроса «иметь или не иметь» все равно остается за вами…

Автор не несет ответственности за возможные поломки дорогостоящего оборудования в процессе изготовления и применения данной схемы. Т. к. кривизна рук — вещь сугубо индивидуальная… Все действия вы производите на свой страх и риск.




Дополнительно