Biblioteka graficzna OpenGL

Open Graphics Library to standardowa aplikacja graficzna do wizualizacji 2D i 3D, opracowana w 1992 roku. Opengl występuje w dwóch wariantach. Pierwszym z nich jest Microsoft OpenGL, który jest często dołączany do Winds, aby zainstalować kartę graficzną. Drugi - Cosmo OpenGL - jest przeznaczony dla systemów, które nie mają przyspieszonej karty graficznej. Biblioteka OpenGL jest głównym warunkiem programu.

Recenzja użytkownika OpenGL

Do OpenGL każda firma, która tworzy aplikację graficzną, miała przepisać część graficzną dla każdej platformy systemu operacyjnego. Z nich można tworzyć te same efekty w różnych systemach operacyjnych za pomocą dowolnej karty graficznej obsługującej program. OpenGL ustawia zestaw "poleceń" lub bezpośrednio wykonywanych funkcji, z których każda kieruje operacją rysowania lub powoduje efekty specjalne. Ich listę można utworzyć dla powtarzalnych efektów.


OpenGL nie zależy od cech "Wiatrów" każdego systemu operacyjnego, ale zapewnia specjalne procedury dla systemu operacyjnego. Zawiera ogromną listę wbudowanych funkcji wymaganych przez interfejs API. Należą do nich:
  • ukryte usunięcie powierzchni;
  • mieszanie alfa (przezroczystość);
  • wygładzanie;
  • teksturowane mapowanie;
  • operacje z pikselami;
  • przegląd i modelowanie przekształceń;
  • efekty atmosferyczne (mgła i dym).
  • Silicon Graphics - twórcy zaawansowanych graficznych stacji roboczych - zainicjowali rozwój OpenGL. DEC, Intel, IBM, Microsoft i Sun Microsystems weszły do ​​branżyKomisja ds. Przeglądu Architektonicznego. Rozwijanie aplikacji za pomocą OpenGL API nie pociąga za sobą żadnych kosztów poza szkoleniem. Microsoft oferuje bezpłatne pobieranie bibliotek dla swoich systemów.


    Zestaw modułów dla systemu Windows

    Aplikacja jest dostępna na wielu systemach Win32 i Unix. A f90gl jest implementacją domeny publicznej oficjalnej komunikacji Fortran 90 OpenGL, zaprojektowanej jako baza danych modułów i bibliotek, określa niezbędne interfejsy dla funkcjonalności programu. Sam f90gl został opracowany przez Williama F. Mitchella z Geertberg Institute of Technology w Stanach Zjednoczonych. Do niedawna OpenGL LF9x mógł być tworzony tylko w postaci statycznie połączonych programów kierowanych na Visual C. Obecnie znacznie bardziej łagodna metoda jest dostępna dzięki wysiłkom odłożenia realizowanym przez Lawsona B. Wakefielda z Wielkiej Brytanii. Ta implementacja udostępniła interfejs OpenGL pod WiSK i Winteracter i została wdrożona na zasadzie dobrowolności, niekomercyjnej. Niektóre biblioteki DLL OpenGL zainstalowane w katalogu Windows SYSTEM32 są wymagane do połączenia z biblioteką OpenGL. Należą do nich:
  • opengl32.dll;
  • glu32.dll;
  • glut32.dll.
  • Pierwsze dwie z tych bibliotek OpenGL (w celu ich sprawdzenia przed instalacją) są standardową częścią Windows różnych modyfikacji i Ja. Biblioteki i moduły f90gl muszą być zainstalowane w katalogu LIB LF95:
  • F90GL.LIB;
  • F90GLU.LIB;
  • F90GLUT.LIB;
  • OPENGL32.LIB;
  • GLU32.LIB;
  • GLUT32.LIB;
  • OPENGL.MOD;
  • OPENGL2.MOD;
  • OPENGL_KINDS.MOD;
  • OPENGL_GLINTERFACES.MOD;
  • OPENGL_FWRAP.MOD;
  • OPENGL_GLUINTERFACES.MOD;
  • OPENGL_GLU.MOD;
  • OPENGL_GLUTINTERFACES.MOD;
  • OPENGL_GLUT.MOD;
  • OPENGL_GL.MODd.
  • Kompilacja i łączenie programów f90gl wymaga, aby katalog LF95 LIB był odsyłany do ścieżki modułu kompilatora i nazw bibliotek f90gl do wiązania.

    Biblioteki obrazów

    DevIL jest używany przez programistów. Obsługuje wiele formatów graficznych do czytania i pisania, wiele kompilatorów i OS ("Windsor", "Linux", "Mas"). Biblioteka ma następującą składnię:
  • FreeImage to wieloplatformowa biblioteka OpenGL do pobierania obrazów z obsługą bardzo szerokiego formatu (w tym niektóre formaty HDR, takie jak OpenEXR).
  • OpenImageIO (OIIO) to biblioteka do odczytu i zapisu obrazów, a także wielu powiązanych klas, programów narzędziowych i aplikacji. Jest szeroko stosowany w studiach animacji i VFX na całym świecie, a także osadzony w kilku komercyjnych produktach.
  • SOIL to wieloplatformowy downloader obrazów, który jest niezwykle mały. C ++, zdolne do ładowania tekstur DDS (DDS9 i DDS10) na licencji MIT.
  • Glraw dostarcza narzędzie wiersza poleceń, które konwertuje pliki obrazów na nieprzetworzone, zawierające bezpośrednio gładkie dane teksturalne.
  • Importowanie zasobów aktywów 3D

    Biblioteka graficzna OpenGL do importowania zasobów (Assimp) jest prezentowana jako biblioteka typu open source do importowania wielu popularnych modeli trójwymiarowych. Najnowsza wersja eksportuje pliki 3d i nadaje się jako konwerter ogólnego przeznaczenia. Istnieje kilka rodzajów takich bibliotek:
  • Czyta różne formaty plików 3D - COLLADA, własne pliki Blender3D, Wavefront Obj (.obj) i wiele innych. Biblioteka lib3ds jest przeznaczona do czytaniaPliki 3ds.
  • ​​
  • Open3mod to przeglądarka modeli oparta na systemie Windows. Pobiera wszystkie formaty plików obsługiwane przez Assimp i idealnie nadaje się do szybkiego sprawdzania zasobów 3D.
  • AssetKit (w toku) - biblioteka OpenGL jest importerem /eksporterem zasobów 3D, narzędziem opartym na specyfikacjach COLLADA /glTF. Głównym celem jest tutaj COLLADA glTF. W pełni obsługuje formaty 141.411.5+, a także niektóre inne jako biblioteki do pobierania modeli w OpenGL.
  • Wydajna grafika 2D /3D

    Biblioteka graficzna OpenGL Android obejmuje obsługę wysokiej jakości grafiki 2D i 3D z otwartą biblioteką, w tym OpenGL ES API. Android obsługuje go zarówno za pośrednictwem interfejsu API infrastruktury, jak i Native Development Kit (NDK). W platformie nazwanego systemu operacyjnego istnieją dwie podstawowe klasy, które umożliwiają tworzenie i manipulowanie grafiką za pomocą interfejsów API: GLSurfaceView i GLSurfaceView.Renderer. Jeśli istnieje cel korzystania z OpenGL w aplikacji na Androida, musisz zrozumieć, jak wdrożyć te klasy w działaniu. Tak, GLSurfaceView może rysować obiekty i manipulować nimi za pomocą wywołań API OpenGL, takich jak funkcja SurfaceView. Ten interfejs definiuje metody potrzebne do rysowania grafiki GLSurfaceView. I użytkownik musi zapewnić implementację tego interfejsu jako oddzielnej klasy i dołączyć GLSurfaceView.setRenderer do instancji GLSurfaceView. Po utworzeniu widoku kontenera dla OpenGL ES, GLSurfaceView i GLSurfaceView.Renderer można uruchomić połączenie biblioteki OpenGL i korzystać z interfejsu API.

    Zestaw mobilnych urządzeń graficznych

    Implementacje aplikacji różnią się dla urządzeń z systemem AndroidObsługiwane interfejsy API obejmują kompresję tekstur i inne zestawy funkcji. Pakiet rozszerzeń Androida (AEP) obsługuje standardową bazę danych rozszerzeń. Pakowanie ich razem promuje spójny zestaw funkcji na wszystkich urządzeniach, umożliwiając programistom pełne wykorzystanie najnowszego pakietu mobilnych projektów graficznych. AEP poprawia także obsługę obrazu, bufory, pamięć modułu cieniującego i liczniki. Aby aplikacja korzystała z AEP, wersja platformy powinna ją obsługiwać. Wymóg dotyczący AEP jest również wymagany w następujący sposób:

    Weryfikacja i wybór wersji OpenGL ES

    Kilka wersji aplikacji jest dostępnych na urządzeniach z systemem Android. Możesz określić minimalną wersję interfejsu API wymaganą przez aplikację na telefonie. Wersja API opengl ES 1.0 wersja 2.0 wersja 3.0 zapewnia wydajne graficzne interfejsy do tworzenia gier 3D, wizualizacji i interfejsów użytkownika. Program OpenGL ES 2.0 jest podobny do wersji 3.0, co stanowi nakładkę API 2.0 z dodatkowymi funkcjami.
    Programowanie API 1.0 /1.1 znacznie różni się od wersji 2.0 i 3.0, dlatego programiści powinni dokładnie przeanalizować niektóre czynniki przed rozpoczęciem pracy z tymi interfejsami API. Tak, ogólnie 2 i 3 zapewniają szybszą wydajność graficzną niż API ES 1/11. Różnica może się jednak różnić w zależności od urządzenia z systemem Android, na którym działa program, z powodu różnic w implementacji sprzętowej przenośnika grafiki.

    Porównanie ze sterownikami DirectX

    Sterowniki graficzne Windows DirectX są obsługiwane lepiej niż OpenGL,pomimo tego, że programiści zarządzają szybciej. Biblioteki OpenGL i DirectX (historia i perspektywy) są powiązane z Microsoftem, który faktycznie sprzeciwiał się OpenGL. W 2003 r. Microsoft powiedział, że nie jest już zainteresowany planami OpenGL. Następnie w 2005 r. Wydali oświadczenie podczas prezentacji SIGGRAPH, że system Windows Vista usunie jego wsparcie. Ta kampania spowodowała chaos w społeczności OpenGL, po której wielu profesjonalnych programistów przełączyło się na DirectX. Po tym, jak Vista została wydana, głośne stwierdzenia nie zostały wprowadzone - producenci stworzyli nowe wydajne sterowniki (ICD), które przywracają wbudowaną funkcję. Otwórz wysłane biuletyny z informacjami, które wciąż są najlepszą aplikacją. Niemniej jednak szkoda została już wyrządzona, a zaufanie publiczne dla OpenGL wstrząsnęło. W rzeczywistości OpenGL ma większą moc niż DirectX, obsługuje więcej platform i ma ogromne znaczenie dla przyszłych gier. Historia i perspektywy bibliotek OpenGL i DirectX sugerują, że pierwsza z nich jest jeszcze bardziej pozytywna:
  • Zapewnia możliwość korzystania z funkcji graficznych dla systemów operacyjnych, podczas gdy DirectX udostępnia tylko natychmiastowe elementy z nich w najnowszych wersjach systemu Windows » Technologia tesselacji opracowana przez Microsoft dla DirectX 11 była rozszerzeniem OpenGL przez trzy lata. Dzięki ciężkiej pracy, DirectX 10 i 11 działają teraz tak szybko, jak OpenGL i obsługują niemal tyle samo funkcji. Istnieje jednak jeden duży problem: nie działają one w systemie Windows XP, który jest nadal używany przez wiele osób.
  • Wieloplatformowy. Wielu użytkowników Lugaru pracuje nad tymMac, Linux i Windows XP i nie można odtwarzać za pośrednictwem DirectX. Jedynym sposobem na dostarczenie najnowszej grafiki dla graczy Windows XP jest 32-bitowa biblioteka OpenGL.
  • Lepiej dla przyszłych gier. Jest to otwarty otwarty non-profit, który umożliwia użytkownikom na dowolnej platformie otrzymywanie wysokiej jakości grafiki dostarczanej przez ich sprzęt. Jego rozwój załamuje się dziś jako monopolistyczny gigant korporacyjny, próbujący zdominować przemysł. Dlatego Direct3D jest jedynym interfejsem graficznym do gier obsługiwanym przez system Windows.
  • Ustawienia C ++ i Visual Studio

    Biblioteka OpenGL for c ma darmową wersję. Eksperci zalecają kompilację programów napisanych na ANSI C z OpenGL i GLUT przy użyciu Dev-C ++. Bloodshed Dev-C ++ to darmowy kompilator C ++ i środowisko programistyczne dla systemów operacyjnych Windows. Podobnie jak wielu z tych samych środków technicznych mogą być wykorzystane do opracowania ANSI C. instalacji pliki nagłówkowe i biblioteki GLUT, jest on używany do pisania programów. Aby zrealizować ten projekt, możesz użyć 32-bitowego lub 64-bitowego "Windsor". Przed podłączeniem do dev c biblioteki OpenGL, trzeba nagłówki GLEW, który można znaleźć na stronie sourceforge Extension Wrangler i wersję freeglut Visual Studio:
  • kliknij link wewnątrz opakowania freeglut 300 MSVC.
  • Wprowadź nazwę pliku do pobrania.
  • Pobierz, w folderze z freeglut.
  • Wyodrębnij i zmień nazwę freegluta.
  • Ogólny katalog instalacyjny: C: DEV.
  • katalogu, który zawiera projekty: C DEV visual studio C ++.
  • Katalog, w którym sąbiblioteki: C: DEV Lib dla Visual Studio.
  • Otwórz i utwórz pusty projekt & gt; Szablony & gt; Visual C ++ & gt; Pusty projekt.
  • Następnie napisz "Imię": Shapes2D.
  • Lokalizacja: C: dev visual-studio-c ++.
  • Utwórz nowe rozwiązanie biblioteki OpenGL dla Visual Studio. Nazwa roztworu: BadprogTutorial OK.
  • Projekt Shapes2D został stworzony w BadProgTutorial.
  • Dodaj main.cpp & gt; Kliknij prawym przyciskiem myszy "Projekt" & gt; Dodaj & gt; Nowa pozycja & gt; Visual C ++ & gt; Plik C ++. Napisz nazwę: main.cpp i dodaj.
  • Skonfiguruj konfiguracje biblioteki glut GL i OpenGL.
  • Kliknij myszą Shapes2D & gt; "Właściwości". W lewym górnym rogu rozwijanego menu znajdź "Konfiguracja", aby wybrać wszystkie konfiguracje (zamiast debugowania).
  • Kliknij "Właściwości konfiguracji" & gt; C /C ++ & gt; Ogólne & gt; «Dodatkowe katalogi inwestycji». Po prawej stronie jest rozwijane menu, kliknij "Zmień".
  • Pojawiło się nowe okno: "Dodatkowe katalogi".
  • Kliknij ikonę Nowa linia & gt; Przycisk Przeglądaj i wybierz dwa z następujących folderów: C: DEV Lib Glew-1120. C: DEV Lib freeglut-300.
  • Kliknij OK. Zastosuj użycie biblioteki OpenGL, w tym bibliotek, folderów bibliotecznych.
  • Kliknij prawym przyciskiem myszy Shapes2D & gt; Parametry & gt; Właściwości konfiguracji & gt; Złącze & gt; Ogólne & gt; "Dodatkowe katalogi bibliotek".
  • Po prawej stronie znajduje się rozwijane menu. Kliknij Edytuj. Pojawiło się nowe okno: "Dodatkowe biblioteki".
  • Kliknij ikonę Nowa linia & gt; kliknij przycisk "recenzja" & gt; wybierz dwa następujące foldery dla wersji 64-bitowej: C: DEV Lib Glew-1120 Lib Release x64 i C: DEV Lib freeglut-300 Lib x64.
  • Kliknij przycisk OK & gt; zastosuj pliki biblioteki. Kliknij mysz Shapes2D & gt; Właściwości & gt; Właściwości konfiguracji & gt; Złącze & gt; Wpisz ».
  • Po prawej stronie jest rozwijane menu, kliknij "Edytuj".
  • Pojawiło się nowe okno: "Dodatkowe zależności". Kliknij biały obszar i napisz: freeglut.lib.
  • Naciśnij klawisz Enter, aby przejść do następnej linii: glew32.lib.
  • Kliknij "Zastosuj" i "OK."
  • Teraz Visual Studio IDE jest gotowy do pracy z OpenGL.

    Pobierz Dev-C ++

    Te instrukcje zostały przetestowane na dużej liczbie systemów Windows dostarczanych z plikami wymaganymi dla OpenGL, ale nie dla plików wymaganych do GLUT. Dev-C ++ nie działa z Vistą od Microsoftu. Procedura pobierania:
  • Pobierz Dev-C ++ i zainstaluj.
  • Pobierz Dev-C ++ 5.0 beta 9.2 (499,2) (9,0 MB) z Mingw /GCC 342 (chociaż jest w wersji beta, działa poprawnie).
  • Teraz musisz kliknąć SourceForge, aby przejść do listy witryn do pobrania i wybrać jedną.
  • Zapisz ten plik w miejscu takim jak C: Temp.
  • Po zakończeniu pobierania kliknij przycisk "Otwórz", aby rozpocząć proces instalacji. Lub przejdź do C: Temp i dwukrotnie kliknij na devcpp499.2_setup.exe.
  • Wybierz ustawienie "domyślne". Zaakceptuj proponowane miejsce docelowe do instalacji.
  • Odpowiedz: "Tak", gdy instalacja zapyta, czy chcesz zainstalować Dev-cpp dla wszystkich użytkowników. Na ekranie pojawi się komunikat o zakończeniu instalacji. Kliknij "Zakończ". Pojawi się pierwszy ekran konfiguracji.
  • Wybierz "Angielski" i "Nowy wygląd". Nakliknij Tak na poniższych ekranach. Program uruchamia się automatycznie.
  • Kliknij "Plik", a następnie utwórz projekt.
  • Wybierz nazwę projektu (na przykład "myProject").
  • Kliknij "Projekt C", "Pusty projekt" i OK.
  • W oknie "Utwórz nowy projekt" kliknij "Zapisz".
  • Kliknij "Plik /Nowy /Plik wyjściowy" i kliknij "Tak" w "Dodaj plik do bieżącego projektu".
  • Kliknij "Plik /Zapisz jako" i zapisz plik jako "hello.c" (lub inną nazwę). Ważne jest, aby zweryfikować, że rozszerzenie .c pliku. Każde inne rozszerzenie (na przykład proponowana .cpp) będzie miało problemy z kompilacją.
  • Kliknij "Uruchom /kompiluj i uruchom". Program kompiluje, uruchamia i zapisuje jego dane wyjściowe w oknie DOS.
  • Wypróbuj inny sposób uruchomienia programu (po skompilowaniu go) - uruchom okno DOS poza systemem Dev-Cpp.
  • Przejdź do podkatalogu zawierającego projekt i wpisz hello.exe.
  • Znajdź Dev-C ++, określone w sekcji "Programy" w menu podręcznym.
  • Teraz użytkownik będzie mógł tworzyć, kompilować i uruchamiać programy C (i C ++). Będzie miał pliki, biblioteki dll dla OpenGL (i wszystkich innych standardowych pakietów), ale nie GLUT. GLUT zarządza oknami i innymi elementami interfejsu potrzebnymi do tego i rozdziela je.

    Instalowanie i uruchamianie programu w systemie Windows 7

    Platforma wdrożeniowa dla Visual Studio 2010 - Zintegrowana. Środa (IDE) z systemem Windows 7. Musisz pobrać i zainstalować Microsoft Visual C ++ 2010 Express. Po pomyślnym zainstalowaniu programu Visual C ++ wykonaj następujące krokiDziałanie:
  • Pobierz i rozpakuj plik freeglut-MSVC-281-1.
  • Otwarty ekran powitalny Visual C ++ 2010 z menu "Start".
  • Tworzenie nowy projekt wybraniu Plik - & gt; Nowe - & gt; Projekt.
  • Wybór Win32 panelu sterującego szablony „a następnie” zastosowanie konsoli Win32 „, a następnie płyty.
  • Wywołanie swój projekt, a następnie wybierz folder, w którym chcesz zapisać.
  • zaznaczenie "Create katalogu dla rozwiązania".
  • Kliknij OK, aby otworzyć Kreator powitalny i „Ustawienia aplikacji” na oknie konfiguracyjnym.
  • odznaczyć check „skompilowany nagłówek” pole „pusty projekt” i wybierz „aplikacji konsoli”.
  • Kliknij "OK", aby wyświetlić nowe okno projekt biblioteki OpenGL dla Windows 7.
  • Kliknij myszką na plikach źródłowych oraz wybierz Add - & gt; Nowy element, aby otworzyć okno.
  • Wybierz "kod" Panel Zainstalowane szablony "i" Plik C ++ »(.cpp), a następnie w panelu.
  • Wywołanie plik i kliknąć przycisk „Dodaj”, aby zobaczyć pusty kod kreskowy w oknie projektu o nazwie „Favorite Name”.
  • Zapisz i budowy projekt przechodząc w celu debugowania - & gt; Build Solution. Następnie wykonuje się za pomocą programu debugowanie - & gt; Rozpocząć debugowanie.
  • Jeśli karta graficzna nie obsługuje OpenGL 4.3 aplikacja korzysta może skompilować, ale nie działają, ponieważ system nie może zapewnić renderowania OpenGL 4.3 kontekstowe zestaw poleceń glutInitContextVersion 4.
    Procedura główne. W tym przypadku można zastąpić wersji 4.3 do 3.3, a nawet 2.1. Chociaż prawie wszystkie platformy obsługują OpenGL API, programiści muszątworzenie indywidualnych programów dla różnych platform. Wynika to z faktu, że grafika to tylko część programu, a jeszcze inne składniki różnią się między platformami. Aby rozwiązać ten problem, WebApp został opracowany, aby uruchomić cały program w przeglądarce internetowej, takich jak Chrome i Firefox. Więc jedna aplikacja może działać na wszystkich platformach z kompatybilnym przeglądarce.
    W międzyczasie, po stronie klienta jest przekazywany „w locie” z serwerami, więc śledzić program instalacyjny jest wymagane. Specjalny API WebGL nazywany również została stworzona dla internetu i opiera się na ES, podzbiór OpenGL, opracowany specjalnie z myślą o urządzeniach mobilnych. Aby osiągnąć podobny cel dla VR, nowe API, zwany WebVR, został zaprojektowany, aby łatwo wnieść doświadczenie do przeglądarek VR, niezależnie od platformy.

    Powiązane publikacje