Yep, paralelno uz DirectX već poduže vrijeme proučavam i ovaj neizostavni API za razvoj 3D aplikacija. Ono što sam dosad iskusio je jednostavno predobro i jednostavno krenuo sam pisati ovaj tutorial koji izgleda malo profesionalnije jer ću ga predati profesorici iz informatike. Dakle:



OpenGL ( Open Graphics Library, OGL ) naziv je jednog od najraširenijih API-a (Application Programming Interface) za razvoj bogatih 2D/3D aplikacija. Prvobitno razvijen od strane Silicon Graphics Inc., danas njegov izvorni kôd dostupan je za preuzimanje i daljnje prilagođavanje potrebama developera i krajnjih korisnika. Njegova primjena seže od CAD (Computer Aided Design) programa do hitova iz industrije igara.

Otkad je izašao u 1992. godini, bio je vodeći API za razvoj grafičkih aplikacija. Ubrzo nakon izlaska Windows-a '95, Microsoft (prvobitno član ARBa) izdaje svoj multimedijalni API za razvoj bogatih 3D aplikacija specifično za svoj operacijski sustav s ciljem da konkurira OpenGLu i privuče više korisnika na Windows OS. Konačno povlačenje Microsofta iz OpenGL ARB-a događa se 2003. godine. Prednost OpenGLa leži u činjenici da je OpenGL nezavisan o platformi na kojoj se koristi dok mu je eventualna mana to što je OpenGL grafički API, za razliku od DirectXa koji se sastoji od više modula (grafika, video streaming, audio, networking, input). No, OpenGL se lagano može upariti sa veoma kvalitetnom alternativnom bibliotekom, SDL (Simple DirectMedia Layer), koja mu omogućuje lakšu kontrolu nad ulazom korisnika, manipuliranje zvukom i dr.

Ovaj tekst specifično će se baviti implementacijom OpenGLa u vaše aplikacije te će nastojati ponuditi kvalitetni uvod u programiranje 3D aplikacija sa OpenGL-om nastojeći više se koncentrirati na sam kôd nego na teoriju. Prvo ćemo postaviti OpenGL i „sinkronizirati“ ga s Visual Studio-om, a nakon toga ćemo krenuti u zanimljiv svijet dizajniranja i programiranja 3D aplikacija koristeći OpenGL API. Specifično, krenut ćemo od jednostavnog trokuta, transformacijskih matrica, osnovnog osvjetljenja, uvod u teksturiranje te kasnije malo napredniji koncepti poput generatora terena te GLSLa (Graphics Library Shading Language).