Frage

Ich entwickle eine 3D-Anwendung mit DirectX 10 und ich frage mich, wie der tackeling des Shadermanagements ist.

Ist es am effektivsten alle Shadern vorzuladen es beim Start der Anwendung sind und dann nutzen sie je nach Bedarf oder Fährt dieser Zug die Ressourcen der Hardware, wenn die Zahl höher wird.

Auch frage ich mich, ob es eine Geschwindigkeit Überlegung ist die Wiedergabe von Shader, so dass der Shader-Schalter minimiert werden.

bestellen
War es hilfreich?

Lösung

Ich habe nicht mit DX10, nur DX9 gearbeitet, aber ich vermute, diese Dinge sind immer noch die gleiche.

Abhängig von Ihrer Anwendung, können Sie tatsächlich Shadern zur Laufzeit generieren (viele aktuelle anspruchsvolle 3D-Spiele tun dies).

vorspannen Shadern keine schlechte Idee ist, je nachdem, ob Sie Shadern erzeugen, wie viele es sind, was Ihr Gedächtnis Überlegungen sind - es hängt davon ab. Um jedoch ein Shader-Vorbelastung (womit ich nehme an, Sie meinen die ID3DXEffect Instanz) dauert nur Speicher zur Laufzeit, keine CPU-Auslastung.

Bestellung von Shader ist eine gute Idee. In der Regel durch Materialsortierung ist eine gute Idee, weil Shadern Schalt einigen Aufwand tut entstehen (nicht übermäßig, aber spürbar, je nach Komplexität Ihrer Anwendung).

Für Ihre drawcalls Sortierung, dies lesen: http://realtimecollisiondetection.net/blog/?p = 86

Andere Tipps

In D3D10 alle Geräteressourcen virtualisiert werden, damit Sie nicht von ihnen laufen. Natürlich können Sie immer noch die physischen Ressourcen auf der Karte erschöpft und viel Dresche verursachen, wenn Sie darauf achten, nicht auf das, was Sie tun.

Darüber hinaus haben sie den Gerätezustand verändert signifikant die Kosten der Schaltzustand zu reduzieren, einschließlich Shadern.

Aber was Sie wirklich fragen, ist „ist Methode X schneller als Methode Y für meine Anwendung?“ und obwohl D3D10 staatliche Verwaltung vereinfacht Zustand schneller zu machen Umschalten der einzige Weg, um die oben gestellte Frage zu beantworten, ist eine Leistungsmessung zu tun mit Sie Anwendung und Sie Daten.

Die realtimecollectiondetection.net Blog-Post spricht nur über Ihre Draw Anrufe zu sortieren. Das wird zu weniger Zustand Umschalten führen. Es spielt keine Rolle, wie schnell Zustand Schalt ist, weniger davon zu tun ist immer schneller. Also das ist eine gute allgemeine Beratung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top