Ich möchte mein Spiel mit einem der hqx-Filter (hq2x, hq3x oder hq4x) oder einem xBR-Filter in einem Shader skalieren .
Wie kann ich das in XNA 4.0 und SM3 machen?
Randnotiz: Diese Frage wurde stark bearbeitet, um das zu werden, was sie jetzt ist.
Ich möchte mein Spiel mit einem der hqx-Filter (hq2x, hq3x oder hq4x) oder einem xBR-Filter in einem Shader skalieren .
Wie kann ich das in XNA 4.0 und SM3 machen?
Randnotiz: Diese Frage wurde stark bearbeitet, um das zu werden, was sie jetzt ist.
hqxSharp
Projekt funktioniert , aber heiliger Mist, es ist langsam (was es warnt). Ich brauche etwas, das eine anständige Framerate halten kann.Antworten:
Sie können die Befehlsanzahl mithilfe von Vektoroperationen reduzieren: z. B. anstelle von
Du kannst schreiben
Operatoren in HLSL können auf Vektoren angewendet werden, auch auf logische wie
&&
auf zweibool3
Werte. Diese Operatoren führen die Operation komponentenweise aus.Shader-Code
Bilder
Das Originalbild von Redshrike wurde um den Faktor 4 vergrößert .
quelle
ir_lv1 = ((e != f) && (e != h));
ir_lv2_left = ((e != g) && (d != g));
ir_lv2_up = ((e != c) && (b != c));
Das sind gute Optimierungen, die ich verpasst habe und die Sie gefunden haben. Ich brauchte sie nicht für mein Problem, weil ich die Anzahl der Anweisungen mit anderen Optimierungen reduzieren konnte.Ich habe das zum Laufen gebracht. Es wird nicht der hqx-Filter verwendet, sondern der xBR-Filter (den ich bevorzuge). Für mich ist das kein Problem. Wenn Sie den hqx-Filter benötigen, möchten Sie die .cg-Dateien in das entsprechende XNA-Äquivalent konvertieren.
Aus Gründen der Vollständigkeit und der Suche werde ich die Frage präziser bearbeiten und dann alle relevanten Informationen veröffentlichen, um die Frage hier zu beantworten.
Schritt 1: Game Code Setup
Zunächst möchten Sie höchstwahrscheinlich ein Renderziel einrichten, bei dem Sie Ihr Spiel im Maßstab 1: 1 zeichnen und dann den Filter rendern.
Schritt 2: Effektdatei
Im Folgenden finden Sie die XNA-kompatible Effektdatei zum Ausführen des xBR-Filters.
Ergebnisse
Die Textur, die ich für das 240x160-Rendering verwendet habe:
Die Ausgabe vom Ausführen des Spiels:
Quellen
Die .cg-Datei, die ich in XNA-kompatibel konvertiert habe, stammt von hier . Sie erhalten also Credits für das Schreiben.
quelle