Введение

MiniGL — это неполная реализация спецификации OpenGL, обеспечивающая достаточный объем API для запуска 3D-видеоигр конца 1990-х годов с аппаратным ускорением на графических картах того времени, которые в противном случае использовали собственные API. Изначальная реализация была разработана компанией 3dfx Interactive и предназначалась для поддержки Quake. Среди других компаний, разрабатывавших аналогичное программное обеспечение, были PowerVR и Rendition.

История

В 1996 году id Software объявила, что Rendition Vérité станет единственным аппаратным 3D-ускорителем, для которого разрабатывается Quake. Это было обусловлено как сложностями поддержки специфических API чипсетов, так и тем, что разработка Quake изначально велась на высокопроизводительных рабочих станциях, что упрощало эту задачу. Они также выпустили порт Quake для Microsoft Windows, использующий OpenGL, хотя в то время ни один потребительский чипсет не поддерживал OpenGL. В ответ 3dfx разработала и оперативно выпустила первый MiniGL – быструю реализацию минимально необходимого набора функций API OpenGL, достаточного для запуска OpenGL-версии Quake. Получив копию исполняемого файла Quake для OpenGL и соответствующий MiniGL, владельцы карт 3dfx могли легко модифицировать свою копию Quake для работы с полным 3D-ускорением, получая более плавное и качественное изображение, чем при использовании программного рендерера Quake. После успеха оригинального MiniGL от 3dfx, другие производители также начали выпускать драйверы MiniGL. В то время API OpenGL практически единогласно считался превосходящим новую и незрелую систему Direct3D от Microsoft, поэтому после появления различных MiniGL многие программисты стали использовать их в других программах как простой способ поддержки нескольких 3D-чипсетов. К сожалению, id Software не опубликовала официальный список вызовов и параметров OpenGL, используемых в Quake, и ни один из разработчиков MiniGL не предоставил списки поддерживаемых функций. На практике это приводило к осторожному использованию функций OpenGL программистами и к выпуску новых версий MiniGL с немного расширенной функциональностью каждый раз, когда появлялась крупная игра, не работавшая на предыдущей версии. Сегодня все крупные производители 3D-карт поддерживают полноценные реализации OpenGL, что делает MiniGL ненужным.

Другие варианты реализации

Разработаны реализации MiniGL для других операционных систем, в том числе Palm OS и AmigaOS.