Gerätetypen (Direct3D 9)

HALOGEN-Gerät

Der primäre Gerätetyp ist das gerätebeschleunigte Gerät, das hardwarebeschleunigte Rasterung sowie Hardware- und Softwarevertexverarbeitung unterstützt. Wenn der Computer, auf dem Ihre Anwendung ausgeführt wird, mit einem Adapter ausgestattet ist, der Direct3D unterstützt, sollte Ihre Anwendung ihn für Direct3D-Vorgänge verwenden. Direct3D-Geräte implementieren die Transformations-, Beleuchtungs- und Rasterungsmodule in der Hardware ganz oder teilweise.

Anwendungen greifen nicht direkt auf Grafikkarten zu. Sie rufen Direct3D-Funktionen und -Methoden auf. Direct3D greifen über die 3D-Verbindung auf die Hardware zu. Wenn der Computer, auf dem Ihre Anwendung ausgeführt wird, das -Messgerät unterstützt, wird die beste Leistung mithilfe eines Gerätes vom Computer "1" erzielen.

Rufen Sie createDevice mithilfe von D3DDEVTYPE HALOGEN als Gerätetyp auf, um ein 2016-Gerät _ zu erstellen.

Referenzgerät

Direct3D unterstützt einen zusätzlichen Gerätetyp, der als Referenzgerät oder Referenzraster bezeichnet wird. Im Gegensatz zu einem Softwaregerät unterstützt der Referenzraster jedes Direct3D-Feature. Dieses Gerät ist für Debugzwecke vorgesehen und daher nur auf Computern verfügbar, auf denen das DirectX SDK installiert wurde. Da diese Features aus Genauigkeits- und nicht aus Geschwindigkeits- und Software-Richtigkeits- implementiert werden, sind die Ergebnisse nicht sehr schnell. Der Referenzraster verwendet immer dann spezielle CPU-Anweisungen, ist aber nicht für Einzelhandelsanwendungen vorgesehen. Verwenden Sie den Referenzraster nur für Featuretests oder Demonstrationszwecke. Rufen Sie zum Erstellen eines Referenzgeräts die CreateDevice-Methode auf, indem Sie D3DDEVTYPE _ REF als Gerätetyp verwenden.

VSB-Geräte im Vergleich zu REF-Geräten

DIE GERÄTE (Hardware Abstraction Layer, Hardwareabstraktionsschicht) und REF-Geräte (REFerence Rasterizer) sind die beiden Haupttypen von Direct3D-Geräten. die erste basiert auf der Hardwareunterstützung und ist sehr schnell, unterstützt aber möglicherweise nicht alles. während die zweite keine Hardwarebeschleunigung verwendet, ist daher sehr langsam, unterstützt jedoch garantiert den gesamten Satz von Direct3D-Features auf die richtige Weise. Im Allgemeinen müssen Sie immer nur HALOGEN-Geräte verwenden. Wenn Sie jedoch ein erweitertes Feature verwenden, das ihre Grafikkarte nicht unterstützt, müssen Sie möglicherweise auf REF zurückfallen.

Das andere Mal, wenn Sie REF verwenden möchten, ist, wenn das HALOGEN-Gerät ungewöhnliche Ergebnisse erzeugt. Das heißt, Sie sind sicher, dass Ihr Code richtig ist, aber das Ergebnis ist nicht das, was Sie erwarten. Das REF-Gerät verhält sich garantiert richtig, daher sollten Sie Ihre Anwendung auf dem REF-Gerät testen und prüfen, ob das ungewöhnliche Verhalten fortgesetzt wird. Wenn nicht, bedeutet dies, dass entweder (a) Ihre Anwendung davon ausgegangen wird, dass die Grafikkarte etwas unterstützt, was sie nicht unterstützt, oder (b) es sich um einen Treiberfehler handelt. Wenn es immer noch nicht mit dem REF-Gerät funktioniert, ist dies ein Anwendungfehler.

Hardware- und Software-Scheitelpunktverarbeitung

Hardware- und Software-Scheitelpunktverarbeitung gilt nur für HALOGEN-Geräte. Wenn Sie Scheiteltices durch die Pipeline pushen, müssen sie transformiert (von der Welt, den Ansichts- und Projektionsmatrizen) und (von den integrierten D3D-Beleuchtungen) beleuchtet werden. Diese Verarbeitungsphase wird als T&L (für Transformation & Lighting) bekannt. Hardwarevertexverarbeitung bedeutet, dass dies in der Hardware erfolgt, wenn die Hardware sie unterstützt. - Software scheitelpunktverarbeitung erfolgt durch Software. Die allgemeine Vorgehensweise besteht in der Erstellung eines Hardware-T&L-Geräts. Wenn dies fehlschlägt, versuchen Sie Mixed, und wenn dies fehlschlägt, versuchen Sie Software. (Wenn die Software ausfällt, geben Sie auf, und beenden Sie sie mit einem Fehler.)

Direct3D-Geräte