четверг, 26 апреля 2007 г.

Новая версия стереодрайвера

Вот новый релиз моего стеродрайвера RealStereo 0.3b реализующий стерео в режиме оптимизированный анаглиф. Драйвер поддерживает только Direct3D 9 программы.

Вкратце, кому интересно, стереодрайвер работает так:
  • Перехватывает вызовы Direct3D9
  • Вместо BackBuffer'а, DepthStencil и RenderTarget текстур/поверхностей создаются стерео текстуры/поверхности. Они отличаются тем что должны хранят не один а два ракурса (для левого и правого глаза).
  • Каждый Draw вызов дублируется для обоих ракурсов. При этом если используется вертексный шейдер то он модифицируется для смещения камеры, иначе модифицируется матрица проецирования. А также если используются RT текстуры, то выбирается необходимый ракурс.
  • Во время вызова Present драйвер объединяет оба ракурса BackBuffer'а в один с помощью пиксельного шейдера.
Самая нетривиальная тут задача конечно модификации кода вертексных шейдеров, хотя было и много других подводных камней.

Тестировал в играх HL2, HMM5, Flatout 2. Есть небольшие глюки, по этому и beta.

К сожалению не представляю как реализовать PageFlip из за того что драйвера видеокарты не предоставляют доступа к 3-PIN VGA, а также незнаю как прервать отрисовку текущего кадра и в этот момент нарисовать другой ракурс в BackBuffer. Наверное, поэтому разработку прийдеться прекратить. Так как стерео в ангалиф режиме всетаки сильно ущербное по цветопередачи.

5 комментариев:

Евгений комментирует...

Спасибо тебе добрый человек. Порадовал обладателя карточки ATI. К сожалению работает только во Flatout 2 (HL2, HMM5 пока не пробывал), остальные не берет :(
Тем не менее еще раз огромное спасибо. Надеюсь проект будет развиваться.

Константин комментирует...

По-поводу 3х контактного вывода VESA там:
- провод питания 5в
- сигнал КСИ деленный на 2
- общий провод.
В итоге управление Pageflipping-ом для таких стереоочков сводится к управлению КСИ (кадровым синхроимпульсом).
В Стереоскопике от Питера Виммера есть режим Software Pageflipping, который работает независимо от видеокарты (у меня работает и на интегрированной в материнку). Если есть желание, можно обсудить пару вопросов на эту тему.
ICQ 1923071
Константин.

Алексей комментирует...

Меня тоже порадовала возможность на карте ATI увидеть нормальное стерео-изображение хотя бы во Flatout2. Вот только проблема - fps катастрофически упал. :-( До слайдшоу..
Что делать? Карта ATI X1600Pro

Сонный Мишка комментирует...

сделай пожалуйста стерео для dx8, dx7 и OpenGL. Очень хочется поиграть в старые игры в 3d (Quake3, Half-Life 1)

Dragon комментирует...

Теперь iZ3D драйвер может работать и в режиме анаглиф, драйвер хорошо отлажен поддерживаются игры под DX8, DX9, сейчас идет работа над поддержкой DX10. Также поддерживаются и NVidia и ATI видеокарты. Скачать можно тут . Quake 3 тоже можно запустить в режиме эмуляции QuadBuffer'а.