Android używa OpenGL ES, jaka jest różnica między nim a OpenGL?
Android używa OpenGL ES, jaka jest różnica między nim a OpenGL?
Odpowiedzi:
OpenGL ES (Embedded Systems) to uproszczona wersja OpenGL. Istnieje wiele różnic między tymi dwoma, a jeśli chcesz przejść do szczegółów, możesz przeczytać ten artykuł ze specyfikacją 128. Ale ES jest podzbiorem OpenGL, więc wszystkie aplikacje ES działają na systemach innych niż ES, ale nie odwrotnie.
Nie ma jednego miejsca, w którym można łatwo zdefiniować, co jest w ES, a co nie. Nawet jedna definicja brzmi: „OpenGL-ES jest podobny do OpenGL, ale bez wielu rzeczy. Na przykład nie ma glBegin ani glEnd”.
Niestety, żadna z dotychczasowych odpowiedzi nie jest kompletna i całkowicie poprawna. Naprawdę, OpenGL-ES robi dwie rzeczy, których nie robi OpenGL:
1) rozbiera, a następnie rozszerza interfejsy API OpenGL, aby był odpowiedni dla platformy mobilnej. Oznacza to, że najpierw usuwają interfejsy API i funkcje, których naprawdę nie potrzebujesz, i są uciążliwe dla implementacji mobilnych, takich jak renderowanie wielokątów lub korzystanie z list wyświetlania. Następnie tworzy kilka rozsądnych rozszerzeń, aby uczynić go bardziej przydatnym dla platformy mobilnej. Jednak nie pamiętam nawet takiego przykładu.
2) zapewnia interfejs do menedżera okien (a zatem i natywnego sprzętu graficznego) platformy mobilnej. Ta część OpenGL-ES, znana jako EGL, przypomina GLUT na komputerze. Tyle że nie ma żadnej z tych wygodnych metod, które nie są absolutnie konieczne dla tego interfejsu. Więc nie ma API do rysowania wielościanów lub kulek (jak w GLUT). Ale są na przykład interfejsy API, które odpowiadają init () GLUT oraz wywołaniom zwrotnym DisplayFunc () i ReshapeFunc ().
W systemie Android dostępne są dwie wersje OpenGL ES:
Ostrzeżenie, OpenGL ES 2.0 nie jest kompatybilny z OpenGL ES 1.X!
Prawie wszystkie telefony z Androidem mają procesor graficzny OpenGL 1.X, a większość ma 2.0. OpenGL ES 2.0 jest dostępny tylko z systemem Android 2.x lub nowszym.