Grafična knjižnica OpenGL

Knjižnica odprte grafike je standardna grafična aplikacija za 2D in 3D vizualizacijo, razvita leta 1992. Opengl je na voljo v dveh različicah. Prvi je Microsoft OpenGL, ki je pogosto vključen v Winds za namestitev grafične kartice. Drugi - Cosmo OpenGL - je zasnovan za sisteme, ki nimajo pospešene grafične kartice. Knjižnica OpenGL je glavni pogoj programa.

Pregled uporabnika OpenGL

Vsakemu podjetju, ki razvija grafično aplikacijo, naj bi OpenGL zapisalo grafični del za vsako platformo operacijskega sistema. Iz njih lahko ustvarite enake učinke na različnih operacijskih sistemih s katerim koli grafičnim vmesnikom, ki podpira program. OpenGL nastavi nabor "ukazov" ali neposredno izvršljivih funkcij, od katerih vsak usmerja risanje ali povzroča posebne učinke. Njihov seznam lahko ustvarite za ponavljajoče se učinke.


OpenGL ni odvisen od značilnosti "vetrov" vsakega operacijskega sistema, ampak zagotavlja posebne rutine za operacijski sistem. Na voljo je ogromen seznam vgrajenih funkcij, ki jih zahteva API. Ti vključujejo:
  • skrito odstranjevanje površine;
  • alfa-mešanje (transparentnost);
  • anti-aliasing;
  • teksturirano kartiranje;
  • operacije s slikovnimi pikami;
  • pregled in modeliranje transformacij;
  • atmosferski učinki (megla in dim).
  • Silicon Graphics - razvijalci naprednih grafičnih delovnih postaj - so začeli razvijati OpenGL. DEC, Intel, IBM, Microsoft in Sun Microsystems so vstopili v industrijoKomisija za pregled arhitekture. Razvijanje aplikacij z uporabo API-ja OpenGL ne povzroča nobenih stroškov razen usposabljanja. Microsoft ponuja brezplačen prenos svojih knjižnic za svoje sisteme.


    Komplet modulov za Windows

    Aplikacija je na voljo v mnogih sistemih Win32 in Unix. In f90gl je implementacija javne domene uradnih komunikacij Fortran 90 OpenGL, ki je zasnovana kot baza modulov in knjižnic, določa potrebne vmesnike za funkcionalnost programa. F90gl je razvil William F. Mitchell z Geertbergovega tehnološkega inštituta v ZDA. Do nedavnega je bilo mogoče OpenGL LF9x ustvariti le v obliki statično povezanih programov, ki so usmerjeni v Visual C. Trenutno je na voljo veliko bolj nežen način, zahvaljujoč prizadevanjem za odložitev, ki ga izvaja Lawson B. Wakefield iz Velike Britanije. Ta izvedba je omogočila dostopnost OpenGL vmesnika pod WiSK in Winteracter ter se izvajala na prostovoljni, nekomercialni osnovi. Nekatere DLL-je OpenGL, ki so nameščene v imeniku Windows SYSTEM32, se morajo povezati s knjižnico OpenGL. Te vključujejo naslednje:
  • opengl32.dll;
  • glu32.dll;
  • glut32.dll.
  • Prva dva od teh knjižnic OpenGL (da ju preučita pred namestitvijo) sta standardni del Windows različnih modifikacij in Me. Knjižnice in moduli f90gl morajo biti nameščeni v imeniku 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.
  • Zbiranje in združevanje programov f90gl zahteva, da se imenik LIB LF95 sklicuje na pot modula prevajalnika in imena knjižnic f90gl za vezavo.

    Knjižnice slik

    DevIL uporabljajo razvijalci. Podpira številne slikovne formate za branje in pisanje, več prevajalnikov in OS ("Windsor", "Linux", "Mas"). Knjižnica ima naslednjo sintakso:
  • FreeImage je večplatformska OpenGL knjižnica za prenos slik z zelo široko podporo (vključno z nekaterimi HDR-formati, kot je OpenEXR).
  • OpenImageIO (OIIO) je knjižnica za branje in pisanje slik, pa tudi za številne povezane razrede, pripomočke in aplikacije. Široko se uporablja v studiih animacije in VFX po vsem svetu, kot tudi v več komercialnih izdelkih.
  • SOIL je program za prenos slik, ki je izredno majhen. C ++, sposoben naložiti DDS (DDS9 in DDS10) teksture pod licenco MIT.
  • Glraw zagotavlja orodje za ukazno vrstico, ki pretvarja slikovne datoteke v neobdelane, ki vsebujejo neposredne tekstovne podatke.
  • Uvoz sredstev 3D sredstev

    Grafična knjižnica OpenGL za uvoz sredstev (Assimp) je predstavljena kot odprta knjižnica za uvoz različnih priljubljenih tridimenzionalnih modelov. Najnovejša različica izvaža 3d datoteke in je primerna kot pretvornik za splošne namene. Obstaja več vrst takih knjižnic:
  • Lahko bere različne oblike datotek 3D - COLLADA, lastne datoteke Blender3D, Wavefront Obj (.obj) in še veliko več. Knjižnica lib3ds je namenjena branju3ds datoteke.
  • ​​
  • Open3mod je pregledovalnik modelov, ki temelji na sistemu Windows. Prenese vse oblike datotek, ki jih podpira Assimp, in je idealen za hitro potrditev 3D sredstev.
  • AssetKit (v teku) - knjižnica OpenGL je uvoznik /izvoznik 3D virov, pripomoček, ki temelji na specifikacijah COLLADA /glTF. Glavni poudarek tukaj je COLLADA glTF. Popolnoma podpira formate 141.411.5+, kot tudi nekatere druge kot knjižnico za nalaganje modelov v OpenGL.
  • Visoko zmogljiva 2D /3D grafika

    OpenGL Android Graphic Library vključuje podporo za visoko zmogljivo 2D in 3D grafiko z odprto knjižnico, vključno z OpenGL ES API. Android jo podpira prek API-ja za infrastrukturni vmesnik in NDK (Native Development Kit). V platformi imenovanega operacijskega sistema obstajata dva temeljna razreda, ki omogočata izdelavo in manipulacijo grafike z API-ji: GLSurfaceView in GLSurfaceView.Renderer. Če želite uporabljati aplikacijo OpenGL v aplikaciji Android, morate razumeti, kako izvajati te razrede v akciji. Da, GLSurfaceView lahko nariše in manipulira objekte z uporabo API-jev OpenGL, kot je funkcija SurfaceView. Ta vmesnik določa metode, potrebne za risanje grafike GLSurfaceView. Uporabnik mora zagotoviti implementacijo tega vmesnika kot ločen razred in priložiti GLSurfaceView.setRenderer na primerek GLSurfaceView. Ko ustvarite pogled vsebnika za OpenGL ES, GLSurfaceView in GLSurfaceView.Renderer, lahko zaženete povezavo knjižnice OpenGL in uporabite API.

    Niz mobilnih grafičnih naprav

    Izvedbe aplikacij se razlikujejo za naprave AndroidPodprti API-ji vključujejo stiskanje teksture in drugi nabor funkcij. Android Extension Pack (AEP) podpira standardno bazo podatkov razširitev. Pakiranje jih skupaj spodbuja dosleden nabor funkcionalnosti na vseh napravah, kar omogoča razvijalcem, da v celoti izkoristijo najnovejši paket mobilnih grafičnih modelov. AEP prav tako izboljšuje podporo za slike, pufre, shader shranjevanje in števce. Za uporabo aplikacije AEP jo podpira različica platforme. Zahteva za AEP je zahtevana tudi takole:

    Preverjanje in izbira različice OpenGL ES

    Na napravah Android je na voljo več različic aplikacije. V telefonu lahko določite najmanjšo različico API-ja, ki jo zahteva aplikacija. Različica API-ja opengl ES 1.0 različica 2.0 različica 3.0 zagotavlja grafične vmesnike visoke zmogljivosti za ustvarjanje 3D iger, vizualizacije in uporabniških vmesnikov. Program OpenGL ES 2.0 je podoben različici 3.0, ki je dodaten pretok API 2.0 z dodatnimi funkcijami.
    Programiranje za API 1.0 /1.1 se bistveno razlikuje od 2.0 in 3.0, zato morajo razvijalci skrbno preučiti nekatere dejavnike, preden se začnejo razvijati s temi API-ji. Da, na splošno 2 in 3 zagotavljata hitrejšo grafično zmogljivost kot API ES 1/11. Vendar pa se lahko razlika razlikuje glede na napravo Android, na kateri se izvaja program, zaradi razlik v strojni izvedbi grafičnega transporterja.

    Primerjava z gonilniki DirectX

    Gonilniki grafike Windows DirectX so bolje podprti kot OpenGL,kljub dejstvu, da razvijalci upravljajo hitreje. OpenGL in DirectX knjižnice (zgodovina in možnosti) so povezane z Microsoftom, ki je dejansko nasprotoval OpenGL. Leta 2003 je Microsoft dejal, da ga načrti OpenGL ne zanimajo več. Nato so leta 2005 na predstavitvi SIGGRAPH-a podali izjavo, da bo Windows Vista odstranil podporo. Ta akcija je povzročila kaos v skupnosti OpenGL, po kateri so se mnogi profesionalni programerji preusmerili na DirectX. Ko je bila Vista še izdana, niso bile podane glasne izjave - proizvajalci so ustvarili nove produktivne gonilnike (ICD), ki obnovijo vgrajeno funkcijo. Odprto je poslal novice z informacijami, ki so še vedno najboljša aplikacija. Kljub temu je bila škoda že povzročena, javno zaupanje za OpenGL pa se je pretreslo. Pravzaprav je OpenGL močnejši od DirectXa, podpira več platform in je izrednega pomena za prihodnje igre. Zgodovina in možnosti knjižnic OpenGL in DirectX kažejo, da je prva še bolj pozitivna:
  • Omogoča uporabo grafičnih funkcij za operacijske sisteme, medtem ko DirectX zagotavlja le trenutne elemente iz njih v najnovejših različicah sistema Windows » Tehnologija tessellation, ki jo je Microsoft razvil za DirectX 11, je bila tri leta razširitev OpenGL. Z napornim delom DirectX 10 in 11 zdaj delata tako hitro kot OpenGL in podpirata skoraj toliko funkcij. Vendar pa obstaja ena velika težava: ne delujejo v operacijskem sistemu Windows XP, ki ga še vedno uporablja veliko ljudi.
  • Cross-platform. Veliko uporabnikov Lugaru delaMac, Linux in Windows XP in ne morejo igrati prek DirectX. Edini način za zagotavljanje najnovejše grafike za igralce Windows XP je preko 32-bitne knjižnice.
  • Boljše za prihodnje igre. To je neprofitni odprt standard, ki je zasnovan tako, da uporabnikom na kateri koli platformi omogoča prejemanje visokokakovostne grafike, ki jo zagotavlja njihova strojna oprema. Njen razvoj se danes zlomi kot monopolni korporacijski velikanski napad, ki poskuša prevladati v industriji. Zato je Direct3D edini grafični API, ki ga Windows podpira.
  • Nastavitve C ++ in Visual Studio

    OpenGL za knjižnico c ima brezplačno različico. Strokovnjaki priporočajo zbiranje programov, napisanih na ANSI C iz OpenGL in GLUT z uporabo Dev-C ++. Bloodshed Dev-C ++ je brezplačen C ++ prevajalnik in razvojno okolje za operacijske sisteme Windows. Kot večina iste strojne opreme se lahko uporabi tudi za kompilacijo ANSI C. Z nameščanjem datotek z glavo GLUT in knjižnic se uporablja za pisanje programov. Za izvedbo tega projekta lahko uporabite 32-bitni ali 64-bitni "Windsor". Preden se povežete z knjižnico OpenGL OpenGL, boste potrebovali glave glave, ki jih lahko najdete na spletni strani sourceforge Extension Wrangler in v različici freeglut za Visual Studio:
  • Kliknite povezavo v paketu freeglut 300 MSVC.
  • Vnesite ime datoteke, ki jo želite prenesti.
  • Prenesite ga v mapo z freeglut.
  • Izvlecite in preimenujte freeglut.
  • Splošni namestitveni imenik: C: DEV.
  • Katalog, ki vsebuje projekte: C: DEV visual-studio-c ++.
  • Katalog, v katerem soknjižnice: C: DEV Lib za Visual Studio.
  • Odprite ga in ustvarite prazen projekt & gt; Predloge & gt; Visual C ++ & gt; Prazen projekt.
  • Nato napišite "Ime": Shapes2D.
  • Lokacija: C: dev visual-studio-c ++.
  • Ustvarite novo rešitev knjižnice OpenGL za Visual Studio. Ime rešitve: BadprogTutorial OK.
  • Projekt Shapes2D je bil ustvarjen v programu BadprogTutorial.
  • Dodaj main.cpp & gt; Kliknite z desnim gumbom miške "Project" & gt; Dodaj & gt; Nova postavka & gt; Visual C ++ & gt; C ++ datoteka. Napišite ime: main.cpp in dodaj.
  • Konfigurirajte konfiguracije knjižnice GL in knjižnice GLUT.
  • Kliknite miško Shapes2D & gt; "Lastnosti". V zgornjem levem kotu spustnega menija poiščite »Konfiguracija«, da izberete vse konfiguracije (namesto Debug).
  • Kliknite na "Lastnosti konfiguracije" & gt; C /C ++ & gt; Splošno & gt; «Dodatni imeniki naložb». Na desni je spustni meni, kliknite »Spremeni«.
  • Pojavilo se je novo okno: "Dodatni imeniki".
  • Kliknite ikono Nova vrstica & gt; Gumb Browse in izberite dve od naslednjih map: C: DEV Lib Glew-1120. C: DEV Lib freeglut-300.
  • Kliknite V redu. Uporabite uporabo knjižnice OpenGL, vključno z knjižnicami, knjižničnimi mapami.
  • Z desno tipko miške kliknite Shapes2D & gt; Parametri & gt; Lastnosti konfiguracije & gt; Priključek & gt; Splošno & gt; "Dodatni katalogi knjižnic."
  • Na desni je spustni meni. Kliknite Uredi. Pojavilo se je novo okno: "Dodatne knjižnice".
  • Kliknite ikono Nova vrstica & gt; kliknite gumb "pregled" & gt; izberite naslednje mape za 64-bitno različico: C: DEV Lib Glew-1120 Lib Release x64 in C: DEV Lib svobodni-300 Lib x64.
  • Kliknite gumb V redu & gt; uporabite knjižnične datoteke. Kliknite miško Shapes2D & gt; Lastnosti & gt; Lastnosti konfiguracije & gt; Priključek & gt; Enter ».
  • Na desni je spustni meni, kliknite "Uredi".
  • Pojavilo se je novo okno: "Dodatne odvisnosti". Kliknite na belo območje in napišite: freeglut.lib.
  • Za vstop v naslednjo vrstico pritisnite tipko Enter: glew32.lib.
  • Kliknite »Uporabi« in »V redu«.
  • Zdaj je Visual Studio IDE pripravljen na delo z OpenGL.

    Prenesite Dev-C ++

    Ta navodila so bila preizkušena na številnih sistemih Windows, ki prihajajo z datotekami, potrebnimi za OpenGL, vendar ne za datoteke, potrebne za GLUT. Dev-C ++ ne deluje z operacijskim sistemom Vista iz Microsofta. Postopek prenosa:
  • Prenesite Dev-C ++ in ga namestite.
  • Prenesite Dev-C ++ 5.0 beta 9.2 (499.2) (9.0 MB) iz Mingw /GCC 342 (čeprav je beta, deluje dobro).
  • Sedaj morate klikniti na SourceForge, da odprete seznam mest za prenos in ga izberete.
  • Shrani to datoteko na mesto, kot je C: Temp.
  • Ko je prenos končan, kliknite gumb "Odpri", da začnete postopek namestitve. Ali pa pojdite na C: Temp in dvokliknite devcpp499.2_setup.exe.
  • Izberite "privzeto" nastavitev. Sprejmite predlagano destinacijo za namestitev.
  • Odgovori: "Da", ko naprava vpraša, ali želite namestiti Dev-cpp za vse uporabnike. Na zaslonu se prikaže sporočilo, da je namestitev končana. Kliknite "Dokončaj". Prikaže se prvi konfiguracijski zaslon.
  • Izberite »Angleški« in »Novi pogled«. Atna naslednjih zaslonih kliknite Da. Program se zažene samodejno.
  • Kliknite na "Datoteka", nato ustvarite projekt.
  • Izberite ime projekta (na primer "myProject").
  • Kliknite na "C Project", "Empty Project" in OK.
  • V oknu »Ustvari nov projekt« kliknite »Shrani«.
  • Kliknite "File /New /Output File" in kliknite "Yes" v "Add File to Current Project".
  • Kliknite "File /Save As" in datoteko shranite kot "hello.c" (ali drugo ime). Pomembno je preveriti, ali je končnica datoteke .c. Vsaka druga razširitev (na primer predlagani .cpp) bo imela težave s prevajanjem.
  • Kliknite "Run /Compile and Run". Program zbira, zažene in zapiše svoj izhod v okno DOS.
  • Poskusite z drugim načinom za zagon programa (po prevajanju) - zaženite okno DOS zunaj sistema Dev-Cpp.
  • Pojdite v podimenik, ki vsebuje projekt, in vnesite hello.exe.
  • Poiščite Dev-C ++, ki je določen v razdelku "Programi" pojavnega menija.
  • Zdaj bo uporabnik lahko ustvarjal, prevajal in izvajal programe C (in C ++). Imela bo datoteke, knjižnice dll za OpenGL (in vse druge standardne pakete), ne pa tudi GLUT. GLUT upravlja okna in druge komponente vmesnika, ki jih potrebuje, in jih loči.

    Namestitev in zagon programa v operacijskem sistemu Windows 7

    Izvedbena platforma za Visual Studio 2010 - integrirana. Sreda (IDE) z operacijskim sistemom Windows 7. Prenesite in namestite Microsoft Visual C ++ 2010 Express. Ko je Visual C ++ uspešno nameščen, sledite tem korakomDejanja:
  • Prenesite in razpakirajte datoteko freeglut-MSVC-281-1.
  • Odprite pozdravni zaslon Visual C ++ 2010 iz menija Start.
  • Ustvarite nov projekt z izbiro Datoteka - & gt; Novo - & gt; Projekt
  • Izberite Win32 na plošči Installed Templates in nato aplikacijo Win32 Console z naslednjo ploščo.
  • Poimenujte projekt in izberite mapo, ki jo želite shraniti.
  • Počistite polje "Ustvari imenik za reševanje."
  • Kliknite V redu, da odprete čarovnik za dobrodošlico in pogovorno okno "Nastavitve programa" za pogovorno okno nastavitev.
  • Počistite polje "Precompiled headline", izberite potrditveno polje "Empty project" in izberite "Console application".
  • Kliknite Dokončaj, da si ogledate novo okno projekta OpenGL za Windows 7.
  • Kliknite na Izvorne datoteke in izberite Dodaj ->. Nov element za odpiranje pogovornega okna.
  • Na plošči Nameščene predloge izberite "Code" in "C ++ File" (.cpp) z naslednjo ploščo.
  • Poimenujte datoteko in kliknite "Dodaj", da vidite prazno kodno vrstico v oknu projekta z imenom "Priljubljeno ime".
  • Shranite in ustvarite projekt tako, da odprete možnost Odpravljanje napak - & gt; Build Solution Nato zaženite program s programom Debug - & gt; Začni odpravljanje napak
  • Če grafična kartica ne podpira OpenGL 4.3, se lahko programi, ki jih uporabljajo, prevedejo, vendar ne izvršijo, ker sistem ne more zagotoviti konteksta upodabljanja OpenGL 4.3, tako da glavnemu postopku poda ukaz glutInitContextVersion (4. 3). V tem primeru lahko različico 4.3 zamenjate s 3.3 ali celo 2.1. Čeprav skoraj vse platforme podpirajo OpenGL API, ga razvijalci potrebujejoustvarite programe po meri za različne platforme. To je posledica dejstva, da so grafike le del programa, medtem ko se druge komponente med platformami še vedno razlikujejo. Da bi to odpravili, je bil WebApp zasnovan za izvajanje celotnih aplikacij v spletnem brskalniku, kot sta Chrome in Firefox. Tako lahko en program deluje na vseh platformah z združljivim brskalnikom.
    Medtem, na strani odjemalca, se vse prenese "na let" s strežnikov, zato nadaljnja namestitev programa ni potrebna. Izdelan je bil tudi poseben API, imenovan WebGL, za internet in na osnovi ES, podmnožica OpenGL, zasnovane posebej za mobilne naprave. Da bi dosegli isti cilj za VR, je bil drug API, imenovan WebVR, zasnovan tako, da je brskalnike enostavno prinesel izkušnjo VR, ne glede na platformo.

    Sorodne publikacije