Je ne suis pas certain des termes appropriés pour rechercher ou même par où commencer, même si j'imagine que c'est une sorte d'effet de post-traitement.
J'ai vu des jeux comme I Wanna Be The Boshy et You Have To Win the Game qui parviennent à modifier la perspective des jeux 2D pour leur donner une sorte d'effet 3D (voir images ci-dessous). Boshy donne essentiellement l'impression que vous êtes à l'intérieur d'une tour (cylindre) tandis que vous devez gagner le jeu déforme l'image de sorte qu'il semble que vous jouez sur un ancien moniteur CRT, en particulier l'aspect légèrement arrondi.
- Y a-t-il un terme pour cet effet?
- Quelle est la méthode standard pour mettre en œuvre cet effet (terminologie)?
- Comment pourrais-je procéder pour implémenter un tel effet dans un moteur / framework de haut niveau tel que Unity ou XNA / Monogame à partir d'une vue de 20 000 pieds? (code détaillé accepté avec plaisir mais pas nécessaire - je réalise que les détails d'implémentation peuvent varier mais des détails de haut niveau sur ce qui doit être fait seraient grandement appréciés)
Je veux être le Boshy
Vous devez gagner le match
2d
graphic-effects
post-processing
SpartanDonut
la source
la source
Réponses:
Cela peut être implémenté comme un effet post-traitement. (Lors de l'utilisation de Unity / XNA / Dx / OGL / ...)
Méthode géométrique
Commencez par créer un maillage qui ressemble à l'effet de distorsion que vous cherchez à obtenir. (par exemple, modélisez un demi-cylindre (ou un cône, une sphère, un cube, ...), assurez-vous de définir les coordonnées de la texture). Rendez votre jeu 2D comme d'habitude, mais rendez le résultat final dans une texture. Rendez ensuite la géométrie de distorsion avec la texture que vous venez de créer. Vous pouvez utiliser le monde / la vue / la projection ou modifier les coordonnées réelles de la géométrie / texture pour contrôler la force de la distorsion. (l'image 1 montre le jeu 2D normal, l'image 2 montre la même texture projetée sur une sphère)
Méthode de distorsion
Les outils de traitement d'image offrent souvent des effets de distorsion qui pourraient émuler la projection (comme des illusions d'optique). Par exemple, l'image 3 a été générée à l'aide du filtre de renflement de Paint.Net
.
(Vous pouvez trouver une implémentation (OpenGL ES 2.0) de cet effet de distorsion à partir du projet GPUImage - voir GPUImageBulgeDistortionFilter)
Selon l'implémentation, l'une ou l'autre méthode peut être plus rapide ou fournir une meilleure correspondance avec le résultat souhaité. Comme les deux implémentations sont assez simples, vous pouvez essayer d'implémenter les deux et voir celle qui vous convient le mieux.
la source