Polls

Escribirías en el wiki de codepixel?
 

Login Form






Lost Password?
No account yet? Register

Wiki Codepixel

Visita el Wiki de programación gráfica de codepixel . Podrás incluir los enlaces que creas interesantes para desarrollar videojuegos, motores de render, demos, etc.

Quién está online?

We have 15 guests online

Syndicate

Inicio
OpenGL 4.0
Written by Javier Loureiro   
Friday, 12 March 2010

En el marco del GDC 2010, que se celebra esta semana en San Francisco, el grupo Khronos ha presentado OpenGL 4.0, la verdad, un poco por sorpresa.

En general, el objetivo de esta nueva versión es, por un aldo, acercar más OpenCL (el nuevo estándard para programación genérica en GPU) y OpenGL, y por otro lado, dar más soporte a los dispositivos tipo iPhone.

Y es el campo de los smarthphones el que está siendo un nuevo frente abierto para Microsoft. DirectX te cierra a programar en PC (eso sí, con un mayor rendimiento), pero los nuevos estudios independientes están  trabajando mayoritariamente en OpenGL, lo que repercutirá a la larga en un API más extendido, por su compatibilidad.

Las novedades:

  • GLSL 4.0, con soporte nativo para la extensión GL_ARB_texture_query_lod, esto es, conocer los datos de Level Of Detal que se usará en el sampleado.
  • Posibilidad de hacer shading a cada muestra de antialias por separado (lo cual mejora especialmente los ejes de los polígonos).
  • Capacidad para seleccionar distintos modos de blend por canal de color.
  • Soporte para GL_ARB_draw_indirect, que permite enviar parámetros a los buffers generados totalmente en la tarjeta.
  • Soporte para vectores y matrices en double.
  • Soporte para subrutinas dentro de un shader (evitando asi el ubershader)
  • shaders de teselación, algo por lo que DirectX 11 destaca, permitiendo incrementar el nivel de detalle de la geometría a través de micropolígonos.

Este es el enlace al anuncio original , y hay muchos hilos abiertos comentando el tema, como en slashdot , reddit , gamedev .

Los cambios son relativamente pequeños, en su mayoría se trata de incorporar al estándard, extensiones que ya existen. Probablemente el cambio de versión es más un tema comercial, ya que al incluir la teselación, podemos pensar en opengl 4, como el equivalente a DirectX 11.

 

 
Acelerando SQL con CUDA
Written by Javier Loureiro   
Thursday, 25 February 2010
En NVIDIA, han implementado una parte del amáquina virtual de SQLlite, para ejecutar queries de forma masiva, y como era de esperar, los rendimientos son considerables, entre 20x y 80x el rendimiento normal del servidor. Este pdf explica los detalles en profundidad, incluidas gráficas, y las limitaciones de hardware (que se reducirán con el timepo, claro). El código está limitado a SELECT, y orientado a tablas con cantidades enormes de datos, que compensan el tiempo perdido por transferir una gran cantidad de datos a la tarjeta.
 
Más sobre los vóxeles en GPU
Written by Javier Loureiro   
Thursday, 18 February 2010

Comienzan a salir proyectos que aprovechan la técnica de pintar vóxeles, de forma eficiente usando raytracing en la tarjeta, comentada en la última noticia.

Podemos ver este vídeo , donde se muestra las capacidades de esta tecnología, representando una enorme cantidad de geometría en tiempo real (una cantidad, bastante grande de geometría).

Incluso hay un proyecto de google con ficheros descargables, y el código fuente, para conocer los detalles de esta implementación, el tema de los contornos, el código en CUDA, etc.

 

 

 
Efficient Sparse Voxel Octrees
Written by Javier Loureiro   
Tuesday, 09 February 2010

El tema de los vóxeles está de moda. En cada congreso gráfico, suele haber algún nuevo avanze, estudio, comparativa, etc, sobre esta técnica. En el I3D, NVIDIA ha presentado sus avances, bastante espectaculares, mostrando las ventajas en su último paper sobre el tema.

Los vóxeles modernos se basan en un octree, y sobre todo, un algoritmo de recorrido que tiene similitudes con el del kdtree (ordena los posibles casos, en función de la distancia del rayo). En este paper, nos definen un completo pipeline para renderizarlos. Nos explica cómo define los nodos dentro del octree, que contienen un par de planos que delimitan a la geometría que representan. A esto le denomina "contornos". Con esta información, se puede acotar el espacio vacío de los vóxeles, y la representación es más limpia. Además, los contornos se pueden acumular, ya que el contorno de los nodos padre, es la suma de los contornos de los hijos.

El paper nos muestra el pseudocódigo para lanzar los rayos de forma eficiente, esquivando el espacio vacío de los contornos. También explican cómo han implementado la pila para la recursión, un tema clave en la GPU, por sus problemas con la memoria local.

Usando la tarjeta, se puede optimizar bastante realizando un render previo, y usando su profundidad como punto de partida de la recursión. Esto permite eliminar muchos cálculos en el recorrido del voxel, esquivando de golpe mucho espacio vacío.

En este vídeo podéis ver el resultado final.

 

Last Updated ( Tuesday, 09 February 2010 )
 
Comparativa de Teselación en DirectX 11
Written by Javier Loureiro   
Tuesday, 02 February 2010

Sólo las tarjetas de la serie 5 de ATI soportan, actualmente, DirectX 11. Por ahora, NVIDIA no tiene ninguna tarjeta que pueda sacar partido de las características del nuevo API.

Para ver qué nos estamos perdiendo, tenemos una serie de vídeos que nos muestran las diferencias, con el engine Unigine. Este es el primer vídeo de demostración , un paseo por una escena 3D. Mirad el detalle de las rocas, los tejados, los efectos de luz, etc. Este es el vídeo más técnico , mostrando el modo wireframe. Fijaos cómo se calcula el nivel de detalle en tiempo real. El nivel de detalle sube espectacularmente. En los vídeos relacionados, he encontrado este que me ha parecido simpático, un geek que se queda totalmente alucinado con el nivel de detalle de la demo en Directx 11.

El gran problema, para mí, es que dar tanto detalle a las escenas es un proceso muy caro, y las empresas de videojuegos se lo pensarán un poco antes de permitir tanto trabajo. Pero en el campo del diseño, herramientas como Zbrush ya están muy consolidadas,  y los modeladores realmente agradecen poder sacar partido a esta forma de trabajar.

Veremos que nos deparan los próximos títulos. Por el momento, enhorabuena a los poseedores de una ATI serie 5.

 

 
Aprendiendo a programar videojuegos con python
Written by Javier Loureiro   
Wednesday, 27 January 2010

Para los que quieran practicar un poquito de programación gráfica interactiva, os recomiendo mirar el pygame , una extensión de python que nos permite hacer prototipos rápidos de las ideas que tengamos en la cabeza.

PyGame nos ofrece código para gestionar una ventana, a través de la SDL. Nos permite también la gestión de eventos, tema complicado, y que se vuelve sencillo a través de python. También incluye funciones para cargar texturas y mostrar imágenes en pantalla, y hasta soporte para sonido.

Además, tenemos la ventaja de que python es un lenguaje que cuenta con muchísimas librerías adicionales, por ejemplo, para acceder a bases de datos, descargar información de internet, letura de ficheros XML, etc.

El coste, obiamente, es el  del rendimiento. PyGame es bastante lento cuando hablamos de pintar con OpenGL.

 
Entrevista a Javier Mateo
Written by Javier Loureiro   
Tuesday, 26 January 2010

Dimensión 2.5 nos ofrece otra larga y didáctica entrevista , a la que nos tiene acostumbrados. En este caso es uno de los fundadores del famoso estudio Keytoon, que nos asombró a todos con su corto/demostración del motor de render Maxwell.

Fue uno de los participantes el el corto "Alma " de Rodrigo Blaas, Una apuesta muy importante de los mejores profesionales que podemos encontrar por aquí.

La entrevista nos habla de su nuevo proyecto, una academia de 3D dirigida a sacar buenos resultados, independientemente de la herramienta. Sigue el modelo que realmente creo que funciona, donde se intenta que el alumno salga de la escuela con una demo potente. que al menos en el mundo de la infografía, y sobre todo en los artistas, es lo único que te va a abrir alguna puerta laboral. El planteamiento me parece correcto, y será una opcion más de formación de calidad.

 
Octane Render
Written by Javier Loureiro   
Friday, 22 January 2010

Llevo unos meses un poco liado, enfrascado en varios proyectos que me han quitado un poco de tiempo para codepixel... pero el mundo de los gráficos continúa avanzando, y siempre hay novedades y tecnologías que comentar.

Hoy quería destacar este nuevo motor gráfico : OctaneRender . Es uno de los nuevos motores que están surgiendo como setas, que usan CUDA para renderizar imágenes fotorealístas en tiempo real, de forma interactiva. Este motor me ha llamado la atención porque parece que está creado desde cero, pensado en CUDA, y en la web tiene unas capturas impresionantes, como esta , que ha sido renderizada en tan sólo 4 minutos.

Estamos viendo unos avanzes increibles en la tecnología de GPGPU, y la consolidación de OpenCL va a traer nuevas herramientas muy interesantes en este campo. Aquí hay un buen campo de investigación, y en el futuro se ampliarán las tesis doctorales y papers sobre cómo aprovechar mejor OpenCL/CUDA en estos campos. Estaremos atentos.

Por mi parte, creo que hay muchas limitaciones en un motor "fisicamente correcto", sobre el campo de la producción real en cine, como puede ser el tema de la dificultad en separar los diferentes pases de información. Pero hay que reconocer que conseguir uns resultados fotorealistas nunca fue tan sencillo y rápido. Y quizas para campos como la integración con video real, pueda tener un hueco precisamente por esto. Por supuesto, en arquitectura o publicidad, estas tecnologías tendrán gran aceptación.

 

 
En 5 años esto desparece, no habrá ni Internet libre, ni ciudadanos informados
Written by Javier Loureiro   
Thursday, 03 December 2009

Hoy me he encontrado con que la Royal Society de Inglaterra, para celebrar su 350 aniversario, ha puesto a disposición de los internautas varias publicaciones históricas de gran relevancia. Una, para mí, fundamental, es una carta de Isaac Newton, comentando sus experimentos con los prismas de cristal , dónde descubre que la luz está formada por un espectro de color, y marcando así el inicio del estudio moderno de la energía. Leyéndo la carta, el lector se contagia de esa ilusión y asombro que le producen sus nuevos descubrimientos. Al final de la carta, pide al resto de los miembros de la Royal Society, que por favor, prueben estos experimentos, y se le comunique cualquier avanze. Isaac Newton no montó un gran negocio, ni fue extremadamente rico, pero es una de las piezas clave que ponen a Inglaterra en el mapa de la historia.


En ese mismo tiempo, en la península reinaba la Inquisición Española, que velaba por los derechos de los fervientes católicos. Entre las medidas para proteger la pureza ideológica, destacaba el “Index Librorum Prohibitorum”, una lista de libros y autores censurados. Esa garantía, consiguió que España estuviese excluida del resto de la comunidad científica durante siglos, condenando a la población a vivir ausentes de Copérnico, Kepler, Descartes, o Kant. Ideas que para el Santo Oficio eran peligrosas, pero que en el resto de Europa sirvieron para poner a la razón y el conocimiento como fuente de progreso. La sociedad española actual está pagando todavía tanto años de retraso científico.


Ayer se ha presentado en el parlamento, por la puerta de atrás, una iniciativa para regular Internet. Con la excusa de los derechos de autor, quieren dar a la administración (sin jueces de por medio), capacidad para censurar páginas. Hoy porque supuestamente tienen enlaces, pero mañana, porque molestan, no interesan o simplemente, no pagan comisiones. Detrás están los de siempre: “Los Otros”, las grandes empresas que quieren tener derecho a decidir qué podemos leer tú y yo. Es realmente paradógico, que quién se dice “socialista”, o quién mantiene un “Ministerio de Igualdad”, sea el que vaya a tener el dudoso honor de incluir la censura en Internet. La red, ese terrorífico invento donde un blogger puede enfrentarse a una multinacional... y ganar. Donde todo el mundo es igual. No estamos aquí hablando de si un partido o otro (Alejo Vidal Cuadras fue el líder de la infame votación en el Parlamento Europeo). Aquí estamos los ciudadanos contra el poder corporativo. Está claro que el objetivo es el de poder filtrar el contenido, poder decir qué se puede o qué no se puede publicar.


Internet es conocimiento, es cultura, es sabiduría, es avance, es progreso. Es la wikipedia, es linux, es facebook... es la posibilidad que tiene la gente corriente de colaborar, de aportar entre todos. En cuanto permitamos a un Santo Oficio, que decida qué es lo que se puede o no se puede leer, condenaremos, otra vez a este país, a siglos de retraso cultural.


Me parece pornográfico, que la ley de Economía Sostenible, se preocupe de cortar páginas de Internet, y no se preocupe de que los proveedores del servicio sean las empresas que más reclamaciones atesoran en cualquier oficina (defensor del pueblo, OCU, telecomunicaciones...). Que tengamos un acceso a internet de segunda, con unos precios desorbitados, y totalmente indefensos ante los abusos de los operadores. !Lo que necesitamos es competencia en ese sector! No grandes empresas que hinchan pecho por los beneficios que obtienen haciendo lobby con los partidos.


Hace unas semanas, los ministros de Industria y de Cultura, se pasaron por los estudios de Ilion, para ver de primera mano cómo se hizo Planet 51. Tengo que decir, que si no fuese por la Royal Society, por la Wikipedia, por los tutoriales desinteresados de internet, y sobre todo, por páginas de descargas que me permitieron probar todo tipo de aplicaciones, desde que era joven, desde luego sin ellas no hubiese aprendido nada de iluminación global, ni de programación. Y lo mismo digo de todos, absolutamente todos, los miembros del equipo que hicieron Planet 51.

 

Por esto, Codepixel se suma al manifiesto “En Defensa de los Derechos Fundamentales de Internet ”, y espero que entre todos podamos parar la censura.


Last Updated ( Thursday, 03 December 2009 )
 
Sobre el motor de Lost Planet
Written by Javier Loureiro   
Monday, 30 November 2009

Repasando enlaces, he encontrado este resumen de una charla de Capcom , explicando los detalles del motor de Lost planet, y una explicación de sus herramientas. El artículo original está en japonés, pero existe una completa traducción en beyond3d . Es un poco antiguo, del 2006, pero la arquitectura es la que más se utiliza hoy en día en los grandes motores, y el artículo está ilustrado con buenos diagramas explicativos.

El motor está pensado para multitarea, dividiendo los distintos procesos en módulos (grandes bloques como el sistema de render, físicas, etc), loops (pequeños sistemas que no encajan en el resto de módulos) y tareas (pequeñas divisiones de código que se ejecutan en multitarea en cada frame). El motor tiene 2 colas, una para tareas que tienen que ejecutarse de forma ordenada, y otra para tareas que pueden ejecutarse en cualquier orden.

Sobre el render, el motor se ejecuta en un hilo independiente, lanzando comandos de pintado, que se ordenan previamente, según material, profundidad, etc. Cada hilo tiene comandos de render que después se "consolidan" en el thread que se dedica a pintar, sumando las colas de todos los hilos del sistema.

En el enlace de beyond3D , podéis ver el resto de la presentación.

 

Last Updated ( Wednesday, 02 December 2009 )
 
Hoy se estrena Planet 51 en USA
Written by Javier Loureiro   
Friday, 20 November 2009

Hoy por fin se va a estrenar el proyecto en el que llevo metido todos estos últimos años. Planet 51 sale al público en USA, y la semana siguiente en el resto del mundo. ¿Qué voy a decir de la película? pues que a mi me gusta, y creo que tiene cosas muy potentes, como la iluminación y la animación... y gracias a todo esto, la pelicula transmite, que es lo importante. Llevamos años con todo esto, montando el estudio, montando la forma de trabajar, desarrollando herramientas, cambiando todo para que la calidad sea la mejor posible... Hay mucha gente muy buena que ha trabajado en este proyecto, y el resultado se nota. Ya lo veréis.

 

 
La utilidad del PNG para los programadores
Written by Javier Loureiro   
Tuesday, 17 November 2009

Este tutorial os muestra cómo cargar imágenes PNG de forma sencilla. El formato PNG aparece como substituto del GIF, que estuvo muchio tiempo protegido por una patente, por lo que se optó por hacer un formato abierto para las imágenes que se envían en internet.

La comrpesión de PNG utiliza el algoritmo "deflate", el mismo que utiliza el gzip, que no es siempre el más eficiente, pero al menos no tiene problemas de patentes. Es un sistema de compresion que no tiene pérdidas, por lo que se puede abrir un png, grabarlo, abrirlo, grabarlo, etc muchas veces y los valores de los píxeles se mantienen intactos. Al contrario que el jpeg, que va degradando calidad en cada compresión.

Una característica realmente interesante para un programador es la variedad de formatos de pixel que png almacena. Guarda valores en 8 y 16 bits. Los 16 bits son importantes si vamos a hacer muchas operaciones de composición, ya que el redondeo progresivo nos genera bandas de colores uniformes, al ir despreciando decimales. No he probado si el formato 16 bits es compatible con los formatos 16 bits de las GPU´s. Pero si nos vamos al ahorro. PNG soporta formatos "packed", donde por ejemplo, podemos especificar imágenes de 1 bit por pixel. De tal forma que 1 byte, representa el valor de 8 píxeles (muy útil para máscaras).

 

La librería incluye formas automáticas de conversión. Permite leer las imágenes en 8 bits, aunque estén en 16 bits, o descartar los valores alpha. Todo esto se hace en la lectura, lo cual nos ahorra código, memoria, y tiempo de ejecución.

 

Un tema que a mí me interesa especialmente es la gestión de color. La cabecera PNG permite especificar valores del espacio de color (incluso embeber un perfil de color completo, pero es muy complicado de leer). Tiene un campo gamma que os permite transformar los valores de los píxeles a lineal. De esta forma, podréis saber si la textura es una imágen con el gamma aplicado (que es lo normal), y hacer la inversa para tener los valores en lineal. De esta forma, podréis operar con ellos sin tener problemas con las transparencias. Pero si teneis una imagen que no tiene gamma (por ejemplo, una textura que uséis de parámetro para un shader), podeis leer la cabecera del png, y no realizar esta conversión. Al elevar un valor a su gamma, y realizar despues el inverso, perdemos mucha precisión (especialmente si trabajamos en 8bits), y este paso nos lo podemos ahorrar si tenemos la imagen en lineal. 

 

Otro aspecto importante del formato PNG es la posibilidad de meter texto. Pocos programas lo soportan, pero podéis usar la librería para "marcar" texturas, dependiendo del uso que le váis a dar, de esta forma, vuestro motor puede operar de forma distinta en función de lo esté escrito en la cabecera. Por ejemplo, podéis enviar la textura al canal especular, o indicar que no queréis que genere mipmaps en la carga. Las posibilidades son enormes.

 

 

 
Doom para IPhone, con código fuente
Written by Javier Loureiro   
Tuesday, 10 November 2009
idSoftware ha sacado al público el código fuente del port para iPhone del juego Doom . El código es relativamente sencillo, si conoces un poco el funcionamiento interno del motor ,  e incluye algunas mejoras respecto al original, la mayoria tomadas de este proyecto, el PrBoom , que es una recopilación de mejoras y parches que se han ido introducciendo en el videojuego a lo largo del tiempo. Según comenta John Carmak, no se ha querido cambiar mucho el trabajo de este proyecto, asi que no se han introducido grandes novedades para la versión de iPhone, dejando de lado las enormes capacidades gráficas del móvil, pero manteniendo el aspecto clásico del juego. Podéis leer más en el enlace original .
 
Unreal Development Kit gratuito
Written by Javier Loureiro   
Friday, 06 November 2009

Una excelente noticia para los desarrolladores independientes. Epic ha anunciado que su motor gráfico unreal, y todo el juego de herramientas adicionales estan disponibles para usar sin problemas de licencia. En este enlace tenéis más datos.

El acuerdo mantiene un coste cero para desarrollos sin ánimo de lucro. Pueden ser publicados en internet, distribuidos, etc.

Los videojuegos que se pretendan vender, tienen un coste de $99 por desarrollador. Si los ingresos son menores que 5000€, no tienes que pagar nada a Epic. Si tus ingresos superan los $5.000, la comisión será del 25%. Los ingresos pueden ser tanto de venta directa, como de cursos, subscripciones, configuraciones, etc. En el mundo de las consolas, hay que pagar también una parte de las ventas a la plataforma (PlayStation, Nintendo, etc).

Si usas el motor para la empresa, pero no vendes a terceros, el coste es de $2.500 por desarrollador.

En el pack de aplicaciones , está incluido:

 

Unreal Engine 3 : El motor completo, pero sin código fuente. La lista de capacidades gráficas es enorme.

El potente editor del Unreal , que incluye:

Content Browser : Completo gestor de información y modelos 3D, que permite separar la información por tags.

UnrealScript : Lenguaje de programación nativo del motor, similar a C++.

Kismet : Editor visual de scripts para juegos, para los diseñadores del gameplay (una potente herramienta para separa a los programadores de los diseñadores).

Martinee : Completo editor de cinemática y animaciones, que permite editar la animación en tiempo real y poder ver el resultado final en directo.

Cascade : editor modular de efectos/particulas, etc.

Fisicas : usando la tecnologia NVIDIA Physx, incluye un editor adicional para definir las colisiones, límites, etc.

Lightmass : un simulador de iluminación global para el render.

 

Todo esto permite generar videojuegos y aplicaciones que corren en un simple ejecutable, haciendo su distribución simple y sencilla.

Esta es una oportunidad excelente para los estudios independientes, que no pueden acceder normalmente a la mejor tecnología. el juego de herramientas es muy potente, y para sacarle partido completamente, hace falta un completo equipo de artistas y diseñadores. Creo que este movimiento es una fuerte apuesta por el mercado emergente de empresas que piensan distribuir de forma online sus videojuegos... quién sabe.

 

Last Updated ( Friday, 06 November 2009 )
 
Planeta Codepixel
Written by Javier Loureiro   
Tuesday, 27 October 2009

Hoy hacemos público el "Planet Codepixel ", un agregador de blogs para la comunidad de programadores del mundo de los gráficos. Actualmente hay 14 blogs registrados, y muchos de ellos se actualizan con bastante frecuencia.

Si estáis interesados en incluir vuestro blog, podéis enviar un correo a This e-mail address is being protected from spam bots, you need JavaScript enabled to view it con el nombre y la dirección. Buscamos blogs pensados para gente técnica: programación a bajo nivel, tarjetas gráficas, comentarios de nuevas tecnologías, etc. y también es un excelente medio para presentar los proyectos en los que estéis trabajando. Vuestro trabajo puede servir de inspiración a otra gente, y crear escuela :)

 

 

Last Updated ( Tuesday, 27 October 2009 )
 
Soporte OpenCL para ATI
Written by Javier Loureiro   
Thursday, 15 October 2009

ATI anuncia los primeros drivers de OpenCL que realmente soportan la GPU completamente. El programa todavía es beta, pero digamos que ya son funcionales, suficiente para comenzar las pruebas y explorar realmente los límites de la tarjeta.

 Las plataformas soportadas son windows (incluido windows 7) y linux.

 

 
<< Start < Prev 1 2 3 4 5 6 7 8 9 10 Next > End >>

Results 1 - 21 of 676

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.

 

Visita la antigua página

Image