Utviklingsverktøy
Rammene for dette materialet er utvikling av programmer som bruker OpenGL. OpenGL er tilgjengelig for de fleste utviklingsmiljøer og fra de fleste vanlige programmeringsspråk. Det er nesten ikke mulig å gi noen uttømmende beskrivelse av alle mulighetene og kombinasjonene. Jeg har derfor valgt å sette fokus på de vanligste utviklingssituasjonene, basert på erfaringene med studentprosjekter ved avdelingen. Siden jeg, og de fleste av studentene, er MS Windows-bruker vil beskrivelsen ha en slagside mot Windows.
Nedenfor finner du en kategorisering basert på en blanding av programmeringsspråk og utviklingsverktøy. I de følgende modulene finner du mer detaljer.
Java
Siden Java er basert på en VM (Virtual Machine) som er implementert på de fleste platformer trenger vi ikke skille mellom operativsystemer når vi ser på Java som utviklingsverktøy. Mer i modulen Java.
C/C++/C# under Windows
Microsoft er ikke direkte ivrige etter å støtte OpenGL. Trolig er de mer interesserte i at vi skal bruke deres egen pakke DirectX til 3D-programmering. Men det går greitt takket være løsninger utviklet av andre.
Dersom vi ønsker å utvikle mot den gamle Windows API'en må vi bruke C eller C++. Vi har da valget om vi ønsker å bruke MFC (Microsoft Foundation Classes) for å integrere vår grafiske applikasjon i en GUI med andre Windows komponenter eller om vi vil benytte GLUT. Vi trenger noen DLL'er og biblioteker for å få til dette. Modulen C/GLUT beskriver bruk av GLUT og modulen OpenGL og MFC beskriver integrasjon av OpenGL med Microsoft Foundation Classes.
Dersom vi ønsker å utvikle for .Net kan vi bruke C, C++ eller C#. Vi har da valget om vi ønsker å bruke BCL (Basic Class Library) for å integrere vår grafiske applikasjon i en GUI med andre Windows komponenter eller om vi vil benytte GLUT. I begge tilfellene må vi ha en wrapper for å bruke OpenGL-biblioteket. Den løsningen som peker seg ut er TAO fra MONO-prosjektet. Modulen C#/.Net beskriver utvikling med C# for .Net. Bruk av C/C++ blir tilsvarende.
I alle tilfeller er MS Visual Studio det naturlige utviklingsmiljøet. Jeg har fulgt Visual Studio gjennom mange generasjoner og min erfaring er at det er bakover kompatibelt i den grad at det ikke skaper nevneverdige problemer å dra med seg prosjekter fra en generasjon til en annen. I dette materialet vil du finne eksempelkode som er utviklet under Visual Studio versjon 4 og som er flyttet til versjon 6 og versjon 8.
Andre varianter
TrollTech integrert OpenGl i Qt [1]
Noen burde lage en modul her !
Python [2]
Jeg har aldri prøvd, men det kan jo være interessant ?