Billboards

Billboard es una técnica para orientar caras hacia algún punto en particular, usualmente la cámara.

Esta técnica es muy popular en juegos y aplicaciones que requieren mostrar una gran cantidad de polígonos en pantalla. En muchas ocasiones algunos de los objetos 3d pueden ser reemplazados por sprites (impostors) de modo tal que la vista pueda ser engañada y el usuario no note el reemplazo.

impostor

Figura 1. A una cierta distancia el sprite parece ser un modelo 3d

El problema ocurre cuando la cámara se traslada de una posición P1 a una posición P2, debido a que nuestro impostor es chato debemos intentar disimular esta situación.

fig2

Figura 2. Vista superior de la escena

Para esto la idea es reorientar al impostor de modo que siempre mire la cámara. Por supuesto que si el objeto no es simétrico y el ángulo formado entre el vector dirección de P1 y el vector dirección de P2 es grande el defecto será notado por el jugador.

Por esta razón, los impostores son generalmente objetos simétricos como árboles o partículas, que si son rotadas hacia el usuario, el mismo no lo nota con facilidad. Aún así, el jugador podrá notar que la iluminación no corresponde con el sombreado del objeto, como si la misma se trasladara junto con la posición de la cámara. En definitiva, el billboarding deberá ser complementado con algunas imposiciones de diseño para que su implementación sea exitosa.

La geometría del impostor

Como habíamos mencionado, el impostor será un sprite conformado por cuatro vértices dispuestos del siguiente modo:

fig3

Figura 3. La geometría del impostor

Los tipos de billboards

Existen dos tipos de billboards: los cilíndricos y los esféricos. En los esféricos no existen restricciones respecto a la rotación del objeto, debe mirar la cámara no importa donde se encuentre. En cambio, los billboards cilíndricos poseen ciertas restricciones (por ejemplo, un árbol debe reorientarse a la cámara sólo rotando sobre su eje Y pero no X ni Z).

Pages: 1 2 3

Comments

  1. Ni7ram
    March 26th, 2007 | 15:10

    Muy buen tutorial

Leave a reply