Programmera OpenGL i C++ Del 1
Förord
I denna kurs kommer jag att gå igenom hur man kommer igång med att programmera med OpenGL i c++. För att inte krångla till det allt för mycket kommer jag även att använda mig av glut för att förenkla skapandet av fönster. Jag kommer även att gå igenom hur man kommer igång med OpenGL i Visual studio.NET 2003. Det skiljer en del från olika program men bör inte vara allt för svårt att lista ut hur ni gör i andra program. Eftersom jag använder mig av glut och OpenGL så kommer koden jag skriver att fungera under alla operativsystem som glut och opengl stödjer, dvs Linux, Mac os, Windows med flera.Innehåll
»»
Relaterade artiklar
» Programmera OpenGL i C++ Del 2
Komma igång
Det första som ni behöver göra är att ladda ner glut. OpenGL följer med drivrutinerna till erat grafikkort däremot så måste ni ladda hem och installera glut manuellt. Glut hittar ni på www.opengl.org (direktlänk till nerladdning av glut hittar ni i slutet på denna artikel).Glut består av 5st filer och ska ligga på följande platser.
glut.dll C:\Windows\system
glut32.lib C:\Program\Microsoft Visual Studio .Net\Vc7\PlatformSDK\Lib
glut.lib C:\Program\Microsoft Visual Studio .Net\Vc7\PlatformSDK\Lib
glut.h C:\Program\Microsoft Visual Studio .Net\Vc7\PlatformSDK\Include\GL
När du sedan skapar ett program så måste du komma ihåg att bifoga glut32.dll med programmet. Nu har du allt som behövs för att skapa ett nytt projekt och börja koda. Bara att starta upp Visual Studio och köra igång.
Välj File -> New -> Project…

Välj Win32 Console Project och sätt ett namn på projektet. Klicka på OK

När nästa fönster kommer upp, klicka på Application Settings och se till att Console Application är förvalt och kryssa för Empty Project. Klicka sedan På Finish. På höger sida har du Solution Explorer. Om du inte hittar Solution Explorer tryck CTRL+ALT+L så öppnas det. Markera ditt projekt i Solution Exporer och högerklicka och välj sedan properties så skall nedanstående fönster dyka upp.

Markera All configurations under Configurations uppe till vänster. Klicka sedan på Linker i listan till vänster och välj Input. Där under Additional Dependencies skriver du in opengl32.lib och glut32.lib. Tänk på att dessa inställningar är specifika för detta projekt så du behöver ställa in detta varje gång du skapar ett nytt projekt. Nu är allt redo för att börja koda.
OpenGL kodandet
Här följer en mycket simpel opengl kod som ritar ut en fyrkant på skärmen. Efter att ni kompilerat och kört igång programmet så kommer det se ut som bilden nedan. Inte så mycket att hurra för kanske men det är en bra början.

//glut.h sköter inkluderandet av bade windows.h och gl.h så detta behöver
//man inte göra själv. Det kan däremot vara bra att ta med den för
//tydlighetens skull.
#include
void display()
{
glClear(GL_COLOR_BUFFER_BIT); //rensar alla pixlar på skärmen
//Sätter RGB färg på det vi ska rita ut. I detta fall Röd
//Värden mellan 0.0f och 1.0f;
glColor3f(1.0f, 0.0f, 0.0f);
glBegin(GL_POLYGON);
glVertex3f(0.3f, 0.3f, 0.0f);
glVertex3f(0.7f, 0.3f, 0.0f);
glVertex3f(0.7f, 0.7f, 0.0f);
glVertex3f(0.3f, 0.7f, 0.0f);
glEnd();
glFlush();
}
void init()
{
//Bakgrundsfärg (svart) i RGBA format.
//Värden mellan 0.0 och 1.0;
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutCreateWindow("Första OpenGL programmet"); //skapa fönstret
init();
//anger vilken funktion som har hand om utriandet
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
Avslutning
Jag hoppas att jag genom denna artikel fått er att komma igång med OpenGL. I nästa del kommer jag att gå igenom mer vad funktionerna gör. Jag kommer att utgå från denna artikel och bygga vidare för att få lite bättre resultat. Om ni stöter på några problem med denna artikel, tveka inte att höra av er till mig. Det är alltid roligt att få höra vad ni tycker om artikeln. En kort kommentar så att jag vet vad jag kan förbättra i framtida artiklar.
Direktlänk för nerladdning av glut:
Krister Johansson
Bra artikel, men nu vill jag veta mera :D
Jesper Brännström
Tack. Alltid roligt att höra vad personer tycker. Fler artiklar är på väg.