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

OpenGL problem sa pozadinom

[es] :: 3D programiranje :: OpenGL problem sa pozadinom

[ Pregleda: 2917 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

SashaM
Veliki Bečkerek

Član broj: 28482
Poruke: 213
*.ptt.yu.



+1 Profil

icon OpenGL problem sa pozadinom02.12.2004. u 00:09 - pre 236 meseci
Pozdrav svima

Imam naizgled jednostavan problem: s obzirom da radim 2D igru treba da postavim pozadinsku sliku ali kada je postavim kao texturu (razvucem poligon od jedne do druge ivice ekrana i nalepim texturu na njega) pozadina se znatno zamuti i postane jako losa. Probao sam razne parametre kreiranja tekstura ali nista ne daje zadovoljavajuce rezultate. Postoji li neki drugi nacin isrtavanja slika na ekran sem poligon+tekstura metode?

Sasa
Life happens but shit goes on
 
Odgovor na temu

Nothingman

Član broj: 31375
Poruke: 308
*.teol.net.



+112 Profil

icon Re: OpenGL problem sa pozadinom03.12.2004. u 02:35 - pre 236 meseci
Prvo da te pitam da li si zaboravio da postavis ortogonalnu projekciju?
Ali u svakom slucaju odgovor na tvoje pitanje je: da, postoje i drugi nacini da se uradi to sto zelis.
Moras da postavis trenutnu poziciju rastera pomocu glRasterPos*() funkcije. Ta pozicija je u principu mesto gde zelis da crtas (donji levi ugao tvoje slike). Zatim mozes da sliku koju imas u memoriji iscrtas na tu poziciju pomocu funkcije glDrawPixels().
Nemoj da zaboravis da pre svega ovoga podesis ortogonalnu projekciju kako bi koordinate koje zadajes bile u screen space-u.
Za sve detalje pogledaj u OpenGL redbook, jer ih se ja bas i ne secam zato sto to do sada nisam koristio.
Nisam 100% siguran ali ja mislim da ce rezultat koji ces dobiti koristeci glDrawPixels() biti isti kao kad koristis teksturu jer bi i tekstura morala da ti da savrsenu sliku s obzirom da je poligon na koji si je zalepio paralelan viewplane-u a projekcija ortogonalna. Sve mi se cini da si ti verovatno zaboravio da podesis pravu projekciju.

p.s. Filtering nemoj da koristis jer ti on sigurno nece pomoci da 2D slika postane cistija ;)

Q: Are there really any systems where
void main() doesn't work?
A: It has been reported that programs using void main() can crash.
Q: The book I've been using, _C Programing for the Compleat Idiot_,
always uses void main().
A: Perhaps its author counts himself among the target audience.
 
Odgovor na temu

SashaM
Veliki Bečkerek

Član broj: 28482
Poruke: 213
*.ptt.yu.



+1 Profil

icon Re: OpenGL problem sa pozadinom06.12.2004. u 00:09 - pre 236 meseci
Nasao sam drugi nacin pa sam potpuno zaboravio na ovaj post...
Uspeo sam da iskombinujem DirectDraw sa Direct3D-om tako da mi draw sluzi za crtanje pozadine a D3D sa efekte.

Ipak hvala na odgovoru

P.S. nisam bio zaboravio da podesim ortogonalnu projekciju
Life happens but shit goes on
 
Odgovor na temu

Nothingman

Član broj: 31375
Poruke: 308
*.mobtel.com.



+112 Profil

icon Re: OpenGL problem sa pozadinom06.12.2004. u 16:44 - pre 236 meseci
Citat:
SashaM
P.S. nisam bio zaboravio da podesim ortogonalnu projekciju


Sada mene interesuje u cemu je problem :)
Jedino sto mi sad jos pada na pamet je da te pitam da li su ti
width i height velicine u teksturi stepeni dvojke?
Koliko se secam OpenGL zahteva da taj uslov bude zadovoljen.
Ajde ako procitas ovaj post i ako te ne mrzi iseci u nekom programu sliku koju koristis kao teksturu da bude recimo 512*512 i onda probaj da je nalepis na poligon velicine 512*512 u ortogonalnoj projekciji bez filtriranja. Ili mi posalji sliku i program pa cu ja da proverim.

Q: Are there really any systems where
void main() doesn't work?
A: It has been reported that programs using void main() can crash.
Q: The book I've been using, _C Programing for the Compleat Idiot_,
always uses void main().
A: Perhaps its author counts himself among the target audience.
 
Odgovor na temu

SashaM
Veliki Bečkerek

Član broj: 28482
Poruke: 213
*.ptt.yu.



+1 Profil

icon Re: OpenGL problem sa pozadinom06.12.2004. u 22:38 - pre 236 meseci
Koristio sam 800x600 sliku koju sam preko gluBuild2DMipmaps funkcije preveo u teksturu, medjutim s obrzirom da OpenGL zahteva da teksture budu u stepenu dvojke ta f-ja ju je sama pretvorila u potrebne dimenzije i najverovatnije je tu nastao problem zamucivanja slike. Da sam koristio 512x512 mozda ne bi bilo problema ali mi je bilo suvise komplikovano da sliku "seckam" na kompatibilne delove i lepim na poligon...
Life happens but shit goes on
 
Odgovor na temu

CimBac
Fax
Novi Sad

Član broj: 37332
Poruke: 157
*.nspoint.net.

Sajt: irrlicht.sourceforge.net


Profil

icon Re: OpenGL problem sa pozadinom07.12.2004. u 00:29 - pre 235 meseci
koliko se ja razumem gluBuild2DMipmaps moze da radi sa proizvoljnim dimenzijama teksture, pitanje je samo na koji poligon to lepis,tj odnos stranica poligona i teksture mora biti jednak.Toliko od mene.
 
Odgovor na temu

SashaM
Veliki Bečkerek

Član broj: 28482
Poruke: 213
*.ptt.yu.



+1 Profil

icon Re: OpenGL problem sa pozadinom08.12.2004. u 00:13 - pre 235 meseci
Citat:
CimBac: koliko se ja razumem gluBuild2DMipmaps moze da radi sa proizvoljnim dimenzijama teksture, pitanje je samo na koji poligon to lepis,tj odnos stranica poligona i teksture mora biti jednak.Toliko od mene.


Koliko se meni cini gluBuild2DMipmaps f-ja prihvata proizvoljne teksture ali im menja velicinu na stepen dvojke jel OGL radi samo sa takvim teksturama (isto kao i DirectX) pa tu dolazi do opadanja kvaliteta. Postavio sam odnos poligona i teksture 1:1 ali je ova i dalje bila zamucena.
Life happens but shit goes on
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: OpenGL problem sa pozadinom08.12.2004. u 07:37 - pre 235 meseci
Resenja se uvek lakse nace kada se uradi review koda. Zasto ne napravis programcic sa minimum koda u kojem se vidi taj problem i postujes ga ovde?
 
Odgovor na temu

SashaM
Veliki Bečkerek

Član broj: 28482
Poruke: 213
*.ptt.yu.



+1 Profil

icon Re: OpenGL problem sa pozadinom08.12.2004. u 09:46 - pre 235 meseci
U principu me resenje vise ne zanima jel sam nasao drugo. A svako moze da uradi isto pa neka proba: napravi sliku velicine 800x600x24bpp, podesi ordogonalnu projekciju, ucitaj sliku kao teksturu i prikazi je na ekran (u 800x600 rezoluciji, fullscreen). Ako iko dodje do zadovoljavajucih rezultata (bez pada kvaliteta slike) neka ostavi odgovor.
Life happens but shit goes on
 
Odgovor na temu

yooyo

Član broj: 4891
Poruke: 1101
*.sbb.co.yu.



Profil

icon Re: OpenGL problem sa pozadinom13.12.2004. u 13:56 - pre 235 meseci
gluBuild2Dmipmaps ce konvertovati texturu u 2^n oblik. Cuo sam da gluBuild2dmipmaps ima gresku kada se primenjuje na ovaj nacin pa je moguce da si nabasao na nju.

U OpenGL-u je moguce koristiti i rect texture. Procitaj specifikaciju GL_NV_texture_rectangle ili GL_EXT_texture_rectangle.

btw.. izbegavaj glDrawPixels. Prilicno je glupo da u svakom frejmu saljes kompletnu pozadinu iz sistemske memorije u video memoriju kroz jadni AGP bus. Bolje je da pozadinu jedanput ubacis u video memoriju kao texturu. Ja sam za TV broadcast player na TV Metropolis-u uploadovao svaki frejm videa kao texturu u OpenGL-u.

yooyo
 
Odgovor na temu

[es] :: 3D programiranje :: OpenGL problem sa pozadinom

[ Pregleda: 2917 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

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