OpenGL: Różnice pomiędzy wersjami

[wersja nieprzejrzana][wersja przejrzana]
Usunięta treść Dodana treść
m Wycofano edycje użytkownika 217.113.158.226 (dyskusja). Autor przywróconej wersji to StankoBot.
Linia 28:
OpenGL, podobnie jak np. [[X Window System]], działa w [[Architektura oprogramowania|architekturze]] [[klient-serwer]]. Klientem w tym przypadku jest aplikacja wykorzystująca OpenGL, która zleca operacje graficzne do wykonania, a serwerem – aktualnie używana implementacja OpenGL (np. w sterowniku karty graficznej). Zwykle klient i serwer znajdują się na tej samej maszynie, jednak nie jest to konieczne – biblioteka jest zaprojektowana tak, aby możliwe było np. wyświetlanie grafiki OpenGL na zdalnym terminalu. Jednocześnie dzięki zastosowaniu zunifikowanego protokołu komunikacji wyświetlanie może odbywać się na zupełnie innej platformie niż ta, na której działa aplikacja.
 
Jedną z podstawowych cech OpenGL jest to, że jest on [[maszyna stanu|maszyną stanu]] (''ang. state machine'' ). Na stan OpenGL w danym momencie składa się szereg parametrów i trybów działania, które można ustawić lub zapamiętać na stosie i później odtworzyć. Ich konfiguracja będzie miała bezpośredni lub pośredni wpływ na otrzymany rezultat [[rendering]]u. Raz ustawiony parametr lub tryb działania pozostaje zachowany aż do następnej zmiany. Przykładami takich parametrów mogą być kolor rysowania, aktualnie używana [[teksturowanie|tekstura]], sposób działania [[Bufor Z|bufora Z]], [[macierz]] na której wykonywane są aktualnie operacje, oraz wiele innych.
 
Część z parametrów może być włączana lub wyłączana w sposób bardzo oczywisty, tzn. poprzez wywołanie funkcji ''glEnable()'' lub ''glDisable()'' (w tłumaczeniu brzmiałoby to: ''glWłącz()'' oraz ''glWyłącz()''), a inne ustawiane są poprzez wykonanie powiązanych z tymi parametrami funkcji (np. ''glBindTexture()'' – ustawienie aktywnej tekstury).
Linia 35:
 
== Geneza OpenGL ==
Pierwotna wersja biblioteki wyewoluowała ze stworzonej przez firmę [[Silicon Graphics|Silicon Graphics Inc.]] dla jej systemów graficznych biblioteki [[IRIS GL]]. W chwili obecnej implementacje Open GLOpenGL można znaleźć w praktycznie wszystkich nowoczesnych platformach. W większości przypadków implementacje te rozwijane są przez producentów sprzętu graficznego. Istnieje również otwarta implementacja – [[Mesa (informatyka)|Mesa]], zgodna z OpenGL na poziomie kodu, która jednak ze względu na brak licencji określana jest jako "bardzo podobna".
 
Do połowy 2006 rozwój Open GLOpenGL był kontrolowany przez organizację [[OpenGL Architecture Review Board|ARB]] (Architectural Review Board), powołaną w 1992 i zrzeszającą 10 firm ([[3DLabs]], [[Apple Computer|Apple]], [[ATI Technologies|ATI]], [[Dell]], Evans & Sutherland, [[Hewlett-Packard]], [[IBM]], [[Intel]], [[Matrox]], [[Nvidia|NVIDIA]], [[Silicon Graphics|SGI]], [[Sun Microsystems]]), które spotykały się raz na 3 miesiące, aby głosować i podejmować decyzje. 31 lipca 2006 komitet standaryzacyjny ARB opowiedział się w głosowaniu za wcieleniem tej organizacji do grupy roboczej [[Khronos Group|Khronos]], która prowadzi prace nad wieloma pokrewnymi projektami w tym [[OpenGL ES]], co w założeniach miało uprościć formalności, przyspieszyć prace i ujednolicić dalszy rozwój tych standardów. Prawa do logo i nazwy OpenGL nadal jednak należą do [[Silicon Graphics|SGI]].
 
Prace nowej grupy roboczej pozytywnie wpłynęły na podejście do społeczności programistów OpenGL. Postawiono na intensywną współpracę, szeroki kontakt oraz częste informowanie o postępach w pracy nad nowymi rozwiązaniami. Na życzenie użytkowników zaczęto pracować nad jednolitym [[Software Development Kit|SDK]], które ma ułatwić poznanie tej biblioteki nowym deweloperom oraz dostarczać narzędzia przydatne do analizy, budowania i optymalizacji aplikacji, które z niej korzystają.
Linia 87:
 
== Zobacz też ==
* [[Mesa (informatyka)|Mesa]] ciała
* [[Direct3D]]
* [[OpenGL Shading Language]]