Udostępnij przez


Wprowadzenie do usługi Direct3D

Direct3D to niskopoziomowy interfejs API do rysowania prymitywów z potokiem renderowania lub wykonywania operacji równoległych przy użyciu shaderów obliczeniowych.

Co to jest Direct3D?

Direct3D to interfejs API niskiego poziomu, którego można użyć do rysowania trójkątów, linii lub punktów na ramkę albo do uruchamiania wysoce równoległych operacji na procesorze GPU.

Direct3D:

  • Ukrywa różne implementacje GPU za spójną abstrakcją. Ale nadal musisz wiedzieć, jak narysować grafikę 3D.
  • Jest przeznaczony do obsługi oddzielnego procesora specyficznego dla grafiki. Nowsze procesory GPU mają setki lub tysiące procesorów równoległych.
  • Podkreśla przetwarzanie równoległe. Skonfigurujesz kilka stanów renderowania lub obliczeń, a następnie uruchomisz operację. Nie czekasz na natychmiastową opinię z operacji. Nie mieszasz operacji procesora CPU i procesora GPU.

Których interfejsów API Direct3D można użyć?

Wybrane interfejsy API Direct3D zależą od stylu aplikacji, którą chcesz napisać.

  • Jeśli chcesz napisać aplikację platformy UWP, użyj podzbioru interfejsów API Direct3D 11, DXGI i HLSL. Aby uzyskać listę tych interfejsów API, zobacz Interfejsy API Win32 i COM dla aplikacji platformy UWP. Aby dowiedzieć się, jak napisać aplikację sklepu Windows z Direct3D 11, zobacz Tworzenie grafiki 3D za pomocą DirectX.
  • Jeśli piszesz aplikację desktopową, możesz użyć pełnego zestawu interfejsów API Direct3D 11, DXGI i HLSL.
  • Począwszy od systemu Windows 8, nie obsługujemy już aktywnie platformy XNA dla aplikacji klasycznych. Jednak aplikacje ze Sklepu Windows, aplikacje platformy UNIWERSALNEJ systemu Windows i aplikacje klasyczne mogą korzystać z pełnego zestawu interfejsów API XAudio2 i DirectXMath API. Aplikacje klasyczne mogą używać pełnego zestawu interfejsów API XInput, podczas gdy aplikacje ze Sklepu Windows i aplikacje platformy UWP mogą korzystać z większości interfejsów API XInput; aby uzyskać więcej informacji, zobacz XInput Versions.

Która wersja Direct3D?

Wybrana wersja interfejsu API Direct3D zależy od systemu operacyjnego i poziomu sprzętu, który ma być docelowy.

  • Jeśli chcesz celować w system Windows 8 lub nowszy, użyj interfejsów API Direct3D 11.
  • Używaj interfejsów API Direct3D 9 z systemem Windows XP i nowszymi wersjami. Wszystkie urządzenia obsługują interfejsy API Direct3D 9, w tym nowsze urządzenia na poziomie Direct3D 11.
  • Używaj interfejsów API Direct3D 10 z systemem Windows Vista i nowszym. Tylko sprzęt zgodny z Direct3D 10 i nowszy obsługuje interfejsy API Direct3D 10.
  • Używaj interfejsów API Direct3D 10.1 i Direct3D 11 z systemem Windows 7 lub nowszym. Można również używać interfejsów API Direct3D 10.1 i Direct3D 11 z systemem Windows Vista z dodatkiem Service Pack 2 (SP2).

Potok renderowania Direct3D

W potoku renderowania Direct3D dane przepływają z kilku źródeł, jak dopływy rzeki.

  • Niektóre części przepływu są programowalne.
  • Niektóre części mają pokrętła i tarcze.
  • Źródła danych to strumienie szeregowe pakietów (wierzchołków) lub tablice indeksowalne (zasoby cieniowania).
  • Wierzchołki i zasoby cieniowania przepływają do elementów pierwotnych, które można wzmocnić.
  • Prymitywy i zasoby shaderów są przesyłane do operacji pikseli.

Shader obliczeniowy Direct3D

Za pomocą shaderu obliczeń Direct3D wszystkie procesory GPU wykonują zadania równolegle. Zatem shader obliczeniowy działa bardziej jak staw niż rzeka.