J'aimerais rendre mon jeu plus grand avec l'un des filtres hqx (hq2x, hq3x ou hq4x) ou un filtre xBR dans un shader.
Comment puis-je faire cela dans XNA 4.0 et SM3?
Note latérale: cette question a été fortement modifiée pour devenir ce qu'elle est maintenant.
hqxSharp
projet, mais merde, il est lent (ce qui avertit). J'ai besoin de quelque chose qui puisse garder un taux de rafraîchissement décent.Réponses:
Vous pouvez réduire le nombre d'instructions en utilisant des opérations vectorielles: par exemple au lieu de
tu peux écrire
Les opérateurs en HLSL peuvent être appliqués aux vecteurs, même logiques comme
&&
à deuxbool3
valeurs. Ces opérateurs effectueront l'opération composant par composant.Code de shader
Des photos
L' image originale de Redshrike a été agrandie d'un facteur 4.
la source
ir_lv1 = ((e != f) && (e != h));
ir_lv2_left = ((e != g) && (d != g));
ir_lv2_up = ((e != c) && (b != c));
Ce sont de bonnes optimisations que j'ai ratées que vous avez trouvées, je n'ai pas fini par en avoir besoin pour mon problème car j'ai pu réduire le nombre d'instructions avec d'autres optimisations.Je l'ai fait fonctionner. Il n'utilise pas le filtre hqx, il utilise le filtre xBR (que je préfère). Pour moi, ce n'est pas un problème. Si vous avez besoin du filtre hqx, vous souhaiterez convertir les fichiers .cg en leur équivalent XNA approprié.
Pour des raisons d'exhaustivité et de recherche, je vais modifier la question pour être plus concise, puis publier toutes les informations pertinentes pour répondre à la question ici.
Étape 1: Configuration du code de jeu
Tout d'abord, vous souhaiterez probablement configurer une cible de rendu où vous dessinez votre jeu à une échelle de 1: 1, puis rendez le filtre.
Étape 2: fichier d'effet
Voici le fichier d'effet compatible XNA pour effectuer le filtre xBR.
Résultats
La texture que j'ai utilisée pour le rendu 240x160:
Le résultat de l'exécution du jeu:
Sources
Le fichier .cg que j'ai converti en compatible XNA est venu d' ici . Donc, les crédits leur reviennent pour l'écrire.
la source