Polls

Cuantas horas programas al día?
 
Inicio arrow Noticias arrow Algoritmos arrow Highly dense foliage visualization on multi-cpu architectures
Highly dense foliage visualization on multi-cpu architectures PDF Print E-mail
Written by Javier Loureiro   
Tuesday, 11 March 2008

 

 Otra charla del GDC, y con esta creo que es la última.

 Esta está muy chula, sobre todo para alguien que trabaje en un departamento de efectos, o quiera currarse una demo espectacular. Trata de cómo renderizar hierba y vegetación aprovechando tecnología multicpu.

 Normalmente, la vegetación se diseña usando mapas de densidad, que representan zonas de vegetación. Estos mapas suelen ser de distintos tipos, indicando diferentes vegetaciones. El sistema debe de poder aprovechar esos mapas, renderizar con distitnos niveles de detalle (y por tanto, distintos algoritmos), y debe de ser rápido descartando geometría. 

  Los niveles de detalle cambian la forma de pintar la geometría, usando billboards alienados a cámara cuando es preciso, o ni siquiera eso si están muy lejos.

 La charla explica un algoritmo en varios pasos, descartando rápidamente cuadrados con densidad 0 antes de determinar detalles de vegetaciñon, y gestionando solo los rectángulos visibles con densidad. Cuando tenemos las listas, mandarlas a un proceso que las procese en multithreading, para generar la vegetación.

 La charla comenta que se han dado cuenta que es mejor mandar muchísimos trabajos a la cola que no tener grandes gestores por CPU. Esto es compatible con mi propia experiencia, ya que los multicore tienen problemas al acceder al bus de datos simultaneamente. De todos modos, tendríamos que ver cómo funciona eso cuando el número de cores aumenta.

Cada trabajo recibe unos trabajos para generar la vegetación, como la semilla de "randomización", o los tamaños necesarios. Los trabajos deben de estar libre de dependencias, para evitar las esperas. El gestor de trabajos debería de dar poca prioridad a este tipo de trabajos (frente a tareas del juego o de físicas).

 Una vez terminado esto (aqui hay esperan  a que los trabajos terminen) , renderizamos la vegetación. Cada nivel de detalle va en listas separadas, ordenadas de tal manera que aprovechemos el test de alpha y el test de profundidad para renderizar menos píxeles.

 

Comentarios
Añadir nuevoBuscar
davidnr   | 213.170.46.xxx | 2008-03-13 10:23:30
Bajo mi punto de vista la charla cuenta cómo implementar un sistema parecido al de endering Grass Terrains in Real-Time with Dynamic Lighting http://www.irisa.fr/bunraku/GENS/kboulang/grass.html.

Es interesante ver cómo se van paralelizando los engines de juegos,de cómo se van definiendo tareas en los distintos threads y se envían al principal.
Escribir comentario
Nombre:
Email:
 
Website:
Título:
Código UBB:
[b] [i] [u] [url] [quote] [code] [img] 
 
Security Image
Por favor introduce el código anti-spam que puedes leer en la imagen.

Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved.



menéameDigg!Del.icio.us!Google!Technorati!Yahoo!
Last Updated ( Tuesday, 11 March 2008 )
 
< Prev   Next >

Lista de Correo

visita la lista de correo de codepixel. Es una lista abierta, asi que podrás subscribirte y preguntar tus dudas de programación, compartir tus opiniones, aportar ideas, y formar parte de la comunidad codepixelera.