Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

koordinate u Open GL-u

[es] :: 3D programiranje :: koordinate u Open GL-u

[ Pregleda: 2107 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kish
NS

Član broj: 91320
Poruke: 44
*.beotel.net.

ICQ: 204


Profil

icon koordinate u Open GL-u22.07.2006. u 17:03 - pre 215 meseci
Ovako:
Prilican sam novajlija sto se tice OpenGL-a, sto znaci da ima mnogo stvari koje mi bas i ne idu, ali navescu jedan koji me prilicno muci u poslednje vreme: Naime, primetio sam da koordinate koje se koriste za odredjivanje raznih tacaka i sl. nemaju mnogo veze sa koordinatama koje se inace koriste u 2d grafici (sto se podrazumeva jer je u pitanju treca dimenzija), koje u glavnom odgovaraju poziciji pixela na monitoru. Problem je sledeci: kako zadavati koordinate u skladu sa pozicijom pixela na monitoru? Ne znam dal sam dovoljno jasan, zato evo primera: Kako izcrtati cetvorougao koji se nalazi tacno u levom gornjem uglu ekrana (2d koordinate bi bile 0,0) i recimo, sirina stranice mu je tacno 100 pixela? Ovo mi prilicno bitno jer za pocetak nisam hteo da zaranjam u 3d vec da pocnem lagano sa nekim primitivnim 2d fazonima, a priznacete, tu je mnogo lakse raditi sa uobicajnim 2d koordinatama. Nadam se da sam bio dovoljno jasan. Hvala na pomoci unapred.
 
Odgovor na temu

yooyo

Član broj: 4891
Poruke: 1101
*.beotel.net.



Profil

icon Re: koordinate u Open GL-u22.07.2006. u 22:13 - pre 215 meseci
Code:

void Begin2DMode(vec2i size)
{
    glMatrixMode(GL_PROJECTION); 
    glPushMatrix();    
    glLoadIdentity();
    glOrtho(0.0, size.x, size.y, 0.0, -1.0, 1.0);
    glMatrixMode(GL_MODELVIEW);     
    glPushMatrix();    
    glLoadIdentity();
}

void End2DMode()
{
    glPopMatrix(); 
    glMatrixMode(GL_PROJECTION); 
    glPopMatrix(); 
    glMatrixMode(GL_MODELVIEW);
}



Pozovi Begin2DMode(dimenzija_ekrana) i posle toga je koordinata (0,0) gornji levi ugao ekrana/prozora. Vodi racuna da je Z postavljeno izmedju -1 i 1, tako da u glVertex3f pozivima vodi racuna da je Z izmedju -1 i 1. U suprotnom nista se nece videti na ekranu.

Kada zavrsis sa "2D modom", pozovi End2DMode() da bi se vratio u prethodno stanje.

Ja koristim ove func u situaciji kada zavrsim 3D rendering, a zatim zelim da prikazem neke dubug informacije (FPS, pozicija kamera, broj trouglova, ...)
 
Odgovor na temu

kish
NS

Član broj: 91320
Poruke: 44
195.252.85.*

ICQ: 204


Profil

icon Re: koordinate u Open GL-u24.07.2006. u 09:06 - pre 215 meseci
Hvala na pomoci
 
Odgovor na temu

[es] :: 3D programiranje :: koordinate u Open GL-u

[ Pregleda: 2107 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.