OpenGL:n avulla on mahdollista esittää kaksi- ja kolmiulotteisia näkymiä näytölle. Kaksiulotteisen näkymän suunnittelu on hieman helpompaa. Kolmiulotteisen näkymän suunnittelussa ongelmia tuottaa näytön kaksiulotteisuus. Kolmiulotteinen näkymä tulisi siis esittää kaksiulotteisessa näytössä. Liian usein haluttua näkymää suunniteltaessa ajatellaan jo valmiiksi "kaksiulotteisesti". OpenGL:llä objektit ja mallit tulee hahmotella mielessä (esimerkiksi näytön "sisälle") kolmiulotteisesti ja antaa tietokoneen tehdä se kaikkein vaativin tehtävä eli laskeminen. Tietokone laskee jokaiselle pikselille oikean väriarvon riippuen, mistä suunnasta malleja katsotaan, mihin mallit on sijoitettu ja minkälainen perspektiivi on käytössä.
Pikselin väriarvojen laskeminen tapahtuu kolmessa vaiheessa. Ensimmäiseksi lasketaan jokaisen objektin kontrollipisteiden uudet paikat. Kontrollipisteiden uuteen paikkaan vaikuttavat mm. pyörittely, skaalaukset, peilaukset ja perspektiivi. Laskutoimitukset vaativat 4x4-matriisin, joka kerrotaan pisteen koordinaattipisteillä (huom. tärkein syy miksi piste esitetään aina neljällä luvulla x,y,z,w). Toiseksi on laskettava ne pisteet, jotka mahtuvat esitettävälle alueelle ja ne, jotka voidaan jättää pois laskuista. Lopuksi on laskettava esitettävien pisteiden suhteelliset paikat rajatulla alueella.
Objektien kääntely ja siirtely tuottavat usein harmaita hiuksia ensimmäisiä grafiikkaohjelmia ohjelmoitaessa. Olisiko parempi siirtä katselupistetä oikealle, vaiko objektia vasemmalle? Jos näkymässä on useampi objekti, niin katselupisteen siirrolla pääsee vähemmällä. Tärkeintä kuitenkin on olloa aina selvillä kumpaa ollaan siirtämässä, siirretäänpä sitten objektia tai katselupistettä.
4x4-matriisilla kertomalla voidaan laskea x,y,z-tasossa olevan pisteen uudet koordinaatit x,y-tasossa. OpenGL-grafiikkaa ohjelmoitaessa on kolme eri matriisia, jotka vaikuttavat lopputulokseen. Yksi matriisi määrää objektien paikan (modelview), toinen on perspektiiviä varten ja kolmatta käytetään pinnoille tuleville bittikartoille (texture). Kukin matriisi on oletuksena yksikkömatriisi ja ainoastaan yhtä matriisia kerrallaan voidaan modifioida.
Modifioitava matriisi valitaan aliohjelmakutsulla glMatrixMode (GLenum mode), jolle viedään parametrinä joko GL_MODELVIEW, GL_PROJECTION tai GL_TEXTURE. Paikka- ja perspektiivimatriisien käsittelyssä käytetään apuna pinoja. Matriisin lisäämiseksi pinoon ja sieltä poistamiseen käytetään kutsuja glPushMatrix ( ) ja glPopMatrix ( ). Kutsulla glLoadIdentity ( ) asetetaan modifioitava matriisi yksikkömatriisiksi.
Objektia käänneltäessä ja siirrettäessä tulos voi joskus olla yllätys. Varsinkin tapauksissa, joissa objektia sekä siirretään että käännetään, on merkityksensä myös toimenpiteiden suoritusjärjestyksellä (katso Kuva 4.1.).
Objektin tai katselupisteen siirto suoritetaan aliohjelmakutsulla glTranslate{f d}(TYPE x, TYPE y, TYPE z), jossa yksinkertaisesti annetaan siirron määrä x-,y- ja z-suunnassa. Kääntely tapahtuu aliohjelmakutsulla glRotate{f d}(TYPE angle, TYPE x, TYPE y, TYPE z). Ensimmäinen parametri määrittää käännöksen kulman ja kolme viimeistä parametriä määrittävät x,y,z-tasossa vektorin, jonka suhteen käännös tapahtuu.
Skaalaus on ainoa objektin muokkauksista, joka muuttaa itse objektin kokoa. Skaalauksen ideana on muuttaa x-, y- ja z-koordinaatiston suhteita. Antamalla aliohjelmalle glScale{f d}(TYPE x, TYPE y, TYPE z) parametriarvoina itseisarvoltaan 1.0 suurempia lukuja venytetään objekteja. Vastaavasti itseisarvoltaan 1.0 pienemmät arvot kutistavat objektia. Jos parametriarvo on negatiivinen, tuloksena on objektin peilaus sen koordinaatiston suhteen. Skaalauksen kanssa on oltava tarkkana jonkin koordinaateista lähestyessä nollaa. Jos yksikin koordinaateista saavuttaa jossain vaiheessa nollan, ei sitä pystytä enää skaalauksen avulla muuttamaan, koska skaalaus tapahtuu aina voimassa olevien arvojen suhteen.
Katselupisteen valinta on yksi olennainen osa esitettäessä kolmiulotteista näkymää. GLU-kirjastossa (katso Luku 8.) on katselupisteen valinnalle aliohjelma gluLookAt (GLdouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, GLdouble upz). Kolme ensimmäistä parametriä määräävät katselupisteen ja seuraavat kolme pisteen, johon "katse" on suunnattu. Viimeiset kolme parametriä kertovat vektorin, joka on suunnattu ylöspäin. Viimeisten kolmen parametrin merkityksen ymmärtää hyvin esimerkiksi lentosimulaattoria ohjelmoitaessa. Ylöspäin suunnattu vektori ei olekaan aina taivasta kohden, vaan kohtisuorassa siipien yläpinnasta ulospäin. Jos lentokone kääntyy ylösalaisin, suuntavektori osoittaa maahan. Tällöin siis maa kääntyy yläpuolelle ja taivas alapuolelle.
Kolmiulotteisen vaikutelman aikaansaamiseksi täytyy kauempana katselupisteestä olevat objektit piirtää pienemmäksi kuin samankokoiset lähempänä sijaitsevat. Se, kuinka paljon objektia pienennetään, riippuu perspektiivistä. Ennen perspektiivin määräämistä on kutsuttava aliohjelmaa glMatrixMode (GL_PROJECTION), jolla ohjelmalle kerrotaan muutoksen kohdistuvan perspektiiviin liittyvään matriisiin. OpenGL sisältää useampia perspektiiviin vaikuttavia aliohjelmia.
Yksinkertaisimmassa aliohjelmassa glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far) neljällä ensimmäisellä parametrilla rajataan esitettävä alue (katso Kuva 4.2.). Parametrien near ja far tulee olla positiivisia (near > 0.0, far > 0.0). Lisäksi lähietäisyyden (near) on oltava pienempi kuin kauimmaisen etäisyyden (far).
Hieman monimutkaisempi aliohjelma gluPerspective (double fovy, double aspect, double zNear, double zFar) mahdollistaa lisäksi esitettävän alueen katselukulman määräämisen xy-tasossa, joka annetaan parametrina fovy. Kulman arvo saa olla välillä [0.0, 180.0]. Parametri aspect on esitettävän alueen leveyden ja korkeuden suhde. Kaksi viimeistä parametriä ovat samat kuin aliohjelmassa glFrustum ( ) edellä.
Mikäli perspektiivivaikutelmaa ei haluta, on esitettävä alue mahdollista rajata aliohjelmalla gluOrtho (double left, double right, double bottom, double top, double near, double far) tai kaksiulotteisesti aliohjelmalla gluOrtho2D ( double left, double right, double bottom, double top). Parametreillä on samat merkitykset kuin edellisissä aliohjelmissa.
Piirtoalue on näytöllä olevan ikkunan sisällä. Oletuksena OpenGL käyttää koko ikkunan näkymän esittämiseksi. Aliohjelmalla glViewport (GLint x, GLint y, GLint width, GLint height) voidaan ikkunan alue rajata kuitenkin siten, että käytetään ainoastaan tietty alue näkymän esittämiseksi. Täten samaan ikkunaan voidaan piirtää useampia toisistaan riippumattomia näkymiä. Näin saadaan jaetun ikkunan vaikutelma (nk. split-screen).
Otettaessa valokuvaa tavallisella kameralla on kameran suuntaaminen haluttuun suuntaan helppoa. Tietokonegrafiikassa katselupisteen suuntaaminen, koordinaatistojen modifiointi sekä objektien ja mallien kääntelyt saattavat kuitenkin aiheuttaa sen, ettei lopputulos olekaan halutunlainen. Usein virhe löytyy väärin suunnatusta katselupisteestä, jossa objekti onkin takana, vaikka sen pitäisi olla edessä. Toinen yleinen virhe on perspektiivin määrittelyssä annettujen lähimmäisen ja kauimmaisen esitettävän pisteen etäisyydet.