Udostępnij przez


Przestarzałe funkcje (Direct3D 10)

Lista funkcji dostępnych w wersji Direct3D 10 jest tutaj. Ta strona zawiera listę funkcji Direct3D 9, które nie są już obsługiwane w trybie Direct3D 10.

Największe zmiany funkcji w trybie Direct3D 10 to:

  • Funkcja Direct3D 10 nie obsługuje już potoku przekształcania funkcji stałych i oświetlenia.
  • Program Direct3D 10 nie obsługuje już blendera tekstury stałej funkcji (czasami nazywanego cieniatorem pikseli o stałej funkcji).
  • Funkcja Direct3D 10 implementuje nowe reguły rasteryzacji, które są prostsze i czystsze niż starsze reguły GDI implementowane w trybie Direct3D 9. Na przykład kontrolka ostatniego piksela dla wierszy nie jest już obsługiwana.

Poniżej znajduje się pełna lista funkcji w wersji Direct3D 9, które zostały uznane za przestarzałe w wersji Direct3D 10.

  • Alpha blend. Mieszanka alfa jest teraz zaprogramowana niezależnie od mieszanki kolorów. Direct3D 10 dodaje przełącznik alfa-blend-enable, który jest domyślnie włączony. Aby uzyskać więcej informacji, zobacz State Objects (Direct3D 10).

  • test alfa. Test alfa jest zachowaniem pikseli funkcji stałej dla direct3D 9. Test alfa jest przenoszony do programowalnych cieniowania pikseli dla direct3D 10 i nowszych. Aby uzyskać informacje na temat emulowania funkcji testu alfa Direct3D 9 w wersji Direct3D 10 i nowszych, zobacz przykład FixedFuncEMU w zestawie SDK DirectX dla czerwca 2010 r..

  • opcje trybu blend. Funkcja BOTHSRCALPHA została usunięta z D3D10_BLEND, ponieważ jest ona nadmiarowa z funkcją BOTHINVSRCALPHA. Aby uzyskać więcej informacji, zobacz D3D10_BLEND.

  • Blokuj formaty kompresji. Nie ma rozróżnienia między wstępnie pomnożonym alfa lub niewstępnie pomnożonym alfa w trybie Direct3D 10. Te formaty Direct3D 9 są mapowane na te formaty Direct3D 10:

    Direct3D 9 Direct3D 10
    DXT1 BC1*
    DXT2,DXT3 BC2*
    DXT4,DXT5 BC3*

     

    Aby uzyskać dodatkowe informacje, zobacz Block Compression (Direct3D 10).

  • Płaszczyzny klipów. Zamiast używać płaszczyzn klipów, Direct3D 10 implementuje odległości klipów i odległości przycinania, z maksymalnie 8 składnikami w maksymalnie 2 elementach atrybutów wierzchołka. Aby uzyskać dodatkowe informacje, zobacz Semantyka (DirectX HLSL). próbka FixedFuncEMU zawiera przykład emulacji płaszczyzn klipów w trybie Direct3D 10.

  • dithering. Funkcja Direct3D 10 nie obsługuje zapisywania danych rozdzielonych do obiektu docelowego renderowania.

  • przekształcanie funkcji stałej i potok oświetlenia w niedostępnej. Zamiast tego należy użyć cieniowania. Aby uzyskać dodatkowe informacje, zobacz Etapy cieniowania (Direct3D 10).

  • blender tekstury funkcji stałej (nazywanej również cieniatorem pikseli stałej funkcji). Zamiast tego należy użyć cieniowania. Aby uzyskać dodatkowe informacje, zobacz Etapy cieniowania (Direct3D 10).

  • tryby wypełniania zostały zmienione. Funkcja Direct3D 10 implementuje tryby wypełnienia stałych i szkieletowych. D3DFILLMODE punkt został usunięty, w razie potrzeby użyj cieniowania geometrii, aby emulować tryb punktu. próbka FixedFuncEMU zawiera przykład emulowania punktu D3DFILLMODE w trybie Direct3D 10. Aby uzyskać dodatkowe informacje, zobacz D3D10_FILL_MODE i etapy cieniowania (Direct3D 10).

  • formaty. Sprzęt może używać formatów udostępnianych przez interfejs API. Formaty luminacji nie są już implementowane.

  • filtrowanie mipmap. Usunięto opcję wybierania trybu bez filtrowania. Zamiast tego należy użyć tekstury z tylko jedną mipmapą lub ustawić stan próbkatora MaxLOD na 0. Aby uzyskać dodatkowe informacje, zobacz State Objects (Direct3D 10).

  • Palettes. Aplikacje powinny zamiast tego używać zależnej tekstury do odczytu.

  • modele cieniowania pikseli i wierzchołków: 1_x, 2_x i 3_0. Funkcja Direct3D 10 obsługuje model cieniowania 4. Aby uzyskać dodatkowe informacje, zobacz Shader Model 4.

  • Punkt sprites. Zamiast tego użyj cieniowania geometrii. Aby uzyskać dodatkowe informacje, zobacz Etapy cieniowania (Direct3D 10).

  • reguły rasteryzacji. Starsze reguły rasteryzacji linii GDI są zastępowane czystszymi, prostszymi regułami. Kontrolka ostatniego piksela dla wierszy nie jest już obsługiwana. Aby uzyskać dodatkowe informacje, zobacz Reguły rasteryzacji (Direct3D 10).

  • tryby cieniowania . D3DSHADEMODE (które obsługują cieniowanie flat/gouraud/phong) zostało usunięte. Direct3D 10 implementuje dwa modyfikatory interpolacji dla danych wyjściowych cieniowania wierzchołków. Zobacz Przykład FixedFuncEMU, aby zapoznać się z przykładem emulowania trybów gouraud Direct3D 9 i płaskiego cieniowania w trybie Direct3D 10.

  • instrukcji texldp. Aplikacja musi zaimplementować przewidywane obciążenie teksturą z dodatkowymi instrukcjami HLSL. Aby uzyskać dodatkowe informacje, zobacz Reference for HLSL (Dokumentacja dla HLSL). próbka FixedFuncEMU zawiera przykład emulacji texldp w trybie Direct3D 10.

  • stan tekstury indeksu współrzędnych (TCI) tekstury (D3DTSS_TEXCOORDINDEX) nie jest już obsługiwany.

  • wentylatory Trójkąt. Aplikacja musi konwertować istniejące wentylatory trójkątne na listy trójkątów lub paski trójkątów. Aby emulować niektóre zachowania przy użyciu funkcji DrawPrimitive w starszych interfejsach API, spróbuj użyć metody DrawIndexed w trybie Direct3D 10. Aby uzyskać dodatkowe informacje, zobacz Topologie pierwotne (Direct3D 10).

  • buforowanie W. Obsługa sprzętu nie jest gwarantowana; Zaleca się, aby zamiast tego aplikacja używa głębokości o wysokiej precyzji. Aby uzyskać dodatkowe informacje, zobacz Configuring Depth-Stencil Functionality (Direct3D 10).

  • Tryby zawijania (zawijanie współrzędnych tekstury). Zawijanie adresów tekstury (takie jak zawijanie, lustro, zacisk itp.) nadal istnieje. Zobacz D3D10_SAMPLER_DESC i D3D10_TEXTURE_ADDRESS_MODE.

funkcje interfejsu API (Direct3D 10)