Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Impostors (billboarding)

Iniciado por Topper, 20 de Septiembre de 2005, 04:27:27 PM

« anterior - próximo »

Topper

 Buenas, alguno de vosotros ha probado esta técnica para el renderizado de múltiples personajes? Por si alguien no la conoce, es una especialización del Billboarding.  :ph34r:

¿Es la técnica que se utiliza profesionalmente para los juegos tipo RTS o similar en el que muestran tropecientos personajes a la vez en pantalla?

Cualquier idea al respecto será bienvenida.  ;)

Salu2.

zupervaca

 las tecnicas que se suelen usar son estas:

1) personajes 2d
2) personajes 2d al fondo y personajes 3d a cierta distancia
3) personajes 2d al fondo, personajes 3d a cierta distancia y cada vez que se acercan tienen mas calidad (entre ello incluye correcciones de textura, cantidad de poligonos, etc)
4) prerenderizacion por distancias, es decir, cada cierta distancia se renderiza en una textura el personaje 3d y se muestra como 2d, ha cierta distancia se pone 3d y se usa el metodo 3

saludos

pd: por lo menos son los que metodos que se han usado toda la vida, si hay alguno nuevo no lo conozco

_XUTI_H_

 Tampoco es que tenga mucha idea, pero me parece que los "impostores" son como los decals o los billboardings, pero con poligonos ("un poco") más complejos que un plano. Hace tiempo que vi este artículo impostors en GameDev, y puede q t valga la pena.
Eso si no lo habias visto antes, ;-)

Hasta luego cocodrilo ...
UTI

tamat

 Yo creo que la idea básica todos la conocemos, lo jodido es conseguir un buen efecto con esa técnica, porque a la minima se apreciará que son el mismo repetido decenas de veces, ya que todos tienen al mismo personaje en la misma posición, así que hay que tener varias texturas de personaje (ya sea prerenderizada o directamente con un render a texture) y intercalarlos unos con otros pero sigue siendo dificil.
Por un stratos menos tenso

Ray

 He puesto en Google "Impostors billboarding"
y no ha encontrado nada. :huh:  ... (grrr) ....   <_<  ....   :lol:

Yo conozco una técnica (que no se si será esa) que consiste en transformar los vertices de un unico modelo en un buffer de vertices trasformados, y dibujar clónicos de él ahorrando todo el proceso de calcular los vertices, aunque solo sería util en determinadas circustancias como por ejemplo... un ejercito visto de lejos, o los de CQC acercandose a la camara.

Es más util para efectos tipo "Motion blur", aunque no descartaría el explotar sus posibilidades.  

zupervaca

 estos temas ya son mas de grafistas que de programadores, nosotros conocemos las tecnicas, pero quienes saben explotarlas son los grafistas ;)  

Ray

 ¿Pero esa técnica va a servir para dibujar objetos animados?

porque a mi me parece que no.

Topper

 La técnica esa de los vértices transformados la veo mucho más lenta que la del billboarding/impostor, puesto que aunque los vértices estén transformados, sigues obligando a la tarjeta a rasterizarlos, mientras que con billboards utilizas el render final del objeto en una textura que a fin de cuentas, son dos triángulos por objeto a repetir.  :huh:  

Ray

 Bueno, supongo que para cada caso será mejor una técnica que otra, la rasterización no supone un problema si los objetos están alejados o son pequeños, y para dibujar un ejercito u otros grupos animados que se comportan y se ven exactamente igual puede ser una buena opción.

Aunque para mi la mejor para objetos animados es la de reducción de poligonos por distancia, y para objetos estáticos la de los Billboarding (posiblemente mejor en la versión del impostor).

Parece ser que la técnica consiste en crear una especie de sprite 3D, en la que sus lados tengan una textura que hay que ir actualizando cada cierto tiempo teniendo en cuenta la proyeccón de la camara.  ¿no?

Bueno, a ver si lo miro mejor, o puede alguien explicar de que va.

_XUTI_H_

 Solo es un post. No sé si es la mejor manera de hacerlo.
De todas maneras parece que en su ejemplo la camara va estar estática, y la textura ja está pre-renderizada con el blender, no??
UTI

killua

 No soy un experto en el tema, no lo he usado nunca, pero como lo entiendo yo los impostores utilizan la tecnica de billboarding, me explico.

Los billboards son quads que se dibujan siempre orientados de cara  a la camara en los que ponemos una textura. Es una tecnica tan antigua como los graficos en 3d y nos permite usar sprites en entornos tridimensionales. Imaginaos que haceis un terreno en 3d  y lo quereis poblar de arboles. Si teneis una imagen con un arbol simplemente la pegas en un cuad y los pones encima del terreno.

Los impostores son algo distintos. Imaginaos que quereis que al acercaros al arbol en question en vuestro terreno quereis que este sea un modelo tridimensional que habeis hecho y no una textura plana pixelada, pero cuando esta lejos no quereis malgastar recursos. Si hacemos la transicion a lo bruto se notara que por ejemplo el angulo en el que estaba el arbol en la textura y el angulo en el que aparece el arbol tridimensional no son el mismo entre otras cosas. Aqui es cuando se utilizan los impostores. Cada cierto tiempo, a determinar por el rendimiento del programa y el programador, se coje el arbol tridimensinal y se renderiza en una textura tal cual apareceria en la escena, despues esa textura se usa como un billboard, un impostor, basicamente se trata de crear un billboard en tiempo real. Cuando el objeto en cuestion esta suficientemente cerca, se sutituye por el tridimensional y listos.
Esto nos evita por una parte tener sprites para cada tipo de objeto en cada posicion, y por otra, al tener que rerenderizar los arboles, o lo que sea, solo cada cierto tiempo (mucho si el jugador se mueve lento) nos ahorramos bastantes recursos.
Es una tecnica algo compleja, para los que entandais un poco de esto os habreis dado cuenta que renderizar un monton de objetos en texturas distintas mataria la tarjeta. Para ello lo que se hace es renderizar todos los impostores en una sola textura muy grande ( o las que hagan falta). Ello obliga a mantener en algun lado informacion de que partes de dicha textura estan libres, cuales se han de actualizar etc...

Espero que haya sido de ayuda y que no esté muy equivocado. :)

Ray

 Si estás en lo cierto ha quedado bien claro.

zupervaca

 bueno entonces no es nada nuevo, es el cuarto metodo que he puesto en mi anterior post en este hilo, yo llevo usandolo hace años, incluso si haces un pequeño fade entre los cambios apenas se nota

saludos






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.