Számítógépes grafika: OpenGL + GLUT + fejlesztőkörnyezetek
Ez az oldal a korábbi SCH wikiről lett áthozva.
Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor, kérlek, javíts rajta egy rövid szerkesztéssel!
Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót.
<noautolink>
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:
http://cg.iit.bme.hu/~zsolnai/gfx/ca.zip - ha nem megy, akkor legalul a csatolmányok között is elérhető.
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)
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 http://www.xmission.com/~nate/glut.html, 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
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 -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
: 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++ libglut3-dev
-- 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