A1274815#67
Jobban érthethő ha leírom a bementeket és a kimeneteket.
Vertex shader:
Bemenetek:
- vertex posició (xyzw formátumú fp32-es)
- vertex normál (xyz fromátumú fp32-es)
- elsődleges vertex szín, másodlagos vertex szín (RGBA formátum) (8bit fixpontos)
- textúra koordináták 0-7-ig (SM3.0-ig, SM4.0-nál már elvileg 32 lesz, de ebben nevagyok biztos, vég nincs DX10-es kártyám) (xyzw formátum)(32bit elebegő pontos)
- 16 db tetszőlegesen állítható 4x4-es fp32-es mátrix, ezek tarnsponáltjai, inverzei, inverz transponáltjai + modelview, projection és a kettő szorzata, amit mvp mátrixnak is hívnak, illetve azok transponáltjai, inverzei, inverztranszponáltjai
- vertex attributumok, vertex súlyok
- vertex shader környezeti változok
- vertex shader lokális paraméterek
(az utolsó 3 mind fp32-es xyzw formátumú)
Kimentek:
- vertex új poziciója (xyzw fp32)
- új elsődleges és másodlagos vertex szín (RGBA 8bit fx8)
- új textúra koordináták (xyzw fp32)
Pixel shader:
Bemenetek:
- különböző formátumú (RGBA, RGB, BGRA, BGR, ABGR, DXTC1-5, S3TC, VTC, LUMINANCE, ALPHA, ALPHALUMINACE, R, G, B), típusú (1D, 2D, 3D, (valamikor lesz 4D-s is, kivéve, ha a DX10-esekben már lenne), RECT, CUBEMAP), és pontosságú(fx8, fx16, fp16, fp32) textúrák, összesen 16 (SM3.0-ig, SM4.0-nál már 32)
- elsődleges és másodlagos pixel színek (RGBA fx8)
- pixel pozició (xyzw, ahol x, y, z a vs kimenetének az x, y, z,-je elosztva a w kimenettel + interpolálva, a z-t szokták mélységnek is nevezni, a w pedig a vs kimentének a w-jének a reciproka)
- interpolált textúra koordináták (xyzw fp32) 8db(SM3.0), 32 db (SM4.0)
- 16 db tetszőlegesen állítható 4x4-es fp32-es mátrix, ezek tarnsponáltjai, inverzei, inverz transponáltjai + modelview, projection és a kettő szorzata, amit mvp mátrixnak is hívnak, illetve azok transponáltjai, inverzei, inverztranszponáltjai
- pixel shader környezeti változok (xyzw/rgba fp32)
- pixel shader lokális paraméterek (xyzw/rgba fp32)