Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: OpenGL: partikkelit 3:ssa ulottuvuudessa

Touho [04.07.2007 14:27:33]

#

Miten partikkelit kannattaisi piirtää niin, että ne näkyisivät aina suoraan kameraan päin? En usko, että kannattaa itse laskea kulmia kameran sijainnin avulla ja sitten käännellä kohti kameraa.

Metabolix [04.07.2007 15:49:00]

#

Partikkelilla on kaiketi sijainti ja yksi pyörimiskulma, siis se voi pyöriä ympäri partikkelista kameraan menevän suoran suhteen eikä muuten – muutenhan se ei näy aina suoraan kameralle päin. Voit siis varmaankin tehdä jotenkin näin (kunhan pikaisesti hutaisin):

glTranslate(-kamera.x, -kamera.y, -kamera.z); // on varmaan ennestään jo (ja pyöritys myös)

// Joka partikkelille
vektori akseli = kamera - partikkelin_paikka;
glTranslate(-akseli.x, -akseli.y, -akseli.z);
glRotate(partikkeli.pyoritys, akseli.x, akseli.y, akseli.z);

// Ja piirrossa kelvannee z = 0

Touho [04.07.2007 17:06:02]

#

Tarkoitus oli kysyä, onko OpenGL:ssä jotain systeemiä, jonka avulla voisi piirtää avaruuteen partikkeleita niin, että ne kohdistuisivat aina kameraan päin. Eli jos piirtäisin näin:

//Joku OpenGL:n komento?

glTranslatef(x, y, z);

glBegin(GL_QUADS);
glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f, 1.0f, 0.0f);
glTexCoord2f(1.0f, 1.0f); glVertex3f(1.0f, 1.0f, 0.0f);
glTexCoord2f(1.0f, 0.0f); glVertex3f(1.0f, -1.0f, 0.0f);
glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 0.0f);
glEnd();

niin se kohdistuisi suoraan kameraan missä tahansa kamera sitten on.

Markus [04.07.2007 21:40:45]

#

lainaus:

Tarkoitus oli kysyä, onko OpenGL:ssä jotain systeemiä, jonka avulla voisi piirtää avaruuteen partikkeleita niin, että ne kohdistuisivat aina kameraan päin.

Sinulla on kolme mahdollisuutta:

1. Käytä teksturoituja pisteitä (eli ns. point spritejä). Tässä on kuitenkin se haitta, että pisteillä on tietty maksimikoko.

2. Lue modelview-matriisi ja käytä sen akseleita kasaaksesi partikkelien geometria niin, että ne osoittavat aina kohti kameraa.

3. Kumoa kameran kierto ennen partikkelien piirtämistä kertomalla modelview matriisi kameran matriisin käänteismatriisilla.

Spongi [04.07.2007 23:54:13]

#

Muistaakseni billboarding on tollasen tekniikan nimi. Tossa on joku tutoriaalikin http://www.lighthouse3d.com/opengl/billboarding/

Vastaus

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

Tietoa sivustosta