Utilizo el enfoque estándar de la cartelera en Unity que está bien, pero no es ideal:
transform.LookAt(camera)
El problema es que esto introduce distorsión hacia los bordes de la ventana gráfica, especialmente a medida que el ángulo del campo de visión aumenta. Esto es diferente a la cartelera perfecta que verías, por ejemplo. Condena al ver a un enemigo desde cualquier ángulo e independientemente de dónde se encuentren en el espacio de la pantalla.
Obviamente, hay formas de enviar una imagen directamente a la ventana gráfica, centrada alrededor de un solo vértice, pero no me gustan los sombreadores.
¿Alguien tiene alguna muestra de este enfoque (GLSL si es posible), o alguna sugerencia de por qué no se hace de esta manera (en comparación con el método de transformación cuádruple mencionado anteriormente)?
EDITAR: Estaba confundido, gracias Nathan por el aviso. Por supuesto, hacer que los quads miren a la cámara no hace que sean paralelos al plano de visión, que es lo que necesito.
Creo que puede configurar la matriz 3x3 superior (en el lenguaje de columna principal) a la identidad para hacer esto. No veo ninguna razón por la que no pueda hacer esto en el sombreador, pero podría estar haciendo más trabajo de esa manera. Perdería escala (en su matriz de xformation) de esta manera.
Editar: este artículo fue útil para mí para vallas publicitarias e impostores:
http://www.flipcode.com/archives/Billboarding-Excerpt_From_iReal-Time_Renderingi_2E.shtml
No sé qué tan convencional es esto, pero lo llamo "imponente" cuando se mantiene la perspectiva y "cartelera" cuando no lo es.
fuente