Frage

Ich suche nach Einblicken in XNA auf der Xbox 360, vor allem, ob es möglich ist, vektorbasierte Float-Mathematik auf der GPU auszuführen?

Wenn es einen Weg gibt, können Sie mir den richtigen Weg weisen?

War es hilfreich?

Lösung

Ich behaupte nicht, ein Experte auf diesem Gebiet zu sein, aber ich hoffe, dass dies Ihnen einen hilfreichen Hinweis geben kann.

Ist es möglich?Ja.Sie wissen wahrscheinlich bereits, dass die GPU bei solchen Berechnungen gut ist (daher die Frage) und dass Sie die GPU tatsächlich mit XNA steuern können.Ob es Ihren Bedürfnissen entspricht oder nicht, ist eine andere Sache.

Um die GPU nutzen zu können, möchten Sie vermutlich Shader mit HLSL schreiben.Eine gute Einführung in HLSL im Kontext von XNA finden Sie unter Reimers die Sie vielleicht durchgehen möchten.Dieses Tutorial konzentriert sich insbesondere darauf, die GPU dazu zu bringen, grafikbezogenes Crunching durchzuführen, aber was Sie in die Shader schreiben, liegt bei Ihnen.Wenn Ihre vektorbasierte Float-Mathematik dem Rendern dient (und somit im GPU-Bereich bleiben kann), haben Sie Glück und können hier aufhören.

Wahrscheinlich ist das Rendern auf dem Bildschirm nicht das, wonach Sie suchen.Jetzt haben Sie in HLSL ein ziemliches Maß an Flexibilität, was Ihre Mathematik betrifft.Das System ist jedoch nicht darauf ausgelegt, die Ergebnisse an die CPU weiterzuleiten.Das wird mir langsam unklar, aber Shawn Hargreaves (ein XNA-Entwickler) sagt weiter mehr als einmal dass die Ausgabe von der GPU (außer auf dem Bildschirm gerendert) nicht trivial ist und Auswirkungen auf die Leistung hat.Das Abrufen von Daten erfordert einen Aufruf von GetData einen Pipeline-Stillstand verursachen.

Es kann also gemacht werden.Mit dem XNA-Framework können Sie Shader für den 360 (der Shader Model 3.0 und einige Erweiterungen unterstützt) schreiben Ist Es ist möglich, diese Ergebnisse zu erzielen, obwohl es für Ihre Anforderungen möglicherweise nicht effizient genug ist.

Andere Tipps

Wie oben erwähnt -. XBox360 ist durchaus in der Lage, eine Berechnung HLSL und speziell kann es Vertex und Pixel Shader Modell 3 Anweisungen und hat eine erweiterte Reihe von Anweisungen verarbeiten, die auf die Plattform spezifisch sind

Da HLSL tatsächlich Vektor-basierte Sie haben alle Werkzeuge, die Sie brauchen - Punkt, Kreuz, Vektor-Operationen und Matrix-Berechnungen. Wenn Sie Berechnungen senden an die GPU und bearbeiten wollen / verwenden, um die Ergebnisse auf der CPU Sie Textur schreiben kann und holen sie dann auf der CPU-Seite und dekodieren - es ist für Teilchen oder physikalische Wechselwirkungen (zB Wasser) sind einige die Gelegenheiten, wenn Sie könnten dies tun mögen.

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