Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
HAL-Gerät
Der primäre Gerätetyp ist das Hal-Gerät, das hardwarebeschleunigte Rasterung sowie Hardware- und Softwarevertexverarbeitung unterstützt. Wenn der Computer, auf dem Ihre Anwendung ausgeführt wird, mit einem Anzeigeadapter ausgestattet ist, der Direct3D unterstützt, sollte die Anwendung sie für Direct3D-Vorgänge verwenden. Direct3D-Hal-Geräte implementieren alle oder einen Teil der Transformation, Beleuchtung und Rasterung von Modulen in der Hardware.
Anwendungen greifen nicht direkt auf Grafikkarten zu. Sie rufen Direct3D-Funktionen und -Methoden auf. Direct3D greift über die Hal auf die Hardware zu. Wenn der Computer, auf dem Ihre Anwendung ausgeführt wird, die Hal unterstützt, erhält sie die beste Leistung mithilfe eines Hal-Geräts.
Rufen Sie zum Erstellen eines Hal-Geräts CreateDevice mithilfe von D3DDEVTYPE_HAL als Gerätetyp auf.
Referenzgerät
Direct3D unterstützt einen zusätzlichen Gerätetyp, der als Referenzgerät oder Referenzrasterizer bezeichnet wird. Im Gegensatz zu einem Softwaregerät unterstützt der Referenzrasterizer jedes Direct3D-Feature. Dieses Gerät soll für Debuggingzwecke verwendet werden und ist daher nur auf Computern verfügbar, auf denen das DirectX SDK installiert wurde. Da diese Features für Genauigkeit und nicht für Geschwindigkeit implementiert werden und in der Software implementiert werden, sind die Ergebnisse nicht sehr schnell. Der Referenzrasterizer verwendet wann immer möglich spezielle CPU-Anweisungen, ist jedoch nicht für Einzelhandelsanwendungen vorgesehen. Verwenden Sie den Referenzrasterizer nur für Featuretests oder Demonstrationszwecke. Rufen Sie zum Erstellen eines Referenzgeräts CreateDevice--Methode auf, indem Sie D3DDEVTYPE_REF als Gerätetyp verwenden.
HAL im Vergleich zu REF-Geräten
HAL-Geräte (Hardware Abstraction Layer) 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, aber kann nicht alles unterstützen; während der zweite keine Hardwarebeschleunigung verwendet, ist also sehr langsam, aber garantiert, dass die gesamte Gruppe von Direct3D-Features korrekt unterstützt wird. Im Allgemeinen müssen Sie nur HAL-Geräte verwenden, aber wenn Sie ein erweitertes Feature verwenden, das Ihre Grafikkarte nicht unterstützt, müssen Sie möglicherweise auf REF zurückgreifen.
Das andere Mal, wenn Sie REF verwenden möchten, ist, wenn das HAL-Gerät seltsame Ergebnisse erzeugt – d. h., 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 können Sie Ihre Anwendung auf dem REF-Gerät testen und sehen, ob das seltsame Verhalten weiterhin besteht. Wenn dies nicht der Fall ist, bedeutet dies, dass ihre Anwendung entweder (a) davon ausgeht, dass die Grafikkarte etwas unterstützt, das sie nicht unterstützt, oder (b) es handelt sich um einen Treiberfehler. Wenn es immer noch nicht mit dem REF-Gerät funktioniert, handelt es sich um einen Anwendungsfehler.
Hardware vs. Software Vertex Processing
Hardware im Vergleich zur Softwarevertexverarbeitung gilt nur für HAL-Geräte. Wenn Sie Scheitelpunkte durch die Pipeline schieben, müssen sie (von der Welt, Ansicht und Projektionsmatrizen wiederum) und beleuchtet werden (von D3D integrierten Lichtern) - diese Verarbeitungsstufe wird als T&L (für Transformation & Beleuchtung) bezeichnet. Die Hardwarevertexverarbeitung bedeutet, dass dies in der Hardware erfolgt, wenn die Hardware sie unterstützt; ergo, software vertex processing is software. Die allgemeine Vorgehensweise besteht darin, zuerst ein Hardware-T-&L-Gerät zu erstellen. Wenn dies fehlschlägt, versuchen Sie Mixed, und wenn dies fehlschlägt, versuchen Sie, Software zu versuchen. (Wenn Software fehlschlägt, geben Sie mit einem Fehler auf und beenden Sie sie.
Verwandte Themen