Udostępnij za pośrednictwem


Systemy współrzędnych (Direct3D 10)

Układy współrzędnych direct3D 10 są definiowane dla pikseli i texels.

Różnice między direct3D 9 i Direct3D 10:

  • Funkcja Direct3D 10 definiuje lewy górny róg lewego górnego piksela jako początek elementu docelowego renderowania.
  • Direct3D 9 definiuje środek lewego górnego piksela jako początek elementu docelowego renderowania.

 

system współrzędnych pikseli

system współrzędnych Texel

Tematy pokrewne

Układ współrzędnych pikseli

Układ współrzędnych pikseli w trybie Direct3D 10 definiuje początek elementu docelowego renderowania w lewym górnym rogu. jak pokazano na poniższym diagramie. Centra pikseli są przesunięte przez (0,5f,0,5f) z lokalizacji całkowitych.

diagram układu współrzędnych pikseli w trybie direct3d 10

Układ współrzędnych pikseli dla direct3D 9

Poniżej przedstawiono układ współrzędnych pikseli dla direct3D 9, który zdefiniował źródło lub element docelowy renderowania jako środek lewego górnego piksela (0,5,0,5) od lewego górnego rogu, jak pokazano na poniższym diagramie. W trybie Direct3D 9 centra pikseli znajdują się w lokalizacjach całkowitych.

diagram układu współrzędnych pikseli w trybie direct3d 9

Układ współrzędnych Texel

Układ współrzędnych texel ma swoje pochodzenie w lewym górnym rogu tekstury, jak pokazano na poniższym diagramie. Dzięki temu renderowanie tekstur wyrównanych do ekranu jest proste (w trybie Direct3D 10), ponieważ układ współrzędnych pikseli jest wyrównany do układu współrzędnych texel.

diagram układu współrzędnych texel

Układ współrzędnych Texel

Współrzędne tekstury są reprezentowane przy użyciu znormalizowanej lub skalowanej liczby; każda współrzędna tekstury jest mapowana na określony texel w następujący sposób:

Dla znormalizowanej współrzędnej:

  • Próbkowanie punktów: Texel # = floor(U * Width)
  • Próbkowanie liniowe: Lewo Texel # = floor(U * Width), Right Texel # = Left Texel # + 1

Dla współrzędnej skalowanej:

  • Próbkowanie punktów: Texel # = floor(U)
  • Próbkowanie liniowe: Lewo Texel # = floor(U - 0,5), Right Texel # = Left Texel # + 1

Gdzie szerokość, to szerokość tekstury (w texels).

Zawijanie adresów tekstury występuje po obliczeniu lokalizacji texel.

zasoby (Direct3D 10)