как именно достигается 3D-видение NVIDIA?

как именно достигается 3D-видение NVIDIA?

В моей компании мы годами используем стереоскопические очки с затвором вместе с быстрыми экранами ЭЛТ, способными поддерживать частоту вертикальной развертки > 120 Гц. В последнее время становится все сложнее найти такие мониторы, поэтому мы решили попробовать один из новых ЖК-дисплеев, поддерживающих частоту обновления 120 Гц, и, как было обещано на сайте nVidia, поддерживающих 3D-зрение. Мы приобрели Samsung 2233RZ. Способ, которым мы достигаем стерео, заключается в отображении попеременно левого и правого изображений с частотой 120 Гц (используя DirectX), при этом затворы попеременно открываются/закрываются для соответствующего глаза (путем отправки триггера, синхронизированного с DirectX), поэтому фактическое изображение воспринимается в 3D с частотой 60 Гц. Эта система работает, без сомнений.

Однако не повезло, использование экрана и наших ставней в таком виде не дало результата:

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

Мы исправили это с помощью некоторого оборудования, которое компенсирует задержку и сокращает период, в течение которого ставни открыты. Пока все хорошо: 3D-восприятие было действительно хорошим, но только для небольших изображений в середине экрана.

Еще несколько измерений выявили нечто очень удивительное для нас: 2233RZ не показывает весь кадр за один раз (чего мы ожидали от ЖК-экрана: любой ЖК-дисплей, который у нас есть, а также DLP-проекторы, все делают это), а вместо этого записывает его построчно, как это сделал бы ЭЛТ. Так что естьни за чточтобы стерео работало правильно с затворами, потому что есть задержка в 8 мс между включением верхнего левого пикселя и включением нижнего правого пикселя. Более того, когда включается нижний правый, верхний левый уже выключен.

Вопрос в следующем: как nVidia это делает, и можем ли мы это сделать? Очки из их комплекта 3D-зрения используют тот же принцип, что и наши, так что это должно быть в экране/видеокарте, не так ли? Как они заставляют экран показывать весь кадр за один раз, чтобы все пиксели включались и выключались одновременно? Можно ли это настроить программно? Или это можно сделать только при использовании одной из карт GeForce, указанных как совместимые для использования с комплектом 3D (мы тестировали с Quadro 570, используя двухканальный кабель)? Если да, то это протокол по DVI, который выглядит так: «Эй, я GeForce, ты экран 120 Гц, можешь показать один кадр в 8 мс, чтобы мы могли сделать что-нибудь стерео?», а экран отвечает: «Да, я могу это сделать» или «Нет, я не могу, потому что ты Quadro»?

edit: только что узнал, что есть еще '3D Vision Pro', который принадлежит сайту и поддерживает Quadro FX570. Самое большое отличие в том, что очки используют RF вместо инфракрасного излучателя. Но это означало бы, что используемый нами ПК соответствует требованиям для 3D Vision.

Итак, «действительно» важный вопрос (спасибо Mbraedley): как мне перевести карту и экран в режим 3D, чтобы экран обновлял все пиксели одновременно?

edit2: в nVidia cpl я включил настройки 3D. Теперь при использовании StereoView, указанного в совместимых приложениях, приложение действительно сообщает о наличии «стереобума», так что, похоже, все настроено правильно. Однако проблема остается: в зависимости от величины задержки, настроенной на очках, в верхней, центральной или нижней части экрана появляются перекрестные помехи («ореолы»).

ОБНОВЛЯТЬ

После долгой переписки с nVidia, в ходе которой они в основном утверждали, что их система будет работать лучше нашей, но не могли объяснить почему, поскольку это их интеллектуальная собственность и т. д., мы решили просто купить 3D-комплект, так как он в любом случае довольно дешевый.

После некоторых измерений становится ясно: они используют тот же принцип, что и мы уже 10 лет. Они не используют никаких специальных трюков, а 3D Vision работает намного хуже нашей системы. Только два отличия:

  • программное обеспечение: у них есть некоторые методы API, с помощью которых вы можете дать двум изображениям два, и они будут автоматически отображаться чередующимися. Мы делаем это «вручную», отправляя один кадр за другим на видеокарту.
  • аппаратное обеспечение: их очки довольно плохи по сравнению с тем, что используем мы. Двоение действительно ужасно с очками nVidia, и оно видно сверху донизу: «закрытое» состояние их очков на самом деле далеко от закрытого. Здесь следует отметить одно: это касается двоения, измеренного с помощью телескопа. При просмотре реальной сцены с большим количеством деталей и без большого контраста (обычно для игр) двоение практически незаметно для глаза.

решение1

Принцип в основном тот же: покажите одно изображение одному глазу, затем другое изображение другому глазу. Однако для правильной работы NVidia 3D (и мониторы, которые с ним работают) требуют подключения DVI-D, тогда как я подозреваю, что ЭЛТ, которые вы использовали, все еще используют аналоговый. Если вы попробуете подать аналоговый сигнал на 2233RZ, у меня есть ощущение, что он не будет правильно отображать 3D. Синхронизация устанавливается во время первоначальной настройки, хотя я не уверен, как именно это достигается.

Я знаю, что монитор оповещается о том, что он отображает 3D-изображения, поскольку большинство элементов управления, включая яркость и контрастность, отключаются в режиме 3D. Однако монитор не будет жаловаться просто потому, что используется определенная карта. Неподдерживаемые карты просто не будут работать, тогда как поддерживаемые карты должны работать со всеми поддерживаемыми мониторами, если они правильно подключены и установлены драйверы и программное обеспечение.

При всем при этом, если ваше приложение не использует 3D-режим, совместимый с NVidia 3D (во что мне трудно поверить, поскольку оно использует DirectX), то NVidia не будет знать, что делать с полученными изображениями.

Связанный контент