J'utilise l'approche standard du panneau d'affichage dans Unity qui est OK, mais pas idéale:
transform.LookAt(camera)
Le problème est que cela introduit une distorsion vers les bords de la fenêtre, d'autant plus que l'angle du champ de vision augmente. Cela ne ressemble pas au panneau d'affichage parfait que vous verriez par exemple. Doom en voyant un ennemi sous n'importe quel angle et indépendamment de l'endroit où il se trouve dans l'espace d'écran.
De toute évidence, il existe des moyens de fusionner une image directement dans la fenêtre, centrée autour d'un seul sommet, mais je ne suis pas passionné par les shaders.
Quelqu'un a-t-il des échantillons de cette approche (GLSL si possible), ou des suggestions sur les raisons pour lesquelles cela n'est généralement pas fait de cette façon (par rapport à la méthode de transformation quadruple susmentionnée)?
EDIT: J'étais confus, merci Nathan pour les avertissements. Bien sûr, amener les quads à regarder la caméra ne les fait pas être parallèles au plan de vue - ce dont j'ai besoin.
Je crois que vous pouvez définir la matrice 3x3 supérieure (en langage colonne) à l'identité pour ce faire. Je ne vois aucune raison pour laquelle vous ne pourriez pas faire cela dans le shader, mais vous pourriez faire plus de travail de cette façon. Vous perdriez de l'échelle (dans votre matrice de xformation) de cette façon.
Edit: cet article m'a été utile pour les panneaux d'affichage et les imposteurs:
http://www.flipcode.com/archives/Billboarding-Excerpt_From_iReal-Time_Renderingi_2E.shtml
Je ne sais pas à quel point c'est conventionnel, mais je l'appelle "imposteur" quand la perspective est maintenue et "panneau d'affichage" quand ce n'est pas le cas.
la source