Direct3D

Direct3D

Informacja
Opracowany przez Microsoft
System operacyjny Microsoft Windows
Środowisko Okna
Rodzaj renderer 3d
Polityka dystrybucji osadzone w systemie Windows
Stronie internetowej www.microsoft.com/windows/directx/default.mspx

Direct3D to biblioteka oprogramowania z serii Microsoft DirectX . Direct3D jest używany tylko w wielu systemach operacyjnych Microsoft Windows ( Windows 95 i nowszych), a także na konsoli Xbox . Direct3D służy do tworzenia grafiki trójwymiarowej dla aplikacji, w których ważna jest wydajność, takich jak gry wideo . Direct3D pozwala również aplikacjom działać na pełnym ekranie, a nie osadzonym w oknie, chociaż nadal mogą działać w oknie, jeśli są zaprogramowane do tego celu. Direct3D wykorzystuje akcelerację sprzętową, jeśli jest dostępna za pośrednictwem karty graficznej.

Direct3D to interfejs API 3D . Oznacza to, że zawiera dużą liczbę instrukcji dotyczących wyświetlania 3D, a bardzo niewiele instrukcji wyświetlania 2D . Firma Microsoft stale aktualizuje Direct3D, aby umożliwić korzystanie z najnowszych technologii dostępnych w kartach graficznych 3D. Direct3D zapewnia pełną emulację oprogramowania do obliczeń wierzchołków , ale nie zapewnia emulacji oprogramowania do obliczeń pikseli dla funkcji niedostępnych na poziomie sprzętowym. Na przykład, jeśli oprogramowanie zaprogramowane za pomocą Direct3D wymaga shaderów pikseli, a karta graficzna w komputerze użytkownika nie zapewnia tej funkcji, Direct3D nie będzie jej emulować . W rezultacie program prawdopodobnie zakończy działanie z komunikatem o błędzie.

Konkurentami Direct3D są biblioteki respektujące standard OpenGL . Istnieje wiele funkcji i problemów, z którymi nie zgadzają się zwolennicy obu interfejsów API.

Historia wersji

Direct3D został wprowadzony w wersji 3.0 DirectX. Pierwotnie był to przede wszystkim silnik renderujący typu szene graph o dość wysokim poziomie z wysoką wydajnością akceleracji oprogramowania, której towarzyszy bardzo niski poziom oparty na podstawowych buforach wykonania . Żaden z nich tak naprawdę nie znalazł odbiorców wśród programistów, którzy albo woleli napisać własne zarządzanie scenami dostosowane do ich gry, albo odziedziczyli po ich silniku oprogramowania 3D, albo uważali, że bufory wykonania są raczej niejasne.

DirectX w wersji 4.0 nie został wydany, pozostawiając miejsce bezpośrednio na wersję 5.

Direct3D 5.0 ​​przyniósł bardzo krytykowaną „makijaż” buforów wykonania w postaci rysowaniaprymitywnych poleceń, które wydawały się bardziej racjonalne dla przeciętnego programisty.

Direct3D 6.0 było ulepszeniem Direct3D 5 o nowe koncepcje, takie jak multiteksturowanie (które po raz pierwszy pojawiło się w OpenGL i używane w grach takich jak Quake II ) lub środowisko bumpmappingu . Skompresowane formaty tekstur wymyślone przez S3 ( S3TC  (en) ) zostały zintegrowane z Direct3D i zaadoptowane przez wszystkich założycieli procesorów 3D.

W wersji 7.0 Direct3D wprowadzono specyficzny format tekstury (DirectDraw Surface). Ta wersja jest również pierwszą wersją Direct3D obsługującą funkcje sprzętowe transformacji i oświetlenia nowych kart graficznych GeForce 256. (Pojęcie przyspieszonej transformacji i oświetlenia istnieje od dawna w graficznych stacjach roboczych, które wykorzystują np. profesjonalne wersja OpenGL). Pojawiły się inne koncepcje, takie jak cubemapping (pozwalający na symulację odbić elementów kulistych).

O ile Direct3D od dawna uważano za trudny w użyciu, DirectX w wersji 8.0 rozwiązał wiele problemów związanych z użytecznością, których obawiali się programiści i szybko stał się preferowanym interfejsem API do tworzenia gier w systemie Windows (OpenGL zachowuje monopol na innych platformach). Direct3D 8 zawierał wiele bardzo zaawansowanych funkcji do wyświetlania 3D, takich jak Vertex Shader , Pixel Shader . Ta wersja zawierała również podstawową bibliotekę programistyczną dla konsoli Xbox, która zawierała Geforce 3, pierwszy układ graficzny, który fizycznie implementował piksele i shadery wierzchołków .

Wraz z wydaniem DirectX w wersji 9.0, Direct3D został zintegrowany z komponentem oprogramowania o nazwie Direct Graphics. Direct Graphics miał być kombinacją DirectDraw i Direct3D, ale w rzeczywistości był tylko Direct3D z kilkoma dodatkowymi funkcjami DirectDraw. Większość ludzi nadal odnosi się do Direct Graphics, nazywając je Direct3D. Ta nazwa została porzucona jakiś czas po jej wprowadzeniu przez Microsoft.

Direct3D w wersji 9.0 dodał nową wersję High Level Shader Language , z obsługą oświetlenia o wysokim zakresie dynamiki dzięki zwiększonej precyzji shaderów i formatom tekstur zmiennoprzecinkowych. Wprowadzono również możliwość korzystania z wielu jednoczesnych powierzchni renderujących (MRT) oraz indeksowania wierzchołków ( bufory indeksowe ).

Wersja 10 stanowi duży przełom w stosunku do starszych modeli, rezygnując z kompatybilności ze starszymi wersjami, polegając głównie na prostocie programowania i wprowadzając znaczny zestaw nowych funkcji, takich jak shadery geometrii i lepsze instancje . Ta wersja Direct3D jest dostępna i zgodna tylko z systemem Windows Vista .

Wersja 11 została ogłoszona na rok 2009. Release Candidate systemu Windows 7 zawiera obsługę D3D11. D3D11 zapewnia obsługę teselacji , lekkiego renderowania procesów i shaderów obliczeniowych konkurujących z CUDA , ATI Stream i OpenCL firmy Nvidia .

Powiązane narzędzia

DirectX jest dostarczany z D3DX, biblioteką narzędzi zaprojektowanych do wykonywania typowych obliczeń matematycznych i kilku bardziej skomplikowanych zadań, takich jak kompilacja lub montaż tekstur używany do programowania grafiki 3D. Zawiera również kilka klas, które ułatwiają pracę z modelami 3D i np . układami cząstek . D3DX jest dostarczany jako biblioteka dołączana dynamicznie (DLL) lub jako biblioteka statyczna (czyli zawarta w pliku wykonywalnym).

DXUT (zwany także w języku angielskim przykładowym frameworkiem ) to warstwa ustanowiona na szczycie API Direct3D. Ta warstwa ma na celu pomóc programiście spędzać mniej czasu na powtarzalnych zadaniach, takich jak tworzenie okna, tworzenie urządzenia, przetwarzanie komunikatów systemu Windows i manipulowanie zdarzeniami urządzenia.

Uwagi i referencje

  1. Lista podsumowująca nowe wersje znajduje się na tej stronie: Direct3D 10 o zmianie perspektywy lub również na tej stronie Hardware.fr lub jeszcze lepiej na Présence-pc.com
  2. Julien Jay, „  Windows 7: test  ” , na clubic.com ,22 października 2009(dostęp 4 września 2020 r . ) .