Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: OpenGL, 2D ja ylösalaisuus

vidar [02.08.2008 22:32:04]

#

Elikkäs, tarkoitus olisi piirustaa OpenGL:llä 2D:tä, tekstuuriquadeja ja tekstiä, käyttäen tuttua koordinaatistoa, jossa x kasvaa oikealle ja y alas, yksikköinä pikselit. glOrtho(0, w, h, 0, -1.0, 1.0), jossa w ja h ovat ruudun koko, toimii, mutta kaikki piirtyy ylösalaisin. glOrtho(0, w, 0, h, -1.0, 1.0) taas piirtää kaiken oikein päin, mutta y akseli kasvaa ylöspäin. Tietty tuohonkin voisi tottua, mutta hankaloittaa hieman.

Quadit piirrän

glBegin(GL_QUADS);
	glTexCoord2f(0.0f, 0.0f); glVertex3f(x,     y,     0);
	glTexCoord2f(1.0f, 0.0f); glVertex3f(x + w, y,     0);
	glTexCoord2f(1.0f, 1.0f); glVertex3f(x + w, y + h, 0);
	glTexCoord2f(0.0f, 1.0f); glVertex3f(x,     y + h, 0);
glEnd();

w ja h ovat tekstuurin koko. Tekstiä ulostelen OGLFT:llä.

User137 [02.08.2008 23:59:00]

#

Onhan sitä mahdollisuuksia.. esim vaihtaa 0 ja 1 paikkoja glTexCoord2f kanssa, tai skaalaamalla Y akseli glScalef() arvolla -1.

Ja lopuks, jos käytät ortho tilaa voit käyttää glVertex3f sijaan glVertex2f tai jopa glVertex2i kun yleensä pyritään pikselitarkkuuteen siinä.

vidar [03.08.2008 08:04:01]

#

glScale() toimi hienosti, kun vielä piirtovaiheessa muutti y-arvot vastaluvuikseen. Kiitoksia.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta