Polls

Afectará la crisis a los videojuegos?
 
Inicio arrow Noticias arrow OpenGL arrow Programando el N80 con OpenGL
Programando el N80 con OpenGL PDF Print E-mail
Written by Javier Loureiro   
Monday, 02 April 2007

Acabo de leer el paper de nvidia en el GDC sobre coómo programar OpenGL en las nuevas N80.Os pongo aqui un resumen.

 Novedades: pues que ahora tenemos el shader de geometría, y posibilidades de consegur más información durante el pipeline, a parte de mas tipos de texturas.

Ell core esta desarrollado con los shaders unificados, que permiten aprovechar todos las unidades de shading en cada momento del pipe, ya que los vertex/pixel/geometry shaders son ahora unidades genéricas. Por lo tanto, si en un momento de render se necesita mas pixel shader, el core aprovechará más el tiempo dedicando más unidades a esta tarea.

Sobre el lenguaje, pues tenemos tipos nuevos, basicamente unsigned, y nuevas formas de interpolación de valores (antes teniamos solo la lineal), con lo que podremos mejorar la calidad final de los datos, ya que podremos tener en cuenta la perspectiva, la pantalla, etc.  Tambien la salida de los pixel shaders es ahora más variada, gracias a los varying out.

Otro aspecto muy desarrollado es el acceso a texturas. Ahora podremos samplear directamente la textura, y podremos programar nuestro propio control de nivel de detalle, mejorando el control de calidad de la textura, y permitiendo filtros precompilados muy rápidos.

 En cuanto a velocidad, ahora tenemos instancias, que permite acelerar el renderizado de objetos. Ahora un objeto podemos meterlo en memoria de video, como los vertexbuffers de toda la vida, pero al definir una instancia, podemos hacer una llamada para rendear de golpe un numero de ellas. Por ejemplo, 300 particulas de golpe. Lo bueno es que cada instancia tendra un ID que podemos leer en el shader para darle un comportamiento, como cambiar su posicion y datos del material. Particulas es lo primero que podemos aprovechar con estas llamadas. Ademas tenemos buffers orientados a propiedades para poder trabajar con ellos en memoria de video (por ejemplo, guardar la velocidad de la particula, etc). Ojo que podremos rendear atributos a memoria de video! Por ejemplo, aplicar el skinning de animación a un objeto y reutilizar la salida para rendear el objeto en diferentes pases, en sombras, etc, con el ahorro de calculo brutal que tendremos.

 También tenemos buffers nuevos, orientados a programación generica, donde podremos almacenar constantes para que el shader opere directamente con ellos.

Las texturas ahora tienen layers en memoria de video,  como subconjuntos de texturas, orientado a eliminar los atlas de textura (texturas enormes con mucha informacion, para ahorrar el cambio de contexto). Podremos incluso rendear en ellos independientemente.

Entre los formatos de textura, tenemos formatos de enteros sencillos, de float  para renders con mucha calidad, y HDR para calculos de exposición de luz (aunque no podemos hacer un render a texture de este tipo para generar mapas). Podremos trabaajr totalmente en espacio sRGB (el del PNG y con el gamma corregido) y con un zbuffer de 32bits en float, con una precisión muy ampliada.

  Y desde luego, lo que va a ser el punto fuerte de esta generacion es la creación en shader de geoemtria, gracias a los geoemtry shaders. Podremos usar la funcion emitvertex para ir creando nuestros objetos, curvas, pelo, escamas, etc.

Comentarios
Añadir nuevoBuscar
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 ( Monday, 02 April 2007 )
 
< 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.