Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Isot kuvat OpenGL ohjelmaan

KemXy [09.07.2004 18:53:39]

#

Mitenhän kannattaisi ladata todella iso kuva OpenGL (c++)ohjelmaan näytettäväksi vain osa kerrallaan ja vieritettäväksi, kun kuvakoko on suunnilleen 640 x 2000 tai jopa isompi? Ja värejäkin riittää. Jo itse kuva vie useita megatavuja BMP muodossa.

Kannattaako vaihtaa johonkin toiseen muotoon ja ladatako tekstuuriksi vai lukea jotenkin suoraan näytölle reaaliajassa? Pientä peliä yrittelen väsätä.

Metabolix [09.07.2004 19:16:25]

#

Kyllä se on syytä tavalla tai toisella muistiin ladata mikäli siirtymisessä ei ole taukoja. Tiedostomuotoa rajoittavat lähinnä se, saako kuvan siitä ladattua, ja pelin levitysvaiheessa patentit. PCX on suhteellisen hyvä vaihtoehto, koska se on yleensä BMPtä pienempi. En taas OpenGL:ää tunne, joten en voi siihen ottaa kantaa, mutta useimmat syteemit varmasti säilyttävät kuvia muistissa Bitmappeina tai vastaavina, jottei kuvan purkaminen vie aikaa ohjelman käyttövaiheessa. Tekstuuri voi olla ihan hyvä ratkaisu.

rndprogy [09.07.2004 19:26:14]

#

En tiedä mitä auttaa mutta jossen tekee resurssi tiedoston kuvan lataamista varten. Ja silloin kuva data voidaan lukea osoitteesta BMP.BmBits. Ellet ole jo niin tehnyt.

User137 [10.07.2004 15:30:06]

#

Tekstuurit on tavallisesti neliön muotoisia. Ehkä uusimmat näytönohjaimet tukevat muita kokoja (tai sitten vanhatkin), mutta itse en muita muotoja ole koskaan käyttänyt. Kuva-formaattina voit käyttää mitä tahansa kunhan teet sille latausfunktiot. Oma OpenGL-kirjasto tukee ainakin bmp, jpg ja alpha-kanavoitua png muotoa.

firebug [10.07.2004 16:35:41]

#

Vanhemmat näytönohjaimet eivät taida ymmärtää noin isokokoisten tekstuurien päälle. Voit tietysti pilkkoa kuvan sopivan kokoisiin osiin ja ladata sen paloina. Sitten vain teksturoit vierekkäiset suorakaiteet ladatuilla isomman kuvan osasilla.

KemXy [10.07.2004 17:55:21]

#

Tein juuri testiohjelman, joka lataa ~ 640 x 2000 kokoisen bitmapin kokonaan tekstuuriksi. Onnistuu mipmapattuna tekstuurina. Meni omalla koneella ( 700 Mhz, GeForce 2MX ) noin 4 sekuntia kuvan lataamiseen. Teksturoidun suorakaiteen liikutuskin sujui kohtuullisen hyvin. Miten käy sitten hitaammilla koneilla... Voi olla, että firebugin ajatus toimii vielä paremmin. Pitänee kokeilla.

Vastaus

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

Tietoa sivustosta