Saya ingin membuat permainan saya ditingkatkan dengan salah satu filter hqx (hq2x, hq3x atau hq4x) atau filter xBR di shader.
Bagaimana saya bisa melakukan ini di XNA 4.0 dan SM3?
Catatan: pertanyaan ini telah diedit untuk menjadi seperti sekarang.
hqxSharp
proyek, tetapi sial itu lambat (yang diperingatkan). Saya butuh sesuatu yang bisa menjaga framerate yang layak.Jawaban:
Anda dapat mengurangi jumlah instruksi dengan menggunakan operasi vektor: mis. Alih-alih
kamu bisa menulis
Operator di HLSL dapat diterapkan ke vektor, bahkan yang logis suka
&&
duabool3
nilai. Operator-operator ini akan melakukan operasi secara komponen.Kode shader
Foto-foto
Gambar asli oleh Redshrike telah ditingkatkan dengan faktor 4.
sumber
ir_lv1 = ((e != f) && (e != h));
ir_lv2_left = ((e != g) && (d != g));
ir_lv2_up = ((e != c) && (b != c));
Itu adalah optimasi yang baik yang saya lewatkan yang Anda temukan, saya akhirnya tidak membutuhkannya untuk masalah saya karena saya dapat mengurangi jumlah instruksi dengan optimasi lainnya.Saya berhasil ini. Itu tidak menggunakan filter hqx, ia menggunakan filter xBR (yang saya sukai). Bagi saya, ini bukan masalah. Jika Anda memerlukan filter hqx maka Anda ingin mengonversi file .cg menjadi setara XNA yang sesuai.
Untuk alasan kelengkapan dan pencarian, saya akan mengedit pertanyaan agar lebih ringkas dan kemudian memposting semua informasi yang relevan untuk menjawab pertanyaan di sini.
Langkah 1: Pengaturan Kode Game
Pertama, Anda kemungkinan besar ingin menyiapkan target render tempat Anda menggambar game Anda dalam skala 1: 1 dan kemudian membuat filter.
Langkah 2: File Efek
Berikut ini adalah file efek yang kompatibel dengan XNA untuk menjalankan filter xBR.
Hasil
Tekstur yang saya gunakan untuk membuat 240x160:
Output dari menjalankan game:
Sumber
File .cg yang saya konversi menjadi XNA kompatibel datang dari sini . Jadi kredit pergi ke mereka untuk menulisnya.
sumber