Skip to content

drons/qindie-gl

Repository files navigation

-------------------------------------
	QindieGL
-------------------------------------
Версия 1.0

I. Что это такое?

Это библиотека, эмулирующая 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
Может работать и с другими...

* - не поддерживаются эффекты светорассеивания в связи с тем, что враппер не умеет читать буфер глубины
** - нормально работает только 2D - меню, PDA и т.п. Остальное пока рисуется с глюками, хотя в целом играбельно.
*** - нужно отключить Z-trick (например, написать в консоли gl_ztrick "0").

IV. Поддерживаемые функции

Аккумулятор - нет
Альфа-тест - да
Альфа-блендинг - да
Begin/End - да
Текстурные объекты - да (частично*)
Дисплейные списки - нет
Culling - да
Clip planes - да
Освещение - да (частично**)
Материалы - да
Вершинные массивы - да
Вычислители - нет
Туман - да
Распаковка пикселей - да
Упаковка пикселей - да (частично***)
Размер точек - да
Толщина линий - нет
Штриховка - нет
Трафарет - да
Индексный режим - нет
Логические операции - нет
Матрицы - да
Сохранение и восстановление атрибутов - да
Приоритеты текстур - да
Чтение пикселей - да (частично****)
Копирование пикселей - нет
Запись пикселей - нет
Переключение ReadBuffer/DrawBuffer - нет
Выбор - нет
Фидбэк - нет
Отсечение (scissor) - да
Polygon Mode - да (частично*****)
Polygon Offset - да (частично*****)
Генерация текстурных координат - да******
Множественные контексты - нет
wglUseFontBitmaps/wglUseFontOutlines - нет
Мультисэмплинг - в настройках враппера*******

* - пока не поддерживается glCopyTex(Sub)Image.
** - не поддерживается модель двустороннего освещения и спотлайты.
*** - пока поддерживается упаковка только в RGB и RGBA.
**** - не поддерживается чтение буфера глубины и трафарета.
***** - только для обеих граней одновременно.
****** - фича реализована программно и может снизить производительность. Используется SSE, если поддерживается (можно отключить, параметр "UseSSE").
******* - параметр "MultiSample". Поставьте его, например, в 8. При включении сглаживания могут возникнуть артефакты со шрифтами в некоторых играх.

V. Поддерживаемые расширения

GL_ARB_multitexture
GL_ARB_texture_border_clamp
GL_ARB_texture_cube_map
GL_ARB_texture_env_add
GL_ARB_texture_env_combine
GL_ARB_texture_env_dot3*
GL_ARB_texture_mirrored_repeat
GL_ARB_texture_non_power_of_two
GL_ARB_transpose_matrix
GL_ATI_texture_mirror_once
GL_EXT_abgr
GL_EXT_bgra
GL_EXT_blend_color
GL_EXT_blend_minmax
GL_EXT_blend_subtract
GL_EXT_compiled_vertex_array
GL_EXT_draw_range_elements
GL_EXT_multi_draw_arrays
GL_EXT_fog_coord
GL_EXT_packed_pixels
GL_EXT_secondary_color
GL_EXT_texture3D
GL_EXT_texture_cube_map
GL_EXT_texture_env_add
GL_EXT_texture_env_combine
GL_EXT_texture_env_dot3*
GL_EXT_texture_filter_anisotropic
GL_EXT_texture_lod
GL_EXT_texture_lod_bias
GL_EXT_texture_object
GL_EXT_stencil_two_side
GL_EXT_stencil_wrap
GL_IBM_texture_mirrored_repeat
GL_NV_blend_square
GL_NV_texgen_reflection**
GL_SGIS_multitexture***
GL_SUN_multi_draw_arrays
WGL_EXT_swap_control

* - только режим GL_DOT3_RGBA; GL_DOT3_RGB считается эквивалентным GL_DOT3_RGBA.
** - фича реализована программно и может снизить производительность. Используется SSE, если поддерживается (можно отключить, параметр "UseSSE").
*** - только функции glSelectTexture, glMTexCoord2f и glMTexCoord2fv (достаточные для работы мультитекстурирования в Quake2).

VI. Disclaimer

Ну, как обычно:
Автор не несет ответственности за любые программные и/или аппаратные сбои, которые могут произойти в связи с установкой и использованием враппера. НЕ УСТАНАВЛИВАЙТЕ библиотеку в папку "WINDOWS/System32"!
Запрещается использовать библиотеку враппера в собственных коммерческих или некоммерческих проектах без письменного разрешения автора. Запрещается распространять библиотеку враппера совместно с какими бы то ни было программными продуктами без письменного разрешения автора.

Copyright (C) XaeroX
Chain Studios, 2011

About

Automatically exported from code.google.com/p/qindie-gl

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published