QindieGL - библиотека, эмулирующая OpenGL API средствами Microsoft Direct3D 9.0c. Имеющийся функционал позволяет играть в некоторые OpenGL-игры. Это может быть полезно для тех, у кого есть проблемы с OpenGL-драйверами, а также для использования в сочетании с ENBSeries и подобными Direct3D-модами.
QindieGL (QindieGL Is Not Driver, It's Emulator) - это библиотека, эмулирующая OpenGL API средствами Microsoft Direct3D 9.0c. Эмуляция не является полной - некоторые возможности пока не реализованы. Однако уже имеющийся функционал позволяет играть в некоторое количество OpenGL-игр.
II. Зачем это может понадобиться?
1) Существуют кривые драйвера (особенно этим грешат мобильные радеоны), в которых нет нормальной поддержки OpenGL, а Direct3D поддерживается. Тогда для игры в OpenGL-игру понадобится этот враппер.
2) Возможность легкого портирования OpenGL-игры на Direct3D или, что более актуально, создание мультиграфического рендера - достаточно подставлять ей нужную библиотеку при запуске. В будущем, вероятно, будет создана статическая библиотека для линковки, что позволит внедрять враппер в движок напрямую, обходясь без манипуляций с DLL.
3) Для прикола. Мне было интересно посмотреть, как OpenGL-игры работают на "чужом" API и даже "не подозревают" об этом. =)
III. Установка и настройка
1) Добавьте в реестр информацию из файла setup.reg
2) Положите файл opengl32.dll в папку с исполняемым файлом игры
3) Запускайте игру
4) Если хотите вернуться к обычному OpenGL-режиму, удалите файл opengl32.dll из папки с игрой
ПРЕДУПРЕЖДЕНИЕ:
1) Некоторые античитерские программы распознают такие библиотеки как читы, поэтому убедитесь, что отключили античитерское защитное ПО. Не рекомендуется экспериментировать с играми, распространяемыми через Steam - можете лишиться аккаунта из-за Valve Anti-Cheat.
2) Некоторые разрешения экрана, поддерживаемые OpenGL, не поддерживаются Direct3D. Прежде чем выбрать нестандартное разрешение, убедитесь, что оно присутствует в списке "Свойства экрана" - "Дополнительно" - "Адаптер" - "Список всех режимов".
III. Список поддерживаемых игр и движков
Quake 2 (в режиме OpenGL)
Half-Life (в режиме OpenGL; там также есть свой Direct3D-рендерер)
Xash
Quake 3
Serious Sam: First Encounter*
Serious Sam: Second Encounter* (в режиме OpenGL; там также есть свой Direct3D-рендерер)
Doom 3**
GLQuake***
Extrasensoric
Tux Racer
Return to Castle Wolfenstein
Unreal Tournament (OpenGL mode)****
Doom2 (Doomsday)
Kingpin
Может работать и с другими...
* - не поддерживаются эффекты светорассеивания в связи с тем, что враппер не умеет читать буфер глубины
** - нормально работает только 2D - меню, PDA и т.п. Остальное пока рисуется с глюками, хотя в целом играбельно.
*** - нужно отключить Z-trick (например, написать в консоли gl_ztrick "0")
**** - нужно отключить Z-trick (откройте "OpenGlDrv.ini" и поставьте значение параметра "UseZTrick" в 0).
IV. Поддерживаемые функции
Аккумулятор - нет
Альфа-тест - да
Альфа-блендинг - да
Begin/End - да
Текстурные объекты - да
Дисплейные списки - нет
Culling - да
Clip planes - да
Освещение - да (частично*)
Материалы - да
Вершинные массивы - да
Вычислители - нет
Туман - да
Распаковка пикселей - да
Упаковка пикселей - да (частично**)
Размер точек - да
Толщина линий - нет
Штриховка - нет
Трафарет - да
Индексный режим - нет
Логические операции - нет
Матрицы - да
Сохранение и восстановление атрибутов - да
Приоритеты текстур - да
Чтение пикселей - да (частично***)
Копирование пикселей - нет
Запись пикселей - нет
Переключение ReadBuffer/DrawBuffer - нет
Выбор - нет
Фидбэк - нет
Отсечение (scissor) - да
Polygon Mode - да (частично****)
Polygon Offset - да (частично****)
Генерация текстурных координат - да*****
Множественные контексты - нет
wglUseFontBitmaps/wglUseFontOutlines - нет
Мультисэмплинг - в настройках враппера******
* - не совсем правильно задается позиция источника света, не поддерживается модель двустороннего освещения.
** - пока поддерживается упаковка только в RGB и RGBA.
*** - не поддерживается чтение буфера глубины и трафарета.
**** - только для обеих граней одновременно.
***** - фича реализована программно и может снизить производительность. Используется SSE, если поддерживается (можно отключить, параметр "UseSSE").
****** - параметр "MultiSample". Поставьте его, например, в 8. При включении сглаживания могут возникнуть артефакты со шрифтами в некоторых играх.
* - только режим GL_DOT3_RGBA; GL_DOT3_RGB считается эквивалентным GL_DOT3_RGBA.
** - фича реализована программно и может снизить производительность. Используется SSE, если поддерживается (можно отключить, параметр "UseSSE").
*** - только функции glSelectTexture, glMTexCoord2f и glMTexCoord2fv (достаточные для работы мультитекстурирования в GLQuake и Quake2).
VI. Disclaimer
Ну, как обычно:
Автор не несет ответственности за любые программные и/или аппаратные сбои, которые могут произойти в связи с установкой и использованием враппера. НЕ УСТАНАВЛИВАЙТЕ библиотеку в папку "WINDOWS/System32"!
Запрещается использовать библиотеку враппера в собственных коммерческих или некоммерческих проектах без письменного разрешения автора. Запрещается распространять библиотеку враппера совместно с какими бы то ни было программными продуктами без письменного разрешения автора.
fitzquake
первый запуск с дефолтными параметрами показал только черное окно.
второй запуск был 1024х768х32 - без лайтмап
третий запуск с дефолтными параметрами вроде ок
так понял, что лог затирается,п оэтому толкьо второй и третий.
Вложение: quake1.zip (3.0 кб)
Этот файл был скачан 2631 раз.
Scrama писал: первый запуск с дефолтными параметрами показал только черное окно.
В логе вот что: SetupPresentParams: 640 x 400 x 24 (fullscreen)
Я писал в нулевом посте:
Цитата:
...
2) Некоторые разрешения экрана, поддерживаемые OpenGL, не поддерживаются Direct3D. Прежде чем выбрать нестандартное разрешение, убедитесь, что оно присутствует в списке "Свойства экрана" - "Дополнительно" - "Адаптер" - "Список всех режимов".
...
Черный экран - скорее всего именно поэтому.
Если в аттаче третий лог, а не первый, и при этом всё работало - это в высшей степени странно...
Цитата:
Scrama писал: второй запуск был 1024х768х32 - без лайтмап
В логе все отлично. Значит, надо ставить эту игру и ковырять.
Видя, насколько народ заинтересовался моим проектом, спешу представить обновленную версию - с поддержкой нескольких новых игр и кое-какими исправлениями. Первый пост и архив по ссылке обновлены.
Я не пишу движки, у моей видимокарты нет проблем с ГЛ *тьфу* *тьфу*, а вот для случаев когда сижу с чужего компа и охота во шо нить погамать, эта фишка очень полезная, давно искал.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!