Számítógépes grafika: OpenGL + GLUT + fejlesztőkörnyezetek
GLUT
Az OpenGL Utilty Toolkit egy library, amely megkönnyíti az OpenGL-es programok írását, azzal, hogy elfedi az operációs rendszerek közötti különbségeket. A GLUT segítségével néhány sor írásával létrehozhatunk egy OpenGL megjelenítésére alkalmas ablakot.
Windows-on ezek a funkciók Visual Studio esetén a glut32.dll fájlban , MinGW esetén a libglut-0.dll fájlban vannak megvalósítva. Ez nem része az operációs rendszernek, külön kell letölteni a hozzá tartozó header fájlokkal együtt (részletesen lejjebb). Egy GLUT-os programnak tehát kell megfelelő GLUT DLL, amit célszerű a =C:\WINDOWS\system32\= mappába másolni, vagy közvetlenül az exe mellé.
Ultimate C&A fejlesztőcsomag
- A legkönnyebb, legkisebb, leggyorsabb megoldás a grafika házi feladatok forgatására by Csöndes Laci & keeroy
- MinGW/g++ alapú megoldás, amellyel a saját kedvenc editorodat használhatod. Semmi fölösleges sallang!
- Az összeállítása nagyon egyszerű, de azért olvasd el a readme.txt-t!
- Update: cp.bat kiegészítés a rejtélyes gordiusos hibák orvoslására. Használatához olvasd el a readme-t.
Letöltés:
Fájl:Grafika IDE Ultimate C&A fejlesztőcsomag MinGW g++ (ca.zip).zip
Kulcsrakész fejlesztőcsomag
Telepített, beállított mingw/msys környezet. gcc, glut és ráadásnak gdb. Nagyon hasonlatos a fenti C&A csomaghoz, de míg az a netről húzza a dolgokat mikor telepíted, ezt csak ki kell csomagolni.
README-t ne felejtsd elolvasni!
Letöltés:
http://dl.dropbox.com/u/841166/bme/grafika.zip (63MB)
MinGW Studio (Windows)
- letöltöd a fájlt, kicsomagolod egy stabil helyre (mostantól úgy veszem a C:\-be raktad)
- megnyitod a
C:\grafika_pack\mingwstudio\MinGWStudio.exe
programot - Edit -> Options -> Compiler: ide bemásolod hogy
C:\grafika_pack\gcc441\
- File -> New -> Projects -> Win32 Console Application: adsz neki nevet és egy elérési útvonalat (pl. C:\Users\kovacsjozsef\Documents\MinGWStudio Projects\)
- File -> New -> Files -> C/C++ Source File: adsz neki nevet és kiterjesztést
- Project -> Settings -> Link -> Extra linking options:
-lfreeglut -lopengl32 -lglu32
- berakod a házi template-et a forrásfájl-ba (hogy kipróbáld működik-e)
- Build -> Build: ha mindent jól csináltál, lefut a fordítás és nincs error
- másold (CTRL-C) bele a
C:\grafika_pack\gcc441\bin\freeglut.dll
fájlt a"projekted-neve"\Debug\
mappába - Build -> Execute: a program fut
Ha minden működik, ezt látod:
(legközelebb már csak a Build -> "Build and Execute" menüpontra kell kattintanod és a program fordul és elindul)
Hogy miért gondolom ezt jobbnak a többi windows-os megoldásnál?
- + Egyszerűbb, de ugyanolyan hatékony, mint egy 500+ megás IDE. (mivel csak opengl-t használunk)
- + A csomag mérete 12mb.
- + A házi beadó oldal gcc-ben fordít, előny, hogy ez a megoldás is gcc-t használ.
- + Hogy tényleg semmi váratlan ne érjen, a gcc 4.4.1-et használja ez is, hogy tényleg akkor kapj error-t, ha a házibeadó oldalon is error-t kapnál. (és ugyanazokat a bugokat is)
- + Könnyű konfigurálni, nem csinál semmi magic-et a háttérben, kvázi egy grafikus wrapper a gcc köré
- - Nagyon minimalista a program kinézete
NetBeans (Windows)
Alapvetően ez a német cikk volt a kiindulópontom: http://techchan.blog.de/2012/03/18/einrichten-opengl-netbeans-7-1-1-teil-0-start-13209096/.
Ez azonban tartalmaz egy-két felesleges lépést, vagy épp apróbb hibát, így ezeket korrigálva készítettem el a step-by-step leírást.
Remélem, hasznát veszitek, sok sikert! -- Haraszin Péter (vita) 2014. február 18., 16:01 (UTC)
- MinGW-t telepíteni szóközt NEM tartalmazó könyvtárba
- a példában ez
C:\MinGW
lesz - a telepítés után az Installation Managerben a következőket kell bekattintani:
mingw32-base
msys-bash
msys-make
- ezután Installation menü > Apply changes, ezzel telepíti a gcc-t, g++-t, gdb-t stb. (A MinGW amúgy is hasznos. :) )
- Screenshotok:
- a példában ez
- Aztán kelleni fog a freeglut library, ez innen letölthető: http://www.transmissionzero.co.uk/computing/using-glut-with-mingw/
- itt lásd a "You can download my freeglut MinGW package" szöveg alatt található linket:
- ennek tartalmát bontsd ki mondjuk a MinGW könyvtárába, a freeglut nevű alkönyvtárba.
- így az elérési út pl.
C:\MinGW\freeglut
lesz. - Mindez csupán az egyszerűség kedvéért történik, egyébként lehetne máshová is tenni, de akkor erre oda kell figyelni, hogy az elérési útvonalak helyesek legyenek. A példában a
C:\MinGW\freeglut
elérési utat fogjuk használni.
- így az elérési út pl.
- A következő elérési utakat tedd be a környezeti változók közé, a PATH-ba:
C:\MinGW\bin
C:\MinGW\msys\1.0\bin
C:\MinGW\freeglut\bin
(ez tartalmazza afreeglut.dll
fájlt)- Itt megjegyezném, hogy sok helyen javasolják a
freeglut.dll
fájl rendszerkönyvtárakba pakolását, mint pl. 32 bites rendszerenC:\Windows\System32\
, vagy 64 bites rendszerenC:\Windows\SysWOW64\
könyvtár, meg akár afreeglut.dll
kerülhetne az alkalmazás könyvtárába is, de én egyiket sem tartom túl jó módszernek, értelmesebbnek tűnik berakni a PATH-ba azt a könyvtárat, amely ezt a fájlt tartalmazza - így több projekt számára is elérhető a dll-fájl, valamint rendszerkönyvtárakba sem dobálunk bele 3rd party dll-fájlokat. Persze ízlések és pofonok különböznek... :) (HP)
- Itt megjegyezném, hogy sok helyen javasolják a
- (például
.........;C:\MinGW\bin;C:\MinGW\msys\1.0\bin;C:\MinGW\freeglut\bin;.........
- szándékosan nem tartalmaz szóközöket a pontosvessző után) - A környezeti változók hozzáadásának módszere:
- itt látható, hogyan kell, ha valaki még nem csinálta
- Telepítsd a NetBeans-t: https://netbeans.org/downloads/index.html
- nyilván a C/C++ plugint tartalmazót töltsd le és telepítsd (a plugineket amúgy utólag is lehet telepíteni, ha másikat raktál fel).
- utána a NetBeans-en belül: Tools > Options > C/C++ > Build Tools fül, így kellene kinéznie:
- Ezután hozd létre a C++ projektedet NetBeans-ben, majd a projektre jobb klikk - Properties > Build > C++ Compiler
- ezután ugyanitt Build > Linker opciónál:
- Additional Options:
-L"C:/MinGW/freeglut/lib"
- Libraries opción belül adjuk hozzá ezeket:
-lfreeglut
-lopengl32
-lglu32
- Additional Options:
- Készen vagyunk. Ha mindent jól csináltunk, akkor a kódunknak fordulnia kell. Igaz, hogy a lista elég hosszú, de egyszer érdemes végigcsinálni: utána egyszerűbb lesz, mint amilyennek a leírás alapján tűnik.
Qt Creator (Windows)
(alfa verzió, mert nincs nálam a saját gépem, ergo emlékezetből dolgozok) Marha egyszerű, a lépések:
- letölteni a GLUT-ot
- telepíteni a Qt SDK-t. Telepítéskor elég, ha a Desktop/MinGW-re koncentrálsz, a grafika házihoz csak ez kell.
- bemásolni a header fájlokat a Qt Include\GL könyvtárba, ami ilyesmi helyen lehet pl.: "C:\QtSDK\mingw\include\GL"
- a lib fájlokat is elhelyezni hasonló módon, csak itt a "mingw\lib" könyvtár lesz a célpont
- a dll fájlt bepakolni a Windows\system32, vagy 64 bites rendszer esetén a SYSWOW64 könyvtárba
- Qt Creator megnyit, ezután új cpp projektet kell létrehozni
- A projekt beállításainál (bal oldalon a .pro fájl) nyugodtan ki lehet törölni minden Qt-re vonatkozót, és helyettük a “QT += opengl” és “LIBS += libglut32” bejegyzéseket kell elhelyezni
- main.cpp fájl tartalmát le lehet cserélni a grafika házi keretre
Innentől pedig mehet minden a megszokott mederben
Visual Studio (Windows)
GLUT letöltés (minden verzióhoz)
Innen https://code.google.com/p/rawvideoplayer/downloads/detail?name=glut-3.7.6-bin.zip&can=2, ez kell glut-3.7.6-bin.zip (117 KB).
Visual Studio .NET 2003
Telepítés
Másoljuk be a következő fájlokat (feltételezve, hogy a Visual Studio a =C:\Program Files\Microsoft Visual Studio .NET 2003\= könyvtárba lett telepítve):
- glut.h a C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\gl\ könyvtárba
- glut.lib a C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Lib könyvtárba
Telepítés más helyre
- Hozzunk létre egy tetszőleges könyvtárat, pl. C:\GLUT
- Ide másoljuk a glut.lib fájlt
- Ebbe hozzunk létre egy gl nevű könyvtárat, és ebbe másoljuk be a glut.h fájlt.
- Visual Studio-ban Tools | Options... || Projects VC++ Directories -ban adjuk hozzá a GLUT könyvtárát az Include Files és Library Files -ok közé.
Hello OpenGL program
- File | New Project
- Visual C++ Projects | Win32 Win32 Console Project
- Application Settings-ben Empty Project pipa
- Solution Explorer -ben jobb klikk a project-re, Add | Existing Item...
- Build | Build Solution, Debug Start Debugging
Visual Studio 2005
Telepítés
Másoljuk be a következő fájlokat (feltételezve, hogy a Visual Studio a C:\Program Files\Microsoft Visual Studio 8\ könyvtárba lett telepítve):
- glut.h a C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include\gl\ könyvtárba
- glut.lib a C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Lib\ könyvtárba
Telepítés más helyre
- Hozzunk létre egy tetszőleges könyvtárat, pl. C:\GLUT
- Ide másoljuk a glut.lib fájlt
- Ebbe hozzunk létre egy gl nevű könyvtárat, és ebbe másoljuk be a glut.h fájlt.
- Visual Studio-ban: Tools | Options... || Projects and Sollutions VC++ Directories -ban adjuk hozzá a GLUT könyvtárát az Include Files és Library Files -ok közé.
Hello OpenGL program
- File | New Project...
- Visual C++ | Win32 Win32 Console Application
- Win 32 Application Wizard -ban Next, Empty Project bepipál
- Solution Explorer -ben jobb klikk a project-re, vagy a Source Files-ra, Add | Existing Item...
- F5
Visual Studio 2008
Telepítés
- glut.h a C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\gl könyvtárba
- glut.lib a C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib könyvtárba
Látványos segítség Windows 7 alá
Visual Studio Expressek
Egyetlen apróságban térnek el a nem express változatoktól, hogy külön kell letölteni, és telepíteni hozzájuk a Platform SDK-t: http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default.aspx. Ezután értelemszerűen a Platform SDK könyvtáraiba kell másolni a glut.h -t, és a glut.lib -et. Bővebben lásd a nem express változatoknál.
Visual Studio 2010 Beta 1 (Windows 7-en)
- glut.h a C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\gl könyvtárba
- glut32.lib a C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib könyvtárba
- glut32.dll a C:\Windows könyvtárba
- A C:\Windows\Microsoft.NET\Framework\v4.0.20506\133 könyvtárról csinálj egy másolatot ugyanide 1038 néven
- Van egy hiba a VS2010 Beta 1-ben, miszerint Unicode karakterkészlettel dolgozik, s emiatt a program belépési pontja nem a main függvény.
- A main függvényt át kell nevezni wmain -ra.
- VAGY
- A Project/* propertier menüpontban át kell állítani a Character Set -et Use Multi-Byte Character Set-re.
- Beta2-ben javítva lesz. Bővebb infó: http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=454646
Visual Studio 2010 Beta 2 (Windows 7-en)
- glut.h a C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\gl könyvtárba
- glut32.lib a C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib könyvtárba
- glut32.dll a C:\Windows\System32 könyvtárba
Visual Studio 2010
- Ugyanúgy kell eljárni, ahogyan a Beta 2-nél.
Visual Studio 2012 (64bit)
- glut.h a C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\gl könyvtárba (a gl könyvtárat Neked kell létrehozni!)
- glut32.lib a C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib könyvtárba
- glut32.dll a C:\Windows\SysWOW64 könyvtárba
Amennyiben a telepítés helye nem a default, akkor a .h és .lib fájlokat az általad megadott *\Microsoft Visual Studio 11.0\VC\ könyvtárba kell tenned!
Visual Studio 2015
- File/New/Project.../Win32 Console Application
- Varázslót végigpötyögöd. Az utolsó ablakban az Application type maradjon Console application, Additional options-nál pipát mindenhonnan ki, kivéve az Empty project opciót.
- Solution explorer, jobb klikk a References-en, Manage NuGet packages...
- Ezt szépen megkeresed, felcsattintod: http://www.nuget.org/packages/nupengl.core/
- Solution explorer (logikusan) Sources mappájához hozzáadod a kiadott házi sablont, majd sikeresen fordítod a projektet. :)
Működhet korábbi VS verziókkal is, amik tudnak NuGet-et, nem próbáltam.
Dev-C++ (Windows)
Telepítés
- Tools | Check For Updates/Packages...
- _Select devpack server_: devpaks.org
- Check For Updates
- Valahol lesz egy =glut= package. Mellette pipa. Ha letöltötte Close.
Hello OpenGL program
- File | New Project...
- MultiMedia fülön glut
- Execute | Compile, Execute Run
Xcode (Mac OS X)
Telepítés
- Xcode-ot az Apple oldaláról lehet szedni ingyért, 1 giga körül van
- GLUT nem kell külön, része az Xcode csomagnak.
- step-by-step guide: http://cit.cs.dixie.edu/cs/cs3600/xcode-glut/
Hello OpenGL program
- Az include-oknak így kell kinézniük:
#include <OpenGL/gl.h> #include <OpenGL/glu.h> #include <GLUT/glut.h>
- Hozzá kell adni a =/System/Library/Frameworks/GLUT.framework= -öt és a =/System/Library/Frameworks/OpenGL.framework= -öt a projecthez. (Projecten jobb gomb -> Add -> Existing Frameworks -> ott megkeresed ezeket.)
- Ezek után elvileg minden gond nélkül fordul.
Linux + tetszőleges szövegszerkesztő
- Első körben telepíteni kell a következő csomagokat:
libglu1-mesa-dev
freeglut3-dev
mesa-common-dev
build-essential
- eg: debian alapú disztrókon:
sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev build-essential
- eg: debian alapú disztrókon:
- Tetszőleges szövegszerkesztővel szerkesztjük a kódot
- eg: vim, nano, pico, gedit, leafpad, stb.
- Fordítás:
g++ -Wall grafh.cpp -lGL -lGLU -lglut -lGLEW -o grafx
, ahol:-Wall
: összes warning megjelenítése (pl: a nem használt változókról)-o grafx
: kimenet neve-lglut -lGL -lGLU -lGLEW
: glut és GL libek linkelésegrafh.cpp
: ki lehet találni :)
- Futtatás: duplakatt a létrejövő binárisra. Parancssorban:
./grafx
Debian/Ubuntu + makefile
sudo apt-get install g++ freeglut3-dev
nev=elso_hazi LDFLAGS += -lglut -lGLU -lGL #LDFLAGS += -m32 # 32 bites bináris #CXXFLAGS += -m32 # 32 bites bináris CXXFLAGS += -pedantic -Wall -Wextra #CXXFLAGS += -DDEBUG -g # debug opciók CXXFLAGS += -g0 -O3 # release opciók OBJS = $(nev).o # linkelendők $(nev): $(OBJS) $(CXX) $(LDFLAGS) $(OBJS) -o $@ clean: $(RM) *.o $(nev)
-- maat - 2011.03.27.
Forrás
- Visual Studio: http://www.inf.u-szeged.hu/~tanacs/oktatas/szggraf06/VisualStudioNETSteps.html, amely már csak Google Cache-ben érhető el.
- Dev-C++: http://www.astahost.com/info.php/installing-glut-dev-c_t14192.html