пятница, 29 мая 2009 г.

iZ3D драйвер версии 1.10RC1

Вот наконец и выпустили 1.10 версию (скачать можно тут http://www.iz3d.com/t-dcdriver.aspx). С этой версией в ходе дебаггинга много поработали над артефактами играми, поняли причину многих проблем с играми в стерео и много из них исправили.

Чаще всего встречаются следующие проблемы (NVidia тоже упоминала об этом в своей презентация):

  1. Реконструкция координат в пиксельном шейдер по карте глубины. Обычно по этой причине в большинстве игр некорректно рисуются тени (например, Crysis, STALKER, UT3, GTA4 и т.п.). Пока нет идей как универсально исправить эту проблему для таких игр, но мы работаем над данной проблемой. Если в PS напрямую передается обратная матрица проецирования (Dead Space, пример NVidia Deffered Shading), то пока мы можем вручную решить данную проблему с помощью профайлов. Crysis к примеру вообще напрямую не использует в шейдере обратную матрицу проецирования, а делает более хитрые операции с константами. Возможно когда-нибудь наступит счастье и большинство разработчиков игр будут используемый предлогаемый NVidia способ, сохраняя Clip space X координату в RT и восстанавливая World space координату используя этот RT, тогда все эффекты будут нормально работать.
  2. Эффекты, надписи над объектами и т.п. рисуются без использования матрицы перспективной проекции. Например данный эффект можно пронаблюдать с источниками света в Mirror's Edge или в Dead Space которые рисуются в моно, а также к примеру в WoW надписи над объектами рисуются также в моно. Данную проблему мы не можем исправить, т.к. не знаем на какую глубину объект следует поместить.
  3. Моно объекты рисуются с использованием перспективной матрицы проецирования. Это обратная ситуация когда к примеру 2D интерфейс рисуется с использованием той же матрицы проецирования что и вся сцена. Чтобы сделать в таких случаях интерфейс моно мы указываем драйверу что используемый вертексный шейдер рисует всегда 2D интерфейс и драйвер использует эту информацию при рисование сцены. Бывает более сложная ситуация когда один и тот же шейдер используется и для 2D и для 3D объектов (UT3, GoW) но мы в большинстве случаев можем решить подобную проблему.
  4. Игра располагает объекты на неправильной глубине. В некоторых играх небо располагают слишком близко к сцене, что дает неправильный стереоэффект. А также, очень часто оружие персонажа располагают на большом расстояние от самой сцены и из за этого визуально нельзя добиться хорошей глубины сцены.


Вот пожалуй самые основные встречающиеся нам проблемы.