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

Pomoć oko mipmapping tehnike.

[es] :: 3D programiranje :: Pomoć oko mipmapping tehnike.

[ Pregleda: 3034 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Marko A.
Marko Anđelić

Član broj: 83975
Poruke: 4
*.crnagora.net.



Profil

icon Pomoć oko mipmapping tehnike.07.02.2006. u 15:01 - pre 221 meseci
Problem:
Želim da u (softverskom) 3D endžinu (koji razvijam) ugradim podršku za mipmapping. Već sam izašao na kraj sa bilinearnim filtriranjem i sličnim tehnikama. Poznata mi je čitava "multum in parvo" priča, kako i zašto. Problem je sljedeći.

Pitanje:
Kako da izračunam "pixel to texel ratio" odnosno kako da izračunam koje "nivoe" treba da upotrijebim pri crtanju piksela? Jednostavnije, potrebna mi je funkcija koja mi "per pixel" daje odgovor na pitanje koji nivo da koristim.

Napomena:
Ako je data tekstura dimenzija 2 na n, tada pod nivoom podrazumijevam jednu mapu iz "mipmap texture chain"-a koji ima (naravno) n mapa.

Hvala.
 
Odgovor na temu

yooyo

Član broj: 4891
Poruke: 1101
*.dyn.optonline.net.



Profil

icon Re: Pomoć oko mipmapping tehnike.07.02.2006. u 18:33 - pre 221 meseci
Ako se dobro secam.... pogledaj derivate, tj. delte mapping koordinata susednih pixela. Ako je manji od 1 onda koristis najvecu mipmapu, a ako je veci od 1 onda ga valjda zaokruzis i shiftujes u desno dok ne postane 0. Broj shiftovajna je mipmapa koja ti treba.

yooyo
 
Odgovor na temu

eva01

Član broj: 49540
Poruke: 120
*.ptt.yu.

Jabber: eva01@jabber.3gnt.org


Profil

icon Re: Pomoć oko mipmapping tehnike.08.02.2006. u 01:05 - pre 221 meseci
Pored ovoga što ti je Yooyo rekao, tražio si da ti rutina per pixel daje mipmapu, mipmapa se menja po trouglu (kao i koraci po uv koordinatama).
 
Odgovor na temu

Marko A.
Marko Anđelić

Član broj: 83975
Poruke: 4
*.crnagora.net.



Profil

icon Re: Pomoć oko mipmapping tehnike.08.02.2006. u 10:28 - pre 221 meseci
Citat:
eva 01: Pored ovoga što ti je Yooyo rekao, tražio si da ti rutina per pixel daje mipmapu, mipmapa se menja po trouglu (kao i koraci po uv koordinatama).


Interesantno. Jasno da se koraci mijenjaju po trouglu, no znači li to da mipmapu tj. nivo biram "per triangle"? Nisam siguran da je to ono što tražim.

Da se mipmapa mijenja po trouglu stvari bi bile mnogo lakše. Tada bih (projektovanu) površinu trougla mogao da uporedim sa veličinom teksture. To je inače pristup na koji sam naišao u knjizi:
Tricks of the 3D Game Programming Gurus - Advanced 3D Graphics and Rasterization by: André LaMothe

Guglovanjem sam došao do dokumenta: www.sussex.ac.uk/Units/vlsi/mipmap.pdf
Priznajem međutim, da mi postupci izloženi u radu nisu potpuno jasni. Ukoliko bi neko bio ljubazan da ih elaborira u ovoj temi...
 
Odgovor na temu

eva01

Član broj: 49540
Poruke: 120
*.ptt.yu.

Jabber: eva01@jabber.3gnt.org


Profil

icon Re: Pomoć oko mipmapping tehnike.08.02.2006. u 14:06 - pre 221 meseci
Korake proračunavaš jednom za svaki trougao. To automatski znači da i mipmapu biraš samo jednom za svaki trougao. Možeš je odrediti i na osnovu površine trougla, niko ti ne brani. Verovatno ima i neke prednosti.

Dakle razlog za korišćenje mip-mapa, je to što su ti koraci veći od 1, što znači da će neki texteli biti preskočeni. Ukoliko nema promene koraka, nema ni promene mipmape.

Možda želiš da radiš i perspektivnu korekciju prilikom mapiranja. Kada vršiš korekciju koraka, logično možeš i da promeniš mipmapu. Dakle u ovom slučaju bi imao promene mipmape u toku crtanja trougla. Možda je to ono što unosi zabunu.
 
Odgovor na temu

Marko A.
Marko Anđelić

Član broj: 83975
Poruke: 4
*.crnagora.net.



Profil

icon Re: Pomoć oko mipmapping tehnike.08.02.2006. u 21:41 - pre 221 meseci
Upotreba perspektivne korekcije se podrazumijeva. Nju sam već uspješno ugradio. Dakle ostaje početno pitanje: Kako u takvom slučaju izračunati "nivo" koji treba da koristim?

Da li bi bilo korektno sljedeće rješenje?
Za svaki piksel na koordinatama (x, y):
1. Izračunati (u1, v1) koordinate odgovarajućeg teksela.
2. Izračunati (u2, v2) koordinate teksela za susjedni piksel tj. piksel čije su koordinate (x + 1, y).
3. j = cio dio od (u2 - u1). Gdje je j tražena vrijednost tj. ukazuje na mapu koju treba da koristimo.

Hvala na sugestijama.
 
Odgovor na temu

eva01

Član broj: 49540
Poruke: 120
*.ptt.yu.

Jabber: eva01@jabber.3gnt.org


Profil

icon Re: Pomoć oko mipmapping tehnike.09.02.2006. u 00:01 - pre 221 meseci
Perspektivnu korekciju nisam radio, pa pojma nemam da li su se ljudi cimali da menjaju mipmapu X puta za jedan trougao, ali korak pod 3 ti nije dobar.

vidi ovako:

j<1 - originalna mapa
1<j<2 - prva mipmapa
2<j<4 - druga
4<j<8 - treca
.
.
 
Odgovor na temu

Marko A.
Marko Anđelić

Član broj: 83975
Poruke: 4
*.crnagora.net.



Profil

icon Re: Pomoć oko mipmapping tehnike.09.02.2006. u 10:37 - pre 221 meseci
Citat:
eva 01: Perspektivnu korekciju nisam radio, pa pojma nemam da li su se ljudi cimali da menjaju mipmapu X puta za jedan trougao, ali korak pod 3 ti nije dobar.

vidi ovako:

j<1 - originalna mapa
1<j<2 - prva mipmapa
2<j<4 - druga
4<j<8 - treca
.
.


Slažem se sa ispravkom vezanom za 3. korak. U pitanju je moj previd.

Nakon pregleda dokumenta www.sussex.ac.uk/Units/vlsi/mipmap.pdf došao sam do sljedećeg postupka:

Neka su dati pikseli:
P sa koordinatama (x, y).
A sa koordinatama (x+1, y) i
B sa koordinatama (x, y+1).

Neka je r1 = sqrt(sx * sx + tx * tx).
Neka je r2 = sqrt(sy * sy + ty * ty).
(za tumačenje P, A, B, sx, tx, sy, ty vidi Fig. 2 u gore navedenom dokumentu).

Tada je j = max(r1, r2). Gdje je j texel : pixel minification ratio.
Na kraju traženi nivo n dobijamo po formuli: n = log2(j).
Da li smo bliže rješenju?
 
Odgovor na temu

eva01

Član broj: 49540
Poruke: 120
*.ptt.yu.

Jabber: eva01@jabber.3gnt.org


Profil

icon Re: Pomoć oko mipmapping tehnike.10.02.2006. u 13:00 - pre 221 meseci
To je to.
 
Odgovor na temu

[es] :: 3D programiranje :: Pomoć oko mipmapping tehnike.

[ Pregleda: 3034 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

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