HTML

gondolataim elsősorban játékfejlesztésről

Elsősorban játékfejlesztés magyarul: az enginem fejlesztése során felmerülő problémák, ötletek, tévutak stb dokumentálása, amely számomra és talán mások számára is hasznos lehet később Másodsorban gondolatok szavakban...

Kapcsolat:
aalberik 'at' gmail 'dot' com

Haletető

Galéria

Címkék

Összes

Linkblog

Naptár

december 2024
Hét Ked Sze Csü Pén Szo Vas
<<  < Archív
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

A 3D gyorsítók textúrakezelése 2

2009.12.13. 23:06 :: syam

A folytatásban először ismerkedjünk egy ma már (szerencsére) alig használatos textúra típussal az ún. texture rectangle-vel. Manapság ezeket felváltották az NPOT méretű textúrák, melyekkel ellentétben sok korláttal rendelkeznek.

  • Csak az alábbi textúra címzésre képesek: GL_CLAMP, GL_CLAMP_TO_EDGE és GL_CLAMP_TO_BORDER. Ez utóbbi egy kicsit zavarba ejtő, hiszen
  • A textúráknak nincs szélük.
  • A textúra koordinátákat közvetlenül címként kell megadnunk vagyis felbontástól függően.
  • Nem támogat mipmap-elést.

Jelentősége abban állt, hogy minőségvesztés és memórapazarlás nélkül közvetlenül lehetett tetszőleges méretű képeket felhasználni.

Ezután ismerkedjünk meg a TMU egy érdekes funkcionalitásával, amely a hangzatos shadow nevet kapta. Ez azon alapul, hogy a TMU-k (többsége) képesek a címzés (és talán a szűrés) után elvégezni még egy műveletet, egy összehasonlítást. Ezt az összehasonlítást a GL_TEXTURE_COMPARE_MODE paraméterrel szabályozhatjuk. Amennyiben a funkciót ki szeretnénk kapcsolni a GL_NONE-re kell állítanunk.
A másik lehetőség az hogy az összehasonlítást a mintavételező textúra koordináta R komponense és a mintavételezett texel között hajtsa végre. Ekkor GL_COMPARE_R_TO_TEXTURE-re kell állítanunk a funkciót.
Azt, hogy a vizsgálat iránya milyen legyen a GL_TEXTURE_COMPARE_FUNC paraméter szabályozza ugyanúgy, mint a mélységi teszt vagyis lehet GL_LEQUAL, GL_GEQUAL, GL_LESS, GL_GREATER, GL_EQUAL, GL_NOTEQUAL, GL_ALWAYS és GL_NEVER.
 

Hogyha az összehasonlítás bekapcsolt állapotban van, akkor

  • az aktuális textúrának mélységi textúrának kell lennie (egyébként az összehasonlítás elmarad)
  • nem használható mipmap
  • nem használható 3D texture
  • cube map használható azonban nem minden GPU rendelkezik ezzel a képességgel.
  • a TMU nem az eredeti texel értékét, hanem az összehasonlítás eredményét fogja visszaadni. Azt, hogy milyen formában a mélységi textúra beállításakor adhatjuk meg (itt csak megemlítjük, hogy GL_ALPHA, GL_LUMINANCE és GL_INTENSITY lehet).

NVidia platformon ha a textúraszűrést GL_LINEAR-ra kapcsoljunk, ingyen kapunk egy 2x2 bilineáris szűrést, amely némi segítséget jelent a soft shadow implementálásához.

 

Szólj hozzá!

Címkék: npot texture rectangle tmu shadow map

A bejegyzés trackback címe:

https://sakura7.blog.hu/api/trackback/id/tr171595428

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása