Számítógépes grafika: OpenGL + GLUT + fejlesztőkörnyezetek

A VIK Wikiből
A lap korábbi változatát látod, amilyen Harapeti (vitalap | szerkesztései) 2014. február 18., 17:40-kor történt szerkesztése után volt. (lista helyretéve)

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)

  1. MinGW-t telepíteni szóközt NEM tartalmazó könyvtárba
    1. a példában ez C:\MinGW lesz
    2. a telepítés után az Installation Managerben a következőket kell bekattintani:
      1. mingw32-base
      2. msys-bash
      3. msys-make
    3. ezután Installation menü > Apply changes, ezzel telepíti a gcc-t, g++-t, gdb-t stb. (A MinGW amúgy is hasznos. :) )
    4. Screenshotok:
      1. http://data7.blog.de/media/557/6253557_12411cd7df_l.jpeg
      2. http://data7.blog.de/media/558/6253558_4e31936ead_l.jpeg
  2. Aztán kelleni fog a freeglut library, ez innen letölthető: http://www.transmissionzero.co.uk/computing/using-glut-with-mingw/
    1. itt lásd a "You can download my freeglut MinGW package" szöveg alatt található linket:
      http://files.transmissionzero.co.uk/software/development/GLUT/freeglut-MinGW.zip
    2. 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.
  3. A következő elérési utakat tedd be a környezeti változók közé, a PATH-ba:
    1. C:\MinGW\bin
    2. C:\MinGW\msys\1.0\bin
    3. C:\MinGW\freeglut\bin (ez tartalmazza a freeglut.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 rendszeren C:\Windows\System32\, vagy 64 bites rendszeren C:\Windows\SysWOW64\ könyvtár, meg akár a freeglut.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)
    (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
    1. Win+R, majd control.exe sysdm.cpl,System,3
    2. Environment Variables... gombra klatty
    3. Path-hoz legörgetés (), aztán a fentebbi könyvtárak hozzáadása pontosvesszővel elválasztva
  4. 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).
  5. utána a NetBeans-en belül: Tools > Options > C/C++ > Build Tools fül, így kellene kinéznie:
  6. Ezután hozd létre a C++ projektedet NetBeans-ben, majd a projektre jobb klikk - Properties > Build > C++ Compiler
    1. itt az "Include Directories"-nál megadjuk: C:/MinGW/freeglut/include
    2. így néz ki:
  7. ezután ugyanitt Build > Linker opciónál:
    1. Additional Options: -L"C:/MinGW/freeglut/lib"
    2. Libraries opción belül adjuk hozzá ezeket:
      1. -lfreeglut
      2. -lopengl32
      3. -lglu32
        screenshot:
        ha ezek valamelyike nincs hozzáadva, akkor ehhez hasonló hibaüzeneteket kaphatsz: "undefined reference to `gluPerspective@32'", "undefined reference to `gluLookAt@72' ", stb.
      screenshot:
  8. 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...
    File:glTest.cpp
  • 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...
    File:glTest.cpp
  • 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.

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

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
  • 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ése
    • grafh.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

Makefile

-- maat - 2011.03.27.

Forrás