OpenGL grafička knjižnica

Knjižnica otvorene grafike je standardna grafička aplikacija za 2D i 3D vizualizaciju, razvijena 1992. godine. Opengl dolazi u dvije varijante. Prvi od njih je Microsoft OpenGL, koji je često uključen u Winds za instalaciju grafičke kartice. Drugi - Cosmo OpenGL - dizajniran je za sustave koji nemaju ubrzanu grafičku karticu. OpenGL knjižnica je glavni uvjet programa.

Pregled korisnika OpenGL-a

Za OpenGL, svaka tvrtka koja razvija grafičku aplikaciju trebala je prepisati grafički dio za svaku platformu operativnog sustava. Od njih možete stvoriti iste učinke na različitim operacijskim sustavima koristeći bilo koji grafički prilagodnik koji podržava program. OpenGL postavlja skup "naredbi" ili izravno izvršnih funkcija, od kojih svaka usmjerava radnju crtanja ili uzrokuje specijalne efekte. Njihov popis može se stvoriti za ponavljajuće učinke.


OpenGL ne ovisi o karakteristikama "vjetrova" svakog operativnog sustava, već daje posebne rutine za OS. Dolazi s velikim popisom ugrađenih značajki koje se traže putem API-ja. To uključuje:
  • skriveno uklanjanje površine;
  • alfa-miješanje (transparentnost);
  • anti-aliasing;
  • teksturirano mapiranje;
  • operacije s pikselima;
  • pregled i modeliranje transformacija;
  • atmosferski učinci (magla i dim).
  • Silicon Graphics - programeri naprednih grafičkih radnih stanica - pokrenuli su razvoj OpenGL-a. DEC, Intel, IBM, Microsoft i Sun Microsystems ušli su u industrijuarhitektura inspekcije komisija. Razvijanje aplikacija pomoću OpenGL API, ne donosi ništa osim poduke troškove. Microsoft nudi besplatne preuzimanja svojih knjižnica za svoje sustave.


    Skup modula za Windows

    je dostupna na mnogim sustavima Win32 i Unix. F90gl - implementacija javnoj domeni službenih odnosa Fortran 90 OpenGL, uokviren u bazi podataka modula i knjižnicama, odrediti potrebne sučelja za aplikacije funkcionalnosti. Sama F90gl je dizajnirao William F. Mitchell Heyterberha Institute of Technology u SAD-u. Sve do nedavno, OpenGL LF9x mogao stvoriti kao statički povezane programe usmjerene na Visual C trenutno dostupne su mnogo više prijateljski način prenijeti kroz napore, provodi Lawson B. Wakefield u Velikoj Britaniji. Ova implementacija OpenGL sučelje dostupan pod WiSK i Winteracter i učinjeno na dobrovoljnoj, neprofitnoj osnovi. Za povezivanje OpenGL knjižnice zahtijevaju određenu DLL OpenGL, instalirana u direktorij Windows System32. To uključuje sljedeće:
  • opengl32.dll;
  • glu32.dll;
  • glut32.dll.
  • Prva dva od tih biblioteka OpenGL (ih proučiti prije nego potrebna instalacija), standardni dio Windows i raznim modifikacijama mene. F90gl knjižnice i moduli trebaju biti instaliran u direktorij 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.Kompilacija i povezivanje programa f90gl zahtijeva da LF95 LIB direktorij bude naveden na putu modula prevodioca i imenima knjižnica f90gl za vezanje.

    Knjižnice slika

    Razvojni programeri koriste program DevIL. Podržava mnoge formate slika za čitanje i pisanje, višestruke kompilatore i OS ("Windsor", "Linux", "Mas"). Knjižnica ima sljedeću sintaksu:
  • FreeImage je cross-platforma OpenGL knjižnica za preuzimanje slika s vrlo širokim formatom podrške (uključujući i neke HDR-formate, kao što je OpenEXR).
  • OpenImageIO (OIIO) je knjižnica za čitanje i pisanje slika, kao i mnoge srodne klase, uslužne programe i aplikacije. To je naširoko koristi u animaciji i VFX studija diljem svijeta, kao i ugrađen u nekoliko komercijalnih proizvoda.
  • SOIL je program za preuzimanje slika s više platformi koji je izuzetno mali. C ++, sposoban učitavati DDS (DDS9 i DDS10) teksture pod MIT licencom.
  • Glraw nudi alat naredbenog retka koji pretvara slikovne datoteke u neobrađene, izravno s čistim teksturnim podacima.
  • Uvoz 3D imovine imovine

    OpenGL grafička knjižnica za uvoz imovine (Assimp) predstavljena je kao knjižnica otvorenog koda za uvoz raznih popularnih trodimenzionalnih modela. Najnovija verzija izvozi 3d datoteke i prikladna je kao pretvarač opće namjene. Postoji nekoliko vrsta takvih knjižnica:
  • Može čitati različite formate datoteka 3D - COLLADA, vlastite Blender3D datoteke, Wavefront Obj (.obj) i još mnogo toga. Knjižnica lib3ds namijenjena je čitanju3ds datoteke.
  • ​​
  • Open3mod je Windows preglednik modela. Ona preuzima sve formate datoteka koje podržava Assimp i idealno je za brzu provjeru 3D imovine.
  • AssetKit (u tijeku) - OpenGL knjižnica je uvoznik /izvoznik 3D resursa, uslužni program temeljen na specifikacijama COLLADA /glTF. Ovdje je glavni fokus COLLADA glTF. Potpuno će podržavati formate 141.411.5+, kao i neke druge kao knjižnicu za preuzimanje modela u OpenGL-u.
  • 2D /3D grafika visokih performansi

    OpenGL Android Graphic Library sadrži podršku za 2D i 3D grafiku visokih performansi s otvorenom knjižnicom, uključujući OpenGL ES API. Android ga podržava i putem API-ja Infrastructure Interface i NDK. U platformi imenovanog operativnog sustava postoje dvije temeljne klase koje vam omogućuju stvaranje i manipuliranje grafikom pomoću API-ja: GLSurfaceView i GLSurfaceView.Renderer. Ako postoji svrha OpenGL-a u Android aplikaciji, morate razumjeti kako implementirati te klase u akciji. Da, GLSurfaceView može crtati i manipulirati objektima pomoću OpenGL API poziva poput funkcije SurfaceView. Ovo sučelje definira metode potrebne za crtanje grafike GLSurfaceView. I korisnik mora osigurati implementaciju ovog sučelja kao zasebnu klasu i priložiti GLSurfaceView.setRenderer na primjer GLSurfaceView. Nakon što stvorite pogled spremnika za OpenGL ES, GLSurfaceView i GLSurfaceView.Renderer, možete pokrenuti OpenGL knjižničnu vezu i koristiti API.

    Skup mobilnih grafičkih uređaja

    Implementacije aplikacija razlikuju se za Android uređajePodržani API-ji uključuju kompresiju teksture i drugi skup funkcija. Android Extension Pack (AEP) podržava standardnu ​​bazu podataka proširenja. Pakiranje ih zajedno promovira dosljedan skup funkcionalnosti na svim uređajima, omogućujući programerima da u potpunosti iskoriste najnoviji paket mobilnih grafičkih dizajna. AEP također poboljšava podršku za slike, međuspremnike, shader pohranu i brojače. Da bi aplikacija mogla koristiti AEP, verzija platforme bi je trebala podržavati. Zahtjev za AEP je također potreban kako slijedi:

    Provjera i odabir OpenGL ES verzije

    Nekoliko verzija aplikacije je dostupno na Android uređajima. Na telefonu možete odrediti minimalnu verziju API-ja koju aplikacija zahtijeva. Verzija API-ja opengl ES 1.0 verzija 2.0 verzija 3.0 pruža grafička sučelja visokih performansi za stvaranje 3D igara, vizualizacije i korisničkih sučelja. Program OpenGL ES 2.0 sličan je verziji 3.0, koja je dodatak API 2.0 s dodatnim značajkama.
    Programiranje za API 1.0 /1.1 značajno se razlikuje od 2.0 i 3.0 i stoga bi programeri trebali pažljivo ispitati neke od čimbenika prije nego što počnu s tim API-jem. Da, općenito, 2 i 3 pružaju bržu grafičku izvedbu od API ES 1/11. Međutim, razlika u njoj može se razlikovati ovisno o Android uređaju na kojem se program izvodi, zbog razlika u hardverskoj implementaciji grafičkog transportera.

    Usporedba s upravljačkim programima za DirectX

    Windows DirectX grafički upravljački programi bolje su podržani od OpenGL,unatoč činjenici da programeri brže upravljaju. OpenGL i DirectX knjižnice (povijest i izgledi) odnose se na Microsoft, koji se zapravo protivio OpenGL-u. Microsoft je 2003. godine izjavio da više nije zainteresiran za OpenGL planove. Tada su 2005. godine na prezentaciji SIGGRAPH-a dali izjavu da će Windows Vista ukloniti svoju podršku. Ova kampanja izazvala je kaos u OpenGL zajednici, nakon čega su se mnogi profesionalni programeri prebacili na DirectX. Nakon što je Vista još izdana, glasne izjave nisu napravljene - proizvođači su stvorili nove produktivne upravljačke programe (ICD) koji vraćaju ugrađenu funkciju. Otvoreno je slalo biltene s informacijama koje su još uvijek najbolja aplikacija. Ipak, šteta je već nanesena, a povjerenje javnosti za OpenGL je uzdrmano. U stvari, OpenGL je moćniji od DirectX-a, podržava više platformi i od najveće je važnosti za buduće igre. Povijest i izgledi OpenGL i DirectX knjižnica ukazuju na to da je prva još pozitivnija:
  • Pruža mogućnost korištenja grafičkih funkcija za operativne sustave, dok DirectX pruža samo trenutne stavke iz njih u najnovijim verzijama sustava Windows ”. Tehnologija tessellacije koju je Microsoft razvio za DirectX 11 bio je OpenGL proširenje za tri godine. Kroz težak rad, DirectX 10 i 11 sada rade jednako brzo kao OpenGL i podržavaju gotovo isto toliko funkcija. Međutim, postoji jedan veliki problem: oni ne rade u sustavu Windows XP, koji još uvijek koriste mnogi ljudi.
  • Cross-platform. Mnogi korisnici Lugaru rade na tomeMac, Linux i Windows XP i ne mogu igrati putem DirectX-a. Jedini način za isporuku najnovije grafike za igrače sa sustavom Windows XP je 32bits knjižnice opengl.
  • Bolje za buduće igre. Ovo je neprofitna otvorena norma koja je dizajnirana tako da korisnicima na bilo kojoj platformi omogućuje primanje grafike visoke kvalitete koju pruža njihov hardver. Njegov se razvoj danas ruši kao monopolistički korporacijski divovski napad, pokušavajući dominirati industrijom. Zato je Direct3D jedini grafički API koji podržava Windows.
  • Postavke C ++ i Visual Studio

    OpenGL za c knjižnicu ima besplatnu verziju. Stručnjaci preporučuju kompilaciju programa napisanih na ANSI C iz OpenGL-a i GLUT-a koristeći Dev-C ++. Bloodshed Dev-C + + je besplatan C ++ prevodilac i razvojno okruženje za Windows operativne sustave. Kao i većina istog hardvera, može se koristiti za kompilaciju ANSI C. Instaliranjem GLUT datoteka zaglavlja i knjižnica, koristi se za pisanje programa. Za provedbu ovog projekta možete koristiti 32-bitni ili 64-bitni "Windsor". Prije spajanja na OpenGL knjižnicu, trebat će vam glave zaglavlja koja se mogu naći na sourceforge Extension Wrangler web stranici i freeglut verziji za Visual Studio:
  • Kliknite vezu unutar freeglut 300 MSVC paketa.
  • Unesite naziv datoteke za preuzimanje.
  • Preuzmite ga u mapu s freeglut.
  • Izvadite i preimenujte slobodnu mrlju.
  • Opći imenik instalacije: C: DEV.
  • Katalog koji sadrži projekte: C: DEV visual-studio-c ++.
  • Katalog u kojem se nalazeknjižnice: C: DEV Lib za Visual Studio.
  • Otvorite ga i stvorite prazan projekt & gt; Predlošci & gt; Visual C ++ & gt; Prazan projekt.
  • Zatim napišite "Ime": Shapes2D.
  • Lokacija: C: dev visual-studio-c ++.
  • Kreirajte novo OpenGL knjižnično rješenje za Visual Studio. Naziv rješenja: BadprogTutorial U redu.
  • Projekt Shapes2D izrađen je u BadprogTutorialu.
  • Dodati main.cpp & gt; Kliknite desnom tipkom miša "Projekt" & gt; Dodaj & gt; Nova stavka & gt; Visual C ++ & gt; C ++ datoteka. Napišite ime: main.cpp i dodajte.
  • Konfigurirajte GL i OpenGL konfiguracije knjižnice gluta.
  • Kliknite mišem Shapes2D & gt; "Properties". U gornjem lijevom kutu padajućeg izbornika pronađite "Konfiguracija" da biste odabrali sve konfiguracije (umjesto Debug).
  • Kliknite na "Svojstva konfiguracije" & gt; C /C ++ & gt; Općenito & gt; «Dodatni imenici ulaganja». Desno je padajući izbornik, kliknite "Promijeni".
  • Pojavio se novi prozor: "Dodatni imenici".
  • Kliknite ikonu Nova linija & gt; Pregledaj gumb i odaberite dvije od sljedećih mapa: C: DEV Lib Glew-1120. C: DEV Lib freeglut-300.
  • Kliknite U redu. Primijeniti korištenje OpenGL knjižnice, uključujući knjižnice, knjižnične mape.
  • Desnom tipkom miša kliknite Oblici2D & gt; Parametri & gt; Svojstva konfiguracije & gt; Priključak & gt; Općenito & gt; "Dodatni katalozi knjižnica."
  • Desno je padajući izbornik. Kliknite Uredi. Pojavio se novi prozor: "Dodatne knjižnice".
  • Kliknite ikonu Nova linija & gt; kliknite gumb "pregled" & gt; odaberite sljedeće mape za 64-bitnu verziju: C: DEV Lib Glew-1120 Lib Izdanje x64 i C: DEV Lib slobodni-300 Lib x64.
  • Kliknite gumb U redu & gt; primijeniti knjižnične datoteke. Kliknite mišem Shapes2D & gt; Svojstva & gt; Svojstva konfiguracije & gt; Priključak & gt; Enter ».
  • S desne strane je padajući izbornik, kliknite "Uredi".
  • Pojavio se novi prozor: "Dodatne ovisnosti". Kliknite na bijelo područje i napišite: freeglut.lib.
  • Pritisnite tipku Enter da biste prešli na sljedeći redak: glew32.lib.
  • Kliknite "Primijeni" i "U redu". Sada je Visual Studio IDE spreman za rad s OpenGL-om.

    Preuzmite Dev-C ++

    Ove su upute testirane na velikom broju Windows sustava koji dolaze s datotekama potrebnim za OpenGL, ali ne i za datoteke potrebne za GLUT. Dev-C ++ ne radi sa sustavom Vista od Microsofta. Postupak preuzimanja:
  • Preuzmite Dev-C ++ i instalirajte ga.
  • Nabavite Dev-C ++ 5.0 beta 9.2 (499.2) (9.0 MB) iz Mingw /GCC 342 (iako je beta, dobro radi).
  • Sada trebate kliknuti na SourceForge da biste otišli na popis mjesta za preuzimanje i odabrali jedan.
  • Spremite ovu datoteku na mjesto poput C: Temp.
  • Kada je preuzimanje dovršeno, kliknite gumb "Open" (Otvori) da biste započeli postupak instalacije. Ili idite na C: Temp i dvaput kliknite na devcpp499.2_setup.exe.
  • Odaberite "zadano" podešenje. Prihvatite predloženo odredište za instalaciju.
  • Odgovor: "Da" kada instalacija pita želite li instalirati Dev-cpp za sve korisnike. Na zaslonu se pojavljuje poruka da je instalacija dovršena. Kliknite "Završi". Pojavljuje se prvi zaslon za konfiguraciju.
  • Odaberite "Engleski" i "Novi izgled". nakliknite Da na sljedećim zaslonima. Program se automatski pokreće.
  • Kliknite na "Datoteka", a zatim kreirajte projekt.
  • Odaberite naziv projekta (na primjer, "myProject").
  • Kliknite na "C Project", "Empty Project" i OK.
  • U prozoru "Kreiraj novi projekt", kliknite "Spremi".
  • Kliknite "Datoteka /Nova /Izlazna datoteka" i kliknite "Da" u "Dodaj datoteku u trenutni projekt".
  • Kliknite "File /Save As" i spremite datoteku kao "hello.c" (ili drugo ime). Važno je provjeriti da li .c datotečni nastavak. Bilo koje drugo proširenje (na primjer, predloženi. Cpp) imat će problema s kompilacijom.
  • Kliknite "Run /Compile and Run". Program kompilira, pokreće i zapisuje izlaz u DOS prozor.
  • Pokušajte na drugi način pokrenuti program (nakon kompajliranja) - pokrenite DOS prozor izvan Dev-Cpp sustava.
  • Idite u poddirektorij koji sadrži projekt i upišite hello.exe.
  • Pronađite Dev-C ++, navedenu u odjeljku "Programi" skočnog izbornika. Sada će korisnik moći kreirati, kompajlirati i izvoditi C (i C ++) programe. Imat će datoteke, dll knjižnice za OpenGL (i sve ostale standardne pakete), ali ne i GLUT. GLUT upravlja prozorima i drugim komponentama sučelja potrebnim za to i postavlja ih odvojeno.

    Instaliranje i pokretanje programa u sustavu Windows 7

    Implementacijska platforma za Visual Studio 2010 - integrirana. Srijeda (IDE) sa sustavom Windows 7. Potrebno je preuzeti i instalirati Microsoft Visual C ++ 2010 Express. Nakon što je Visual C ++ uspješno instaliran, slijedite ove korakeRadnje:
  • Preuzmite i raspakirajte datoteku freeglut-MSVC-281-1.
  • Otvorite početni zaslon Visual C ++ 2010 iz izbornika Start.
  • Stvorite novi projekt odabirom Datoteka - & gt; Novo - & gt; Projekt.
  • Odaberite Win32 na ploči Installed Templates (Instalirani predlošci), a zatim aplikaciju Win32 Console sa sljedećom pločom.
  • Imenujte projekt i odaberite mapu koju želite spremiti.
  • Isključite potvrdni okvir "Stvaranje imenika za rješavanje".
  • Kliknite U redu da biste otvorili čarobnjak dobrodošlice i dijaloški okvir "Postavke programa" za dijaloški okvir postavki.
  • Isključite okvir "Precompiled headline", potvrdite okvir "Empty project" i odaberite "Console application".
  • Kliknite Završi da biste vidjeli novi prozor OpenGL projekta za Windows 7.
  • Kliknite na Izvorne datoteke i odaberite Dodaj ->. Nova stavka za otvaranje dijaloškog okvira.
  • Odaberite "Code" u ploči Installed Templates "i" C ++ File "(.cpp) pomoću sljedeće ploče.
  • Imenujte datoteku i kliknite "Dodaj" da biste vidjeli praznu traku koda u prozoru projekta s nazivom "Omiljeno ime".
  • Spremite i kreirajte projekt tako da odete na Debug - & gt; Build Solution Zatim pokrenite program pomoću značajke Debug - & gt; Pokrenite otklanjanje pogrešaka
  • Ako grafička kartica ne podržava OpenGL 4.3, programi koji ga koriste mogu se prevesti, ali ne i izvršiti, jer sustav ne može osigurati OpenGL 4.3 kontekst renderiranja navođenjem glutInitContextVersion (4. 3) naredbe glavnoj proceduri. U tom slučaju, možete zamijeniti inačicu 4.3 s 3.3 ili čak 2.1. Iako gotovo sve platforme podržavaju OpenGL API, programeri ga trebajustvoriti prilagođene programe za različite platforme. To je zbog činjenice da su grafike samo dio programa, dok se ostale komponente još uvijek razlikuju među platformama. Da biste to popravili, WebApp je dizajniran da pokreće čitave aplikacije u web-pregledniku kao što su Chrome i Firefox. Tako jedan program može raditi na svim platformama pomoću kompatibilnog preglednika.
    U međuvremenu, na strani klijenta, sve se prenosi "u pokretu" s poslužitelja, tako da daljnja instalacija programa nije potrebna. Poseban API nazvan WebGL također je stvoren za internet i na temelju ES-a, podskup OpenGL-a, dizajniranog posebno za mobilne uređaje. Da bi se postigao isti cilj za VR, još jedan API, nazvan WebVR, bio je dizajniran da lako dovede VR iskustvo u preglednike, bez obzira na platformu.

    Povezane publikacije