Первые игры со встроенной поддержкой вывода стереоизображения появились очень давно (вспомнить хотя бы Descent). Тем не менее, большинство современных игр по-прежнему игнорируют существование 3D стерео. Для решения этой проблемы были разработаны приложения особого класса - ‘стереодрайвер’, позволяющий адаптировать игру под стереодисплей.
Введение
Стереопара представляет собой два изображения, созданные с небольшим сдвигом камеры. Обычное 3D приложение рисует картинку для одного ракурса камеры, при этом камера задаётся с помощью матрицы проекции 4x4. Матрично-векторные операции являются основой вычислений в 3D графике, более того - в графических API Direct3D и OpenGL матрицы проекции задавались отдельными методами. Поскольку большинство приложений используют матрицы проекции стандартной формы, камеру можно переопределить непосредственно модифицируя матрицу проекции.
Собственно говоря, именно этим и занимается любой стереодрайвер - он достраивает за игру дополнительный кадр, переопределяя матрицы проекции. Однако не всё так просто, как может показаться на первый взгляд:
- Подготовка стереопары практически удваивает вычисления на каждый кадр, что приводит к падению производительности.
- Современные приложения имеют большую свободу в задании вычислений и используют хитрые алгоритмы для отрисовки теней и спецэффектов с использованием внеэкранных буферов кадра. Это значительно осложняет логику стереодрайвера, требуя ручной адаптации под особенности конкретного приложения. Очень часто стереодрайвер неспособен отработать корректно некоторые спецэффекты в игре, что делает изображение бракованным. Наиболее распространены проблемы с тенями и небом.
- Подготовленную стереопару необходимо вывести на соответствующее стереооборудование, которое весьма разнообразно. Иногда поддержка конкретного оборудования технически невозможна стереодрайвером или не реализуется производителем с целью продвижения своих решений.
К сожалению, на сегодняшний день выбора между производителями стереодрайверов практически нет. В приведённой ниже таблице перечислены существовавшие в прошлом решения, а также их сравнительные характеристики.
Сводная таблица
|
NVIDIA, WinXP | NVIDIA 3D Vision | IZ3D | OPEN STEREO | eDimensional | TriDef |
Статус разработки: | прекращена | постоянно обновляется |
прекращена | прекращена | прекращена | постоянно обновляется |
Поддерживаемые Операционные системы | ||||||
Windows XP x86: | + | - | + | + | + | + |
Windows XP x86-64: | - | - | + | + | + | - |
Windows Vista / 7 x86: | - | + | + | + | + | + |
Windows Vista x86-64: | - | + | + | + | + | - |
Windows 7 x86-64: | - | + | + | + | + | + |
32-битные приложения: | + | + | + | + | + | + |
64-битные приложения: | - | + | + (?) | - | - | - |
Поддерживаемые 3D API | ||||||
DirectX 7: | + | - (info) |
- | - | - | - |
DirectX 8: | + | + | + (info) |
- | - | - |
DirectX 9c: | + | + | + | + | + | + |
DirectX 10: | - | + | + | - | - | + |
OpenGL: | + | - | - | - | - | - |
Поддержка оконного стерео: | - | - (info) |
+ | + | - | + |
Автоматический перехват 3D-приложений: | + | + | + | - | - | - (info) |
Поддерживаемые стереоустройства | ||||||
Анаглиф: (Red-Cyan anaglyph) |
+ | + | + | + | - | + |
NVIDIA 3DVision: | - | + | - | - | - | - |
Затворные очки (других производителей): |
+ | - | +/- (AMD HD3D, software emulation) |
+/- (частичная) |
- | +/- (AMD HD3D) |
Чересстрочный монитор | + | + | + | - | + | + |
Монитор Sharp: | + | - | ? | - | - | + |
HMD Z800: | + | - | - | - | - | - |
Vuzix VR920: | ? | - | + | - | - | - |
Двойной вывод: | + | - | + | - | - | + |
Зеркальные вывод: | + | - | + | - | - | - |
Монитор IZ3D: | + (info) |
- | + | - | - | - |
Дополнительно | ||||||
Официальный сайт: | nvidia.ru | nvidia.ru | iz3d.com | blogspot.com | edimensional.com | tridef.com |
Последняя официальная версия: (на момент написания статьи) |
91.31 (2006.06.29) |
- | 1.13RC (2011.06.15) |
0.3b (2007.04.26) |
- | - |
Download: | nvidia.ru | nvidia.ru | RealStereo 0.3b | tridef.com |
Дополнительные подробности
Стереодрайвер NVIDIA можно и любить и ненавидеть одновременно. Это один из самых старых представителей, который оставался бескомпромиссным вариантом для стереолюбителя на протяжении многих лет.
Основная проблема драйвера - это отсутствие конкретной линии разработки. Выпуски драйверов для Windows XP были крайне редкими и к сожалению очень редко радовали игроков качественными нововведениями. На версии 91.31 NVIDIA решила прекратить дальнейшую разработку этого драйвера.
Однако в 2008 году NVIDIA выдвигает собственный продукт для стерео - это ‘старые добрые’ затворные очки, но теперь под брендом NVIDIA. Производитель продвигает новый товар в купе с новыми драйверами - это фактически те же самые наработки в области стерео, но уже для Windows Vista! Помимо сменившегося интерфейса настроек, урезанного до минимума списка поддерживаемых стереоустройств (только анаглифные очки, фирменные затворные очки и мониторы Zalman), драйвер также лишился и дружбы с OpenGL играми. В более поздних релизах незаметно пропала поддержка игр на DirectX 7.
Такое перевоплощение не очень то порадовало пользователей старых стереоустройствами, которые в миг потеряли всякую надежду на поддержку в Vista+.
Однако с момента перевоплощения многое изменилось в лучшую сторону. В первую очередь это касается сроков выпуска - стереодрайвер теперь включён в поставку основного драйвера (чего так долго ждали со времён драйвера для Windows XP), а значит нет проблем обновления различных компонентов. Изменилась панель настроек стереодрайвера, а также туториал для его активации. Появился OSD (On-Screen-Display), который выводит некоторые сведения о работе драйвера на экран прямо во время игры. Некоторые настройки (конвергенции) были перенесены в разряд ‘продвинутых’ и по-умолчанию не доступны для настройки. Компания стала активно сотрудничать с разработчиками игр с целью поддержки ими стереовывода средствами стереодрайвера. В результате вышло уже несколько игр, полностью совместимых со стереотехнологией NVIDIA, но с неприятным сюрпризом для опытных игроков - невозможностью регулировать параметр конвергенции (авторы выбрали ‘подходящее’ значение за вас).</p>
Историческая заметка - разработчик стереодрайвера, к сожалению, объявил себя банкротом в 2012 году. Выход “новичка” на рынок стереоустройств подарил не только весьма доступный по цене монитор, но и стереодрайвер собственной разработки. Основной упор драйвера - это поддержка современных игр со включенными спецэффектами. В последствии к поддержке IZ3D мониторов была добавлена поддержка и иных стереоустройств, на платной основе.
Программа вышла в начале 2007 года и сразу же вызвала большой интерес у стереосообщества. Автор программы, Аркадий Шапкин, написал его для вывода игр в анаглифном стереоформате. В основе программы используется бесплатная версия библиотек для перехвата вызовов. Принцип работы программы основывается на перехвате команд видеодрайверу, добавления к ним новых команд для вывода стерео.
К сожалению, драйвер закончил своё развитие практически в самом начале, так как автора “забрали” в команду разработчиков iZ3D, где он и использовал свои знания и умения на благо уже iZ3D драйвера. Тем не менее информация об этой программе оставлена здесь для истории.
В недавнем прошлом стереодрайвер этого разработчика продавался отдельно для каждой игры. Это была любопытная идея (ведь покупатель мог быть уверен в 100%-ой работоспособности стерео в игре при покупке), но конкуренция со стороны других производителей драйверов вынудила TriDef выпустить универсальный драйвер.
В списке поддерживаемых драйвером устройств значатся анаглиф, чересстрочные мониторы, AMD HD3D и некоторые другие. Программа платная, однако драйвер также поставляется со многими стереомониторами.
Особенности использования драйвера вытекают из его прошлого. Для каждой установленной игры необходимо создать ярлык запуска - никакого автоматического перехвата всех 3D-приложений как в NVIDIA 3D Vision и iZ3D не предусмотрено. Компенсирует неудобство функция обнаружения установленных программ.
К каждой игре необходимо указать профиль. Очень интересным способом решаются проблемы некоторых игр - эффекты, которые не удаётся адаптировать под стерео, отключаются независимо от настроек приложения.
Из приятных особенностей драйвера следует отметить самый продвинутое OSD меню, позволяющее менять все настройки драйвера не выходя из игры.