<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5751506818033462578</id><updated>2012-01-10T08:59:04.521+01:00</updated><title type='text'>OpenGoeLe</title><subtitle type='html'>Historias sobre mi aprendizaje de técnicas gráficas y otras cosas igual de egocéntricas</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>67</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-5039317820858939428</id><published>2011-02-18T17:47:00.005+01:00</published><updated>2011-02-18T18:00:27.140+01:00</updated><title type='text'>Bon dia a la Vila del Pingüí!</title><content type='html'>Cuánto tiempo, ¿no? No es que me haya olvidado del blog... bueno, sí. Pero es que realmente no he hecho gran cosa por mi cuenta desde que empecé a trabajar en Novarama...&lt;br /&gt;&lt;br /&gt;En este tiempo han pasado muchísimas cosas. Entre ellas, colgamos la demo del &lt;a style="font-weight: bold;" href="http://www.speksnk.org/host/mods/g0e/VaporMayhem/VaporMayhem.rar"&gt;Vapor Mayhem&lt;/a&gt; (en realidad el link ya estaba en los enlaces de la derecha desde hace tiempo, pero no lo había anunciado), la empresa ha sacado inviZimals Shadow Zone siendo una vez más un gran éxito y se ha "presentado" nuestro nuevo juego, Reality Fighters para NGP. Lo poco que se ha podido ver se puede encontrar en la demo reel que Sony mostró en la presentación de la consola, alrededor del segundo 47:&lt;br /&gt;&lt;br /&gt;&lt;iframe title="YouTube video player" width="425" height="344" src="http://www.youtube.com/embed/koILIxzzfEM" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Es el primer juego en el que realmente he participado, así que espero que salga todo estupendamente.&lt;br /&gt;&lt;br /&gt;Ah, y me he independizado, pero eso no tiene mucho de interesante...&lt;br /&gt;&lt;br /&gt;¿Y por qué rescatar el blog? Pues en realidad no sé si es un "rescate", pero desde hace poco poseo un iPhone 4 y he empezado a trastear poco a poco con él... Lamentablemente ya no dispongo del tiempo libre que tenía hace un par de años, pero tengo un par de cosas en mente (y una de ellas en código!) que posiblemente comparta por aquí dentro de poco.&lt;br /&gt;&lt;br /&gt;Por ahora no me he metido en el tema gráfico en iPhone, pero ya llegará...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-5039317820858939428?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/5039317820858939428/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=5039317820858939428' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5039317820858939428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5039317820858939428'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2011/02/bon-dia-la-vila-del-pingui.html' title='Bon dia a la Vila del Pingüí!'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/koILIxzzfEM/default.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-3208636957860778558</id><published>2009-10-26T13:18:00.002+01:00</published><updated>2009-10-26T13:25:10.918+01:00</updated><title type='text'>La cuelgo o no? :S</title><content type='html'>Más o menos ya he dejado lista la mini-demo que he estado probando estos días. Lo malo es que tampoco es que sea nada novedoso o medianamente espectacular, y para acabar de rematarlo tampoco es que sea un ejemplo de buen rendimiento... Básicamente en lugar de intentar cuadrar un shadow map para toda la escena al estilo de lo que hice para el Vapor Mayhem, genero un pequeño shadow map para cada objeto que &lt;span style="font-style: italic;"&gt;castea &lt;/span&gt;sombra, luego hago un render normal para pintar la escena y por último, para cada shadow map vuelvo a pintar aquellos objetos que reciben la sombra con alpha blending y la operación de MIN para oscurecer las partes sombreadas. Total, que por ejemplo para 4 objetos tengo que pintar el suelo (si no se hace self-shadowing) 5 veces para mostrar todas las sombras, lo cual no mola demasiado.&lt;br /&gt;&lt;br /&gt;Así que ahora no se si colgar la demo, si intentar mejorarlo o directamente olvidarme de ello... Por lo menos se pueden pintar sombras relativamente molonas con shadow maps de tan sólo 64x64...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_e34Zp8mFxTc/SuWVAa8NVnI/AAAAAAAAAoU/fSAsbxbpSdo/s1600-h/posm2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_e34Zp8mFxTc/SuWVAa8NVnI/AAAAAAAAAoU/fSAsbxbpSdo/s400/posm2.jpg" alt="" id="BLOGGER_PHOTO_ID_5396883562937800306" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-3208636957860778558?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/3208636957860778558/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=3208636957860778558' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/3208636957860778558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/3208636957860778558'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2009/10/la-cuelgo-o-no-s.html' title='La cuelgo o no? :S'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_e34Zp8mFxTc/SuWVAa8NVnI/AAAAAAAAAoU/fSAsbxbpSdo/s72-c/posm2.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-5861039676414420617</id><published>2009-10-23T15:43:00.004+02:00</published><updated>2009-10-23T16:02:05.568+02:00</updated><title type='text'>¡Por fin se acabó! ¡Por fin casi empezó! Por favor, ¿puedes parar?</title><content type='html'>Bueeeeeno.... Han pasado muchas cosas en los últimos días. Por un lado, ya terminé el Master de Videojuegos! Tenemos por ahí un link a MegaUpload con el juego, pero faltan un par de cosillas y que esté subido a un sitio así es super cutrero, así que no lo pondré por aquí hasta que no esté hospedado en un lugar decente y siendo la versión final de verdad. Al final estoy bastante contento con el resultado (aunque como siempre, hay muchas cosas que podrían haber salido mucho mejor), y creo que la parte que más me interesaba a mí y en la que más tiempo que trabajado (los gráficos) ha quedado bastante apañada, sobre todo con todas las limitaciones que había, tanto restricciones de hardware (lo del Shader Model 2.0 de las narices) como de tiempo, ya que no sólo me podía dedicar a ello.&lt;br /&gt;&lt;br /&gt;Por otro lado, por fin he conseguido un trabajo en el sector del videojuego! Tampoco quiero ponerme en plan niña chillona histérica ni nada por el estilo (además que nunca me he puesto a contar cosas personales en este blog) pero estoy realmente contento. A partir del día 2 de noviembre empezaré a currar en Novarama (que próximamente estrenará Invizimals para PSP) con gente como Rubén que ya conocía de XNACommunity, y que como recordarán algunos le he fusilado vilmente algunos grandes trabajos como el importador de MD5 y Cal3D para XNA. Lamentablemente me temo que no podré contar nada lo que haga allí, pero mira, es lo que hay. :P&lt;br /&gt;&lt;br /&gt;Por último, se nota que llevo mucho tiempo haciendo lo mismo todos los días (currar en el proyecto del master), porque fue empezar las "vacaciones" y entrarme una especie de ansiedad chunga en plan yonqui del curro. Total, que me tuve que poner a añadir algunas cosas nuevas al juego (arreglar un bug en Vista, añadir que se pueda jugar con un FOV panorámico en resoluciones 4:3, y un par chorradas más) porque estaba increíblemente aburrido en casa. Ni siquiera tenía ganas de encender las consolas y claro, la gente normal o tiene clase o está currando, así que era realmente duro no hacer nada en todo el día. xD&lt;br /&gt;&lt;br /&gt;Y bueno, al final creo que ya voy a dejar por cerrado definitivamente el juego y como prometí anteriormente, he empezado otra vez a probar algunas cosas en XNA. Esta vez incluso traigo prueba gráfica. Todavía no se dónde me va a llevar, pero por ahora el tema va de sombras:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_e34Zp8mFxTc/SuG2nmWUENI/AAAAAAAAAoM/j_sI6stHvVA/s1600-h/posm.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_e34Zp8mFxTc/SuG2nmWUENI/AAAAAAAAAoM/j_sI6stHvVA/s400/posm.jpg" alt="" id="BLOGGER_PHOTO_ID_5395794619991855314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Stay tuned!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-5861039676414420617?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/5861039676414420617/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=5861039676414420617' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5861039676414420617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5861039676414420617'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2009/10/por-fin-se-acabo-por-fin-casi-empezo.html' title='¡Por fin se acabó! ¡Por fin casi empezó! Por favor, ¿puedes parar?'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_e34Zp8mFxTc/SuG2nmWUENI/AAAAAAAAAoM/j_sI6stHvVA/s72-c/posm.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-5418210521026405347</id><published>2009-10-14T11:38:00.002+02:00</published><updated>2009-10-14T11:41:17.862+02:00</updated><title type='text'>Boss Teaser</title><content type='html'>A falta de 3 días para la entrega final del máster, acabamos de añadir la cinemática de presentación del jefe final del juego, con erótico resultado (o no). Faltan detalles y el texturizado final del personaje, pero creo que ha quedado bastante apañao. :P&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ZDhoLmm3Krg&amp;amp;hl=es&amp;amp;fs=1&amp;amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/ZDhoLmm3Krg&amp;amp;hl=es&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Ahora un último empujón y luego... a descansar unos días mientras se deciden ciertas cosas. :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-5418210521026405347?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/5418210521026405347/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=5418210521026405347' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5418210521026405347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5418210521026405347'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2009/10/boss-teaser.html' title='Boss Teaser'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-2947281652048663886</id><published>2009-09-18T21:28:00.004+02:00</published><updated>2009-09-18T21:32:48.814+02:00</updated><title type='text'>Si ya lo sabía yo...</title><content type='html'>... que en último momento habría alguna cosa nueva. En fin... al final a última hora un componente importante de Vapor Mayhem ha sufrido una transformación bastante evidente:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_e34Zp8mFxTc/SrPfyv2f0WI/AAAAAAAAAmk/gxSmHA-W1zs/s1600-h/VM_18-8-109_19-25-34.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_e34Zp8mFxTc/SrPfyv2f0WI/AAAAAAAAAmk/gxSmHA-W1zs/s400/VM_18-8-109_19-25-34.jpg" alt="" id="BLOGGER_PHOTO_ID_5382892042569372002" border="0" /&gt;&lt;/a&gt;Sí, ya no es ese modelo gris enorme con ciertas zonas brillantes que se ve en el video. Por suerte ha logrado entrar en la demo de Art Futura, pero por desgracia en el video que se tenía que entregar se ha quedado como estaba. Bueno, es lo que hay...&lt;br /&gt;&lt;br /&gt;Por cierto, para cuando pongamos una demo lista para descargar, yo logro sacar el logro de Graphics Whore a 1024x768 sin despeinarme. ¿Podréis vosotros? Ya se verá cuando salga... xD&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-2947281652048663886?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/2947281652048663886/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=2947281652048663886' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2947281652048663886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2947281652048663886'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2009/09/si-ya-lo-sabia-yo.html' title='Si ya lo sabía yo...'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_e34Zp8mFxTc/SrPfyv2f0WI/AAAAAAAAAmk/gxSmHA-W1zs/s72-c/VM_18-8-109_19-25-34.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-5119367707743529891</id><published>2009-09-17T22:51:00.004+02:00</published><updated>2009-09-18T00:03:54.767+02:00</updated><title type='text'>El verano se acabó...</title><content type='html'>O al menos lo parece por el tiempo que hace, hemos pasado de sudar todo el día a tener incluso fresco al salir a la calle en apenas un par de días. Y bueno, ha sido un verano durillo aunque me regalé una semana de vacaciones, que nunca vienen mal y aún menos si se pasan en la siempre divertida Granada.&lt;br /&gt;&lt;br /&gt;Pero bueno, que aunque el ritmo de trabajo no ha sido tan intenso como en otras épocas y hemos tenido alguna baja temporal o casi total, no nos hemos estado tocando los huevos. Dentro de poco se celebra el Art Futura y hoy hemos terminado (al menos por la parte de programación) la primera versión de la demo que presentaremos al concurso de videojuegos. Es posible que nos dejen hacer una segunda entrega poco antes de que empiece el festival, pero por ahora esto es lo que tenemos:&lt;br /&gt;&lt;br /&gt;&lt;object width="400" height="300"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=6629509&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1"&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=6629509&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;&lt;a href="http://vimeo.com/6629509"&gt;Vapor Mayhem Art Futura Demo&lt;/a&gt; from &lt;a href="http://vimeo.com/user1381863"&gt;Alex Urbano&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;En el video sólo aparecen imágenes de gameplay pura y dura, pero hay muchos añadidos que no salen reflejados en la imagen tales como:&lt;br /&gt;&lt;br /&gt;- Logros (esto si que se ve :P)&lt;br /&gt;- Gestión de usuarios&lt;br /&gt;- Highscores&lt;br /&gt;- Reproducción de video&lt;br /&gt;- Bitmap fonts&lt;br /&gt;- Intros de imágenes&lt;br /&gt;- Tutorial del disparo rítmico&lt;br /&gt;&lt;br /&gt;Cuando tengamos la versión definitiva ya haré un video como los anteriores, mostrándolo todo, pero por ahora nos quedaremos con éste.&lt;br /&gt;&lt;br /&gt;Por la parte de gráficos, que ya se sabe que es lo que más me interesa, ha habido algunos añadidos y cambios, aunque por lo general no son tan vistosos como algunas de las cosas hechas en entregas anteriores. Resumiéndolo mucho, los añadidos son:&lt;br /&gt;&lt;br /&gt;- Rayos: un efecto bastante molón de rayos animados, que además permiten ser configurados al gusto del usuario y por tanto los podemos usar para varias situaciones como los relámpagos de la tormenta, para mostrar que un enemigo está a punto de sucumbir, y para indicar que el élite está dando órdenes a sus subordinados. Tienen algunos problemas de orientación, pero por lo general creo que quedó bastante apañao.&lt;br /&gt;&lt;br /&gt;- Distorsión de explosión: al estilo de las esferas-escudo, cuando se produce una explosión hay un efecto de distorsión como si fuera una onda expansiva. Es el resultado de una tarde de rallada harto de buscar cómo solucionar algunos bugs.&lt;br /&gt;&lt;br /&gt;- Manchas de aceite: Cuando un enemigo explota, deja una serie de manchas de aceite en el suelo. En realidad era sólo una prueba para comprobar si podía hacer el efecto y no quería darle un uso real, pero al final quedó medianamente vistoso. Podría haberlo hecho mucho más chulo, pero dudo que me entrara en Shader Model 2 (si, aún estamos con esa mierda de restricción), así que al final lo dejé tal y como está ahora. Pasa bastante desapercibido. :(&lt;br /&gt;&lt;br /&gt;- Mejoras en shadow mapping: básicamente se ha reducido mucho el flickering que se producía al mover la cámara a nivel sub-texel. En los "pannings" de la cámara se han eliminado por completo, pero en la rotación de la misma aún queda bastante trabajo. Probé un método para eliminarlo por completo, pero hacía que se utilizara mucho peor el shadow map, así que prefería algo de flicker en vez de sacrificar resolución de la sombra. Igualmente, el filtro de las sombras sigue vibrando, así que si está activado la mejora se aprecia poco. Aún así me puse muy contento con la mejora. :)&lt;br /&gt;&lt;br /&gt;- Motion blur: esto no es realmente un añadido, ya que lo había implementado para el juego hace mucho. Poco después lo volví a suprimir porque no estaba contento con el resultado. En un principio había seguido &lt;a href="http://http.developer.nvidia.com/GPUGems3/gpugems3_ch27.html"&gt;un artículo del GPU Gems 3&lt;/a&gt; que ofrecía un método sencillo para hacer motion blur para cambios de cámara funcionando sólo como un post-proceso. La verdad es que cumplía su cometido, pero tenía varios fallos. Para empezar sólo servía para los movimientos de cámara, lo cual está bien pero no me satisfacía en absoluto, yo quería blur con objetos en movimiento! Así que volví a los orígenes, volví a la técnica que &lt;a href="http://www.codeplex.com/XNACommunity/Wiki/View.aspx?title=Motion%20Blur&amp;amp;referringTitle=Ejemplos"&gt;ya había usado en el pasado&lt;/a&gt;. Como quizás alguien recuerde (looooool) este método tenía &lt;a href="http://elgoe.blogspot.com/2008/06/revisiting-cosas-antiguas.html"&gt;ciertos fallos&lt;/a&gt;... pues bien, los he conseguido solucionar sin perder mucho rendimiento, y lo he montado en el juego de tal manera que también tenemos per-object motion blur. Para ser sinceros no llega al nivel del Crysis, pero para haberlo hecho en una mañana la verdad es que estoy muy contento con el resultado. :) En el video no se ve muy bien, pero estaba activado. ;)&lt;br /&gt;&lt;br /&gt;Y bien, por ahora nada más. Ah, si... aunque no lo parezca, no me olvido de XNA. Es más, tengo algunas cosas en mente... Ya queda menos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-5119367707743529891?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/5119367707743529891/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=5119367707743529891' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5119367707743529891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5119367707743529891'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2009/09/el-verano-se-acabo.html' title='El verano se acabó...'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-5745884373698006320</id><published>2009-07-02T15:51:00.003+02:00</published><updated>2009-07-02T15:55:26.200+02:00</updated><title type='text'>Tercera entrega finiquitada!</title><content type='html'>Joer, desde la segunda que no escribía nada por aquí. Aunque en el video que voy a poner abajo parece que ha habido relativamente poco avance, puedo asegurar que se han añadido un montón de cosas nuevas, algunas de ellas no muy detectables a simple vista. También es cierto que quizás esta vez hemos bajado un pelín el ritmo, pero ahora la cosa ya tiene mejor pinta. También nos hemos dado cuenta de que la parte final del puente es increíblemente sosa, pero ya tenemos algunas ideas para mejorarlo, y seguramente en un par de días ya esté mucho mejor que lo que verán en la entrega... En fin, es lo que pasa cuando estás con estas cosas, que el juego te cambia un huevo de un día para otro. Ale, aquí dejo el video, recomendado verlo en HD. ;)&lt;br /&gt;&lt;br /&gt;&lt;object width="400" height="225"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5421808&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1"&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=5421808&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;&lt;a href="http://vimeo.com/5421808"&gt;Vapor Mayhem Demo 3&lt;/a&gt; from &lt;a href="http://vimeo.com/user1381863"&gt;Alex Urbano&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-5745884373698006320?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/5745884373698006320/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=5745884373698006320' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5745884373698006320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5745884373698006320'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2009/07/tercera-entrega-finiquitada.html' title='Tercera entrega finiquitada!'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-2617835697445303967</id><published>2009-05-05T12:00:00.001+02:00</published><updated>2009-05-05T12:02:52.365+02:00</updated><title type='text'>Segunda entrega finiquitada!</title><content type='html'>Ayer por fin hicimos la segunda entrega del master. Esta vez no hemos ido tan apurados como la primera vez y el resultado ha sido bastante bueno a mi parecer, pero no por ello es el momento de relajarse. Ahora ya toca empezar a hacer cosas para que de la sensación de ser un juego más pulido y "profesional", y eso siempre es dificil. Dejo un video de la demo que entregamos. :)&lt;br /&gt;&lt;br /&gt;&lt;object width="400" height="300"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=4476321&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1"&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=4476321&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;&lt;a href="http://vimeo.com/4476321"&gt;Vapor Mayhem Demo 2&lt;/a&gt; from &lt;a href="http://vimeo.com/user1381863"&gt;Alex Urbano&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-2617835697445303967?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/2617835697445303967/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=2617835697445303967' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2617835697445303967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2617835697445303967'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2009/05/segunda-entrega-finiquitada.html' title='Segunda entrega finiquitada!'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-4522448779988866297</id><published>2009-04-13T23:42:00.002+02:00</published><updated>2009-04-13T23:50:05.807+02:00</updated><title type='text'>Como canta el gran Tom Jones...</title><content type='html'>I'm alive!! And Im real! I can breath and touch and see and feel, Im alive! Pues eso, hace mucho que no cuelgo nada y como hace un par de días fue mi 25 cumpleaños, toca colgar algo de WIP del proyecto de master así en plan regalito xD. La cosa sigue para adelante, y dejo un par de capturas en las que se ven algunas de las nuevas cosas que tenemos. Adivinen en sus casas el qué!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_e34Zp8mFxTc/SeOzUnhJW1I/AAAAAAAAAgs/rmM9OkL8qtE/s1600-h/VM_alpha_10.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_e34Zp8mFxTc/SeOzUnhJW1I/AAAAAAAAAgs/rmM9OkL8qtE/s400/VM_alpha_10.jpg" alt="" id="BLOGGER_PHOTO_ID_5324296351268821842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_e34Zp8mFxTc/SeOzcDDO-jI/AAAAAAAAAg0/TzwlW4epg9Q/s1600-h/VM_alpha_11.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_e34Zp8mFxTc/SeOzcDDO-jI/AAAAAAAAAg0/TzwlW4epg9Q/s400/VM_alpha_11.jpg" alt="" id="BLOGGER_PHOTO_ID_5324296478918638130" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-4522448779988866297?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/4522448779988866297/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=4522448779988866297' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/4522448779988866297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/4522448779988866297'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2009/04/como-canta-el-gran-tom-jones.html' title='Como canta el gran Tom Jones...'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_e34Zp8mFxTc/SeOzUnhJW1I/AAAAAAAAAgs/rmM9OkL8qtE/s72-c/VM_alpha_10.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-2511125023442596299</id><published>2009-03-22T16:45:00.006+01:00</published><updated>2009-03-22T17:05:02.762+01:00</updated><title type='text'>Primera entraga finiquitada!</title><content type='html'>Bueno, en realidad hace unos cuantos días de esto, pero no me había acordado de actualizar... ^^U A principios de mes hicimos la primera entrega de nuestro proyecto de master. Ahora ya está mucho más avanzado, pero dejo un video de lo que teníamos por aquel entonces:&lt;br /&gt;&lt;br /&gt;&lt;object width="400" height="302"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=3454641&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1"&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=3454641&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="302"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/3454641"&gt;Vapor Mayhem Demo 1&lt;/a&gt; from &lt;a href="http://vimeo.com/user1381863"&gt;Alex Urbano&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;br /&gt;&lt;object width="400" height="302"&gt;&lt;/object&gt;&lt;br /&gt;Actualmente ya tenemos mallas animadas, partículas, algún efecto más, la mecánica del QTE implementada, etc... Pero bueno, en el video ya se ven hacia dónde va el juego. Dejo unas pocas imágenes más recientes:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_e34Zp8mFxTc/ScZfUhmH8mI/AAAAAAAAAf0/CKTNY455rtM/s1600-h/VM_alpha_6.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_e34Zp8mFxTc/ScZfUhmH8mI/AAAAAAAAAf0/CKTNY455rtM/s400/VM_alpha_6.png" alt="" id="BLOGGER_PHOTO_ID_5316041216377746018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_e34Zp8mFxTc/ScZgTpjdRFI/AAAAAAAAAf8/WSvy0iVgPHs/s1600-h/VM_alpha_7.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_e34Zp8mFxTc/ScZgTpjdRFI/AAAAAAAAAf8/WSvy0iVgPHs/s400/VM_alpha_7.png" alt="" id="BLOGGER_PHOTO_ID_5316042300845802578" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_e34Zp8mFxTc/ScZhFLSoNcI/AAAAAAAAAgE/jaF3fS8CFtU/s1600-h/VM_alpha_8.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_e34Zp8mFxTc/ScZhFLSoNcI/AAAAAAAAAgE/jaF3fS8CFtU/s400/VM_alpha_8.jpg" alt="" id="BLOGGER_PHOTO_ID_5316043151715612098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_e34Zp8mFxTc/ScZhdnQSZDI/AAAAAAAAAgM/EHqO_bhjykc/s1600-h/VM_alpha_9.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_e34Zp8mFxTc/ScZhdnQSZDI/AAAAAAAAAgM/EHqO_bhjykc/s400/VM_alpha_9.jpg" alt="" id="BLOGGER_PHOTO_ID_5316043571538846770" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-2511125023442596299?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/2511125023442596299/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=2511125023442596299' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2511125023442596299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2511125023442596299'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2009/03/primera-entraga-finiquitada.html' title='Primera entraga finiquitada!'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_e34Zp8mFxTc/ScZfUhmH8mI/AAAAAAAAAf0/CKTNY455rtM/s72-c/VM_alpha_6.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-3334928364089143638</id><published>2009-01-25T15:05:00.004+01:00</published><updated>2009-01-25T15:11:10.186+01:00</updated><title type='text'>Y otro más!</title><content type='html'>&lt;div style="text-align: center;"&gt;Bueno, ya están implementados los tres efectos de post-proceso básicos que tendrá el juego del master. El último en caer han sido los god rays:&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_e34Zp8mFxTc/SXxy7duMIVI/AAAAAAAAAew/X4-fhmzSq3I/s1600-h/godrayshdr2.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_e34Zp8mFxTc/SXxy7duMIVI/AAAAAAAAAew/X4-fhmzSq3I/s400/godrayshdr2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5295233627797070162" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 286px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238);"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;Creo que la imagen es bastante evidente, pero cuando tenga un rato ya grabaré un video o algo... Ahora toca a seguir con las prácticas "de verdad" que nos dijeron de hacer en clase y optimizar todos los efectos en los ratos libres... Bueno, al menos en una 8800 van perfectos. xD&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-3334928364089143638?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/3334928364089143638/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=3334928364089143638' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/3334928364089143638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/3334928364089143638'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2009/01/y-otro-ms.html' title='Y otro más!'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_e34Zp8mFxTc/SXxy7duMIVI/AAAAAAAAAew/X4-fhmzSq3I/s72-c/godrayshdr2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-5543454458432623021</id><published>2009-01-20T23:21:00.004+01:00</published><updated>2009-01-20T23:26:59.924+01:00</updated><title type='text'>No he podido evitarlo...</title><content type='html'>Aquí está el video del shader de HDR tal y como lo tengo ahora:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/cKCOFII6oZs&amp;amp;hl=es&amp;amp;fs=1&amp;amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/cKCOFII6oZs&amp;amp;hl=es&amp;amp;fs=1&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Ahora tocará dejar un poco de lado lo divertido y ponerse a hacer algo verdaderamente útil para la primera entrega del proyecto... :P&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-5543454458432623021?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/5543454458432623021/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=5543454458432623021' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5543454458432623021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5543454458432623021'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2009/01/no-he-podido-evitarlo.html' title='No he podido evitarlo...'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-112218037006543918</id><published>2009-01-20T00:13:00.003+01:00</published><updated>2009-01-20T00:18:28.412+01:00</updated><title type='text'>Habemus HDR!</title><content type='html'>Hoy es un día feliz para mí. Hacía mucho tiempo que quería probarlo pero hasta ahora no me había puesto a ello pero bueno, una imagen dice más que mil palabras...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_e34Zp8mFxTc/SXUJew3CdQI/AAAAAAAAAeQ/GFiLLssVoNg/s1600-h/HDR.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_e34Zp8mFxTc/SXUJew3CdQI/AAAAAAAAAeQ/GFiLLssVoNg/s400/HDR.jpg" alt="" id="BLOGGER_PHOTO_ID_5293147361160361218" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Exacto, he añadido un post-proceso de HDR a la minidemo que estoy haciendo para probar efectos que usaremos en el proyecto del master. En realidad aún queda mucho por afinar y no se está teniendo en cuenta todo el rango de color que permiten representar las texturas de floats, pero por lo menos ya queda bonito y a partir de lo hecho no puede hacer más que mejorar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-112218037006543918?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/112218037006543918/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=112218037006543918' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/112218037006543918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/112218037006543918'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2009/01/habemus-hdr.html' title='Habemus HDR!'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_e34Zp8mFxTc/SXUJew3CdQI/AAAAAAAAAeQ/GFiLLssVoNg/s72-c/HDR.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-7117944541817810016</id><published>2009-01-13T23:29:00.003+01:00</published><updated>2009-01-13T23:40:03.483+01:00</updated><title type='text'>Still Alive</title><content type='html'>Cuánto tiempo! Esta vez no voy a perder el tiempo con excusas, ya que son las de siempre... El curro, el master, las fiestas de navidad-fin-de-año-reyes, etc, etc, etc...&lt;br /&gt;&lt;br /&gt;Pero no he estado parado del todo. Aparte de algunas pruebas no finalizadas de varios efectos interesantes, acabo de colgar la demo de sombras omnidireccionales que hice hace tiempo. Quedaban un par de aspectos por pulir, pero ya está terminada y disponible para todo el mundo &lt;a href="http://www.codeplex.com/XNACommunity/Wiki/View.aspx?title=OmnidirectionalShadows&amp;amp;referringTitle=Home"&gt;en el lugar habitual&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Por otro lado he empezado a meterme en el apasionante mundo de Direct3D puro, sin usar XNA. Va a ser necesario para el proyecto del máster y como no quería que me viniese todo de nuevo, hace un tiempo me puse a probar algunas cosas por mi cuenta. Aparte de lo básico para pintar cosas, he probado algún que otro shader y ya he implementado una primera versión de uno que usaremos en nuestro juego:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_e34Zp8mFxTc/SW0XW-qVw2I/AAAAAAAAAeI/Z-9Kgi8nPGk/s1600-h/toon1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_e34Zp8mFxTc/SW0XW-qVw2I/AAAAAAAAAeI/Z-9Kgi8nPGk/s400/toon1.jpg" alt="" id="BLOGGER_PHOTO_ID_5290910820775347042" border="0" /&gt;&lt;/a&gt;Efectivamente es una detección de siluetas para dar un aspecto ligeramente cartoon al juego. No será tan evidente como en la captura, pero era sólo una prueba.&lt;br /&gt;&lt;br /&gt;Espero que próximamente haya mucho más! ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-7117944541817810016?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/7117944541817810016/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=7117944541817810016' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/7117944541817810016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/7117944541817810016'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2009/01/still-alive.html' title='Still Alive'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_e34Zp8mFxTc/SW0XW-qVw2I/AAAAAAAAAeI/Z-9Kgi8nPGk/s72-c/toon1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-200957589425203270</id><published>2008-11-18T09:11:00.002+01:00</published><updated>2008-11-18T09:18:21.405+01:00</updated><title type='text'>Dicen que un poco de estrés no viene mal</title><content type='html'>Pero a mí me daban dos!&lt;br /&gt;&lt;br /&gt;Como es evidente viendo el grado de actividad del blog en las últimas semanas, mis obligaciones diarias no me dejan mucho tiempo para currar en los siempre entretenidos ejemplos que tanto me gusta hacer. :(  Pero hoy aprovecho esta pequeña entrada para anunciar que se ha abierto un nuevo blog donde mi grupo de master y yo iremos posteando avances de nuestro proyecto y demás chorradas que se nos ocurran (fotos a lo 'making of', arte conceptual, lloros personales, etc).&lt;br /&gt;&lt;br /&gt;No os perdáis &lt;a style="font-weight: bold;" href="http://www.hardcadeproject.blogspot.com/"&gt;The Hardcade Project&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-200957589425203270?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/200957589425203270/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=200957589425203270' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/200957589425203270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/200957589425203270'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/11/dicen-que-un-poco-de-estrs-no-viene-mal.html' title='Dicen que un poco de estrés no viene mal'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-5784717959092329557</id><published>2008-10-26T11:12:00.002+01:00</published><updated>2008-10-26T11:18:01.684+01:00</updated><title type='text'>Y después de tanto tiempo...</title><content type='html'>nuevo ejemplo subido! En realidad lo subí anteayer, pero no he tenido tiempo de comentarlo hasta ahora. El escogido ha sido el de toon shading, así que ya se puede trastear con él &lt;a href="http://www.codeplex.com/XNACommunity/Wiki/View.aspx?title=ToonShading&amp;amp;referringTitle=Home"&gt;en el lugar habitual&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_e34Zp8mFxTc/SQRDvgwe3bI/AAAAAAAAAb4/itlT6gYbzaA/s1600-h/toonsec.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 210px;" src="http://3.bp.blogspot.com/_e34Zp8mFxTc/SQRDvgwe3bI/AAAAAAAAAb4/itlT6gYbzaA/s400/toonsec.jpg" alt="" id="BLOGGER_PHOTO_ID_5261404748201778610" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-5784717959092329557?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/5784717959092329557/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=5784717959092329557' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5784717959092329557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5784717959092329557'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/10/y-despus-de-tanto-tiempo.html' title='Y después de tanto tiempo...'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_e34Zp8mFxTc/SQRDvgwe3bI/AAAAAAAAAb4/itlT6gYbzaA/s72-c/toonsec.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-6999520630892208774</id><published>2008-10-23T14:54:00.002+02:00</published><updated>2008-10-23T15:13:09.693+02:00</updated><title type='text'>Ahora sí</title><content type='html'>Saludad a mi nuevo amigo:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_e34Zp8mFxTc/SQB0Rid_7bI/AAAAAAAAAbw/OcJ4FJEloGM/s1600-h/forgotten.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 393px; height: 383px;" src="http://4.bp.blogspot.com/_e34Zp8mFxTc/SQB0Rid_7bI/AAAAAAAAAbw/OcJ4FJEloGM/s400/forgotten.jpg" alt="" id="BLOGGER_PHOTO_ID_5260332209427967410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;He podido hacerme con la expansión del DooM 3 y así como el Lost Soul no chutaba con el cargador de Rubén, con el Forgotten no ha habido problema, así que él será el elegido para aparecer en el ejemplo de shadow mapping omnidireccional. No sé si liarme a meter algún detalle más como alguna partícula de fuego detrás de él para que realmente parezca el foco de luz ya que no quiero complicar el tema más de lo necesario, pero ya lo decidiré.&lt;br /&gt;&lt;br /&gt;El ejemplo de toon shading no lo he tocado demasiado, pero ayer me dediqué a limpiar un poco el código y meter alguna chorrada como diferentes modos de visualización (sin siluetas animadas, sin siluetas, con iluminacion "normal", etc). Próximamente más!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-6999520630892208774?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/6999520630892208774/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=6999520630892208774' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/6999520630892208774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/6999520630892208774'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/10/ahora-s.html' title='Ahora sí'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_e34Zp8mFxTc/SQB0Rid_7bI/AAAAAAAAAbw/OcJ4FJEloGM/s72-c/forgotten.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-5041499829516276742</id><published>2008-10-22T16:16:00.002+02:00</published><updated>2008-10-22T16:30:54.352+02:00</updated><title type='text'>Toon orgy!</title><content type='html'>Esto es un no parar. Hoy se me ha ocurrido un método para la animación de las siluetas y bueno... un video vale más que n-cientas palabras! (Es recomendable ir a YouTube y verlo en "Alta Calidad")&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/cs9xUmu3aMA&amp;amp;hl=es&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/cs9xUmu3aMA&amp;amp;hl=es&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Lo malo es que para conseguirlo he usado VTF (Vertex Texture Fetching), así que la demo sólo funcionará en Xbox360 y PCs con gráficas nVidia a partir de la GeForce 6... Básicamente lo que hago es trasladar los vértices a través de su normal de forma "aleatoria". ¿Cómo conseguir esa aleatoriedad? Cuando se carga la aplicación, genero una textura de floats y la relleno de valores aleatorios, y luego hago un lookup de estas valores desde el vertex shader con unas coordenadas de textura que dependen de la posición del vértice y un cierto offset aleatorio que genero cada cierto tiempo (como la animación de los trazos a lápiz). Creo que ya ha llegado el momento de limpiar cosas y prepararse para subirlo... ^^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-5041499829516276742?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/5041499829516276742/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=5041499829516276742' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5041499829516276742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5041499829516276742'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/10/toon-orgy.html' title='Toon orgy!'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-2858215142511690609</id><published>2008-10-21T23:55:00.003+02:00</published><updated>2008-10-22T00:15:16.459+02:00</updated><title type='text'>Olescul efex!</title><content type='html'>Uau, esto parecen los viejos tiempos... xD Hoy he probado un par de cosas en el ejemplo de toon shading... bueno, en realidad tres cosas pero una la he dejado para más adelante.&lt;br /&gt;&lt;br /&gt;Por un lado he añadido la animación de los trazos a lápiz que se ve en las partes sombreadas. Esto era realmente sencillo, simplemente es modificar las coordenadas de textura de los trazos cada cierto tiempo (normalmente mayor que el que se tarda en pintar un frame) según lo que dicte un número aleatorio. La verdad es que creo que queda medianamente bien, aunque según la textura usada y la cantidad de pantalla que ocupen estas zonas sombreadas, se puede notar un poco demasiado el 'tileado'... Pero bueno, yo no estoy como para ponerme a hacer texturas perfectas.&lt;br /&gt;&lt;br /&gt;Por otro lado he cambiado la forma de dibujar la silueta. Lo cierto es que he añadido una silueta más. :P Aparte del efecto de los trazos que vi en el Valkyria Chronicles y que me inspiró para hacer este ejemplo, quería intentar otra cosa con las siluetas para que el conjunto quedara un poco más espectacular. Y eso que quería probar es lo que se ve en &lt;a href="http://www.okami-game.com/"&gt;Okami&lt;/a&gt;. En este juego (y en muchos otros antiguos como &lt;a href="http://es.wikipedia.org/wiki/Jet_Set_Radio"&gt;Jet Set Radio&lt;/a&gt;) no se usa una detección de siluetas en el pixel shader como se hace hoy en día (y como estaba hecho en la foto de ayer), sino que se usa un truco bastante curioso. Se pinta la geometría normalmente con el sombreado cel "de toda la vida", y luego se giran las normales, se escala un poco el modelo y se pinta de negro. Es decir, se cambia el tipo de culling, se pinta de negro y un poco más grande y voilà, ya se ven unas bonitas siluetas. No son tan precisas como con el método más moderno, pero antiguamente era lo más rápido y además permite hacer ciertas cosas...&lt;br /&gt;&lt;br /&gt;Esto me lleva a lo tercero que he querido probar. En los videos de Youtube no se ve demasiado bien, pero creo recordar que en Okami aparte de un cel-shading muy sencillito, se movía la geometría de las siluetas para simular el efecto de que se estaba pintando a mano toda la escena a casi cada frame. Eso fue un detalle que sencillamente me enamoró en su día. He hecho un par de pruebas para representar el mismo efecto y no me ha gustado demasiado el resultado, así que lo he dejado para más adelante. Básicamente, el problema es mover cada vértice de manera suficientemente sutil, aleatoria e independiente de sus vecinos como para que el efecto no resulte antinatural. No se, se me ocurren un par de maneras pero ya es tarde y hay que descansar.... lo justo.&lt;br /&gt;&lt;br /&gt;Ah! Y de regalo otro video! En este se ven las siluetas "nuevas" (aunque mantengo las antiguas para que haya más detalle) y la animación de los trazos.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/xCuwX3HpXMs&amp;amp;hl=es&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/xCuwX3HpXMs&amp;amp;hl=es&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-2858215142511690609?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/2858215142511690609/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=2858215142511690609' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2858215142511690609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2858215142511690609'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/10/olescul-efex.html' title='Olescul efex!'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-3265220622571500091</id><published>2008-10-21T00:19:00.003+02:00</published><updated>2008-10-21T00:28:20.175+02:00</updated><title type='text'>Culo inquieto</title><content type='html'>Si hay alguien que sigue aunque sea un poco este blog, ya se habrá dado cuenta de que mi capacidad de mantener mi atención sobre algo durante períodos medianamente prolongados de tiempo es... limitada, por decirlo de alguna manera. Y para demostrarlo, aquí está la entrada de hoy.&lt;br /&gt;&lt;br /&gt;Todavía no he acabo de dejar lista las sombras omnidireccionales, que ya me han entrado ganas de probar otra cosa. La idea la he sacado de un juego de PS3 llamado &lt;a href="http://en.wikipedia.org/wiki/Valkyrie_of_the_Battlefield:_Gallian_Chronicles"&gt;Valkyria Chronicles&lt;/a&gt;. El juego en sí no me llama un carajo, pero usa un estilo de cell-shading que me gustó mucho la primera vez que lo vi. Tiene la peculiaridad de que las zonas sombreadas tienen un efecto de esbozo a lápiz que me resultó interesante, y no sé porqué hoy me ha dado por probarlo. Todavía no está acabado ni de lejos (sólo le he podido dedicar un rato), pero he avanzado lo suficiente como para tener ganas de seguir cuanto antes! ^^&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_e34Zp8mFxTc/SP0FzmNErxI/AAAAAAAAAbo/u98uPvv0MMQ/s1600-h/toon.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_e34Zp8mFxTc/SP0FzmNErxI/AAAAAAAAAbo/u98uPvv0MMQ/s400/toon.jpg" alt="" id="BLOGGER_PHOTO_ID_5259366323825454866" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-3265220622571500091?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/3265220622571500091/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=3265220622571500091' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/3265220622571500091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/3265220622571500091'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/10/culo-inquieto.html' title='Culo inquieto'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_e34Zp8mFxTc/SP0FzmNErxI/AAAAAAAAAbo/u98uPvv0MMQ/s72-c/toon.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-7698631145962829460</id><published>2008-10-17T00:20:00.003+02:00</published><updated>2008-10-17T00:28:35.754+02:00</updated><title type='text'>Vuelven los videos!</title><content type='html'>Primero, lo bonito (o lo que yo espero que sea bonito :P):&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/_mliL_qiy_M&amp;amp;hl=es&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/_mliL_qiy_M&amp;amp;hl=es&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Y entonces, qué es lo feo? Bueno, realmente el ejemplo en teoría ya está, pero en vez de una esfera blanca cutre para representar el punto de luz, quería poner algún modelo interesante, en concreto quería usar el siguiente:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_e34Zp8mFxTc/SPe-0h6sUKI/AAAAAAAAAbg/5tE1YP2H9U0/s1600-h/lostsoul2.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_e34Zp8mFxTc/SPe-0h6sUKI/AAAAAAAAAbg/5tE1YP2H9U0/s400/lostsoul2.gif" alt="" id="BLOGGER_PHOTO_ID_5257880899645362338" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Por si no se conoce, es un Lost Soul de DooM 3. Podría añadirlo fácilmente con el importer de Rubén, y como tiene una llama de fuego por detrás queda bastante bien en la escena. Pero no se porqué sólo carga las mandíbulas y no el modelo entero, así que voy a tener que buscar una alternativa (quizás un Forgotten del Resurrection of Evil, pero ahora no lo tengo a mano).&lt;br /&gt;&lt;br /&gt;En fin, que ya sólo queda afinarlo un poco para poderlo subir. Próximamente más!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-7698631145962829460?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/7698631145962829460/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=7698631145962829460' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/7698631145962829460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/7698631145962829460'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/10/vuelven-los-videos.html' title='Vuelven los videos!'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_e34Zp8mFxTc/SPe-0h6sUKI/AAAAAAAAAbg/5tE1YP2H9U0/s72-c/lostsoul2.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-3380699914981713360</id><published>2008-10-15T22:42:00.003+02:00</published><updated>2008-10-15T22:48:16.071+02:00</updated><title type='text'>Sacando de donde no hay</title><content type='html'>Pese al curro, el master y los asuntos personales, he conseguido encontrar algo de tiempo para esto:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_e34Zp8mFxTc/SPZV_7s9p1I/AAAAAAAAAbY/1Zj_4rQ72Wo/s1600-h/tiraomnishadow2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_e34Zp8mFxTc/SPZV_7s9p1I/AAAAAAAAAbY/1Zj_4rQ72Wo/s400/tiraomnishadow2.jpg" alt="" id="BLOGGER_PHOTO_ID_5257484171848034130" border="0" /&gt;&lt;/a&gt;Quizás no se ve demasiado bien en la tira de fotos, pero se trata de shadow mapping omnidireccional. Ahora mismo lo tengo en fase de "dejar bonito", pero lo básico ya está implementado y funcionando "perfectamente" (tiene algunos fallos propios del tipo de técnica usada, ya entraré en detalles en otro momento).&lt;br /&gt;&lt;br /&gt;Ahora voy a tener algo de trabajo extra, pero espero tenerlo listo para el fin de semana. ^^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-3380699914981713360?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/3380699914981713360/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=3380699914981713360' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/3380699914981713360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/3380699914981713360'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/10/sacando-de-donde-no-hay.html' title='Sacando de donde no hay'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_e34Zp8mFxTc/SPZV_7s9p1I/AAAAAAAAAbY/1Zj_4rQ72Wo/s72-c/tiraomnishadow2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-237590827091862247</id><published>2008-09-29T23:37:00.008+02:00</published><updated>2008-09-30T00:00:22.021+02:00</updated><title type='text'>Ya queda menos...</title><content type='html'>Para que empiece lo bueno. Creo que el bajón de novedades y trabajo en general se ha notado (el trabajo no remunerado, por supuesto), y no estoy seguro de poder recuperar completamente el ritmo en unos días... Después de las vacaciones la carga de curro ha sido bastante espectacular, y la próxima semana ya comienza el master de videojuegos que cursaré durante el resto del año y gran parte del que viene, así que voy a estar realmente ocupado... En fin, a ver qué tal lo llevo, pero más vale que disfrute estos días "tranquilos" porque lo que se avecina va a ser durillo.&lt;br /&gt;&lt;br /&gt;Aún así ha habido algunas novedades, como que hace unos días salió la versión beta de XNA 3.0, con interesantes novedades como un soporte mucho más currado del formato FBX (ahora acepta múltiples texturas por modelo, por ejemplo) y nuevos añadidos a las clases de tratamiento de sonido que se presentaron en la CTP. Una de las cosas más interesantes es la función GetVisualizationData, que permite obtener en tiempo real información de la frecuencia y los samples de la música que esté sonando en ese momento desde el nuevo MediaPlayer (la clase del framework, no el programa obviamente xD). Hace un par de días me puse 5 minutos y me monté una chorrada como ésta:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_e34Zp8mFxTc/SOFOVmIbT8I/AAAAAAAAAbQ/tgJLgJCKpCg/s1600-h/visualizer.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_e34Zp8mFxTc/SOFOVmIbT8I/AAAAAAAAAbQ/tgJLgJCKpCg/s400/visualizer.jpg" alt="" id="BLOGGER_PHOTO_ID_5251564773410820034" border="0" /&gt;&lt;/a&gt;En realidad no es nada, simplemente he puesto de manera visual lo que devuelve esta función, pero sería muy interesante estudiar qué cosas se podrían llegar a hacer (en concreto juegos que se adapten a la música, que era algo que he querido probar desde hace mucho tiempo). Yo no entiendo mucho de sonido, pero si algun día tengo un rato (sigh) le echaré un vistazo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-237590827091862247?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/237590827091862247/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=237590827091862247' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/237590827091862247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/237590827091862247'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/09/ya-queda-menos.html' title='Ya queda menos...'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_e34Zp8mFxTc/SOFOVmIbT8I/AAAAAAAAAbQ/tgJLgJCKpCg/s72-c/visualizer.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-6867094599516110967</id><published>2008-09-11T15:45:00.003+02:00</published><updated>2008-09-11T15:49:15.609+02:00</updated><title type='text'>Forzando la máquina</title><content type='html'>Estos han sido unos días duros y tremendamente divertidos a la vez. La semana que viene pillo vacaciones (esta vez un poco más decentes, no cuatro míseros días) y en el curro se están encargando de recordarme cada día porqué debo tener ganas de pillarlas. Y claro, después de estar toda la semana encerrado te dan ganas de liarla por ahí y olvidarte un poco de todo, así que el fin de semana pasado me fui a las fiestas de Barbastro (que por cierto son tremendas, nadie debería perdérselas) y ahora en vacaciones me iré una semanita a Suecia a pasar frío y estar bien lejos.&lt;br /&gt;&lt;br /&gt;Pero bueno, no he estado completamente parado. He afinado un poco el tema de las nubes (intentaré subirlo antes de irme, quizás mañana o pasado) y he tocado alguna cosilla de Arles aquí y allá. Javi ha mejorado mucho el tema de la gestión de la escena y yo he añadido unas estadísticas de rendimiento para el render del editor, aparte de la posibilidad de quitar la limitación de frames por segundo típica de XNA.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_e34Zp8mFxTc/SMkhILHmd5I/AAAAAAAAAXs/qa5C71U-d5s/s1600-h/arles3.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_e34Zp8mFxTc/SMkhILHmd5I/AAAAAAAAAXs/qa5C71U-d5s/s400/arles3.jpg" alt="" id="BLOGGER_PHOTO_ID_5244759665356994450" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Como Rubén está terminando su juego para el BDP y yo me piro por ahí, este tema estará bastante parado un tiempo, pero ya se irán haciendo cosas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-6867094599516110967?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/6867094599516110967/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=6867094599516110967' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/6867094599516110967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/6867094599516110967'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/09/forzando-la-mquina.html' title='Forzando la máquina'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_e34Zp8mFxTc/SMkhILHmd5I/AAAAAAAAAXs/qa5C71U-d5s/s72-c/arles3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-3432968808882467217</id><published>2008-09-04T21:38:00.004+02:00</published><updated>2008-09-04T22:00:06.352+02:00</updated><title type='text'>¿ A qué huelen las nubes?</title><content type='html'>A Perlin noise! Ya están medio terminadas, y este es el aspecto que lucen:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/td_wpM7ddtQ&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/td_wpM7ddtQ&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Se puede modificar la velocidad de las nubes, su densidad, la cantidad de superficie que ocupan... y próximamente la dirección.&lt;br /&gt;&lt;br /&gt;Al principio iba a usar simplex noise (una modificación del perlin noise "clásico" que en teoría da más calidad de imagen), pero el shader era algo más lento y personalmente me gustaba menos cómo quedaba (en la imagen del post anterior se ve este tipo de función). Total, que se ha quedado el perlin de toda la vida y ya da el resultado deseado.&lt;br /&gt;&lt;br /&gt;También había pensado calcular un normal map a partir del "heightmap" que se genera y así iluminar de forma más molona las nubes, pero por ahora lo he descartado porque no sé si valdrá la pena la pérdida de rendimiento que se sufriría.&lt;br /&gt;&lt;br /&gt;Lo siguiente debería ser algo más volumétrico...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-3432968808882467217?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/3432968808882467217/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=3432968808882467217' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/3432968808882467217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/3432968808882467217'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/09/qu-huelen-las-nubes.html' title='¿ A qué huelen las nubes?'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-5845833192659077192</id><published>2008-09-02T22:22:00.004+02:00</published><updated>2008-09-02T22:35:46.326+02:00</updated><title type='text'>Presentando Arles</title><content type='html'>Alguna vez lo he comentado, pero hasta ahora no había enseñado (y en la página del proyecto en Google Code tampoco se ve nada). Éste es el aspecto que tiene actualmente el editor de terrenos en el que están trabajando los coordinadores de XNACommunity, Arles:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_e34Zp8mFxTc/SL2hLy9D-KI/AAAAAAAAAW8/86zlUb20O2U/s1600-h/arlesDome.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_e34Zp8mFxTc/SL2hLy9D-KI/AAAAAAAAAW8/86zlUb20O2U/s400/arlesDome.jpg" alt="" id="BLOGGER_PHOTO_ID_5241522765357643938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Por ahora todo es muy, muy básico, pero hay algunas cosas de interfaz interesantes ya implementadas (como la posibilidad de relizar 'Deshacer'/'Rehacer') y ya está prácticamente integrado del todo mi último skydome con atmospheric scattering.&lt;br /&gt;&lt;br /&gt;Se avanza poco a poco porque lo hacemos en los ratos libres (que por ejemplo en mi caso son escasos), pero seguro que acaba siendo algo interesante. En la parte derecha del blog hay un link a la web del proyecto, donde ya se puede consultar el código y trastear con él.&lt;br /&gt;&lt;br /&gt;Y aprovechando que se habla de Arles, he estado un par de días mirando una manera sencilla de simular otro efecto atmosférico, las nubes. La idea era usar un método sencillo y sobre todo rápido para representarlas sin entrar en soluciones mucho más costosas como nubes volumétricas y cosas por el estilo. Un primer intento ha dado este resultado:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_e34Zp8mFxTc/SL2ite9fjuI/AAAAAAAAAXE/SZLUIWZzO-I/s1600-h/noiseClouds.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_e34Zp8mFxTc/SL2ite9fjuI/AAAAAAAAAXE/SZLUIWZzO-I/s400/noiseClouds.jpg" alt="" id="BLOGGER_PHOTO_ID_5241524443617922786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Es una primera prueba y no he "tuneado" valores, pero aunque no se ve en la foto, en movimiento queda bastante curioso. Lo malo es que he notado bastante la diferencia de rendimiento, así que tendré que probar más a fondo si realmente vale la pena. No sé, quizás incluso monto un ejemplo de esto...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-5845833192659077192?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/5845833192659077192/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=5845833192659077192' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5845833192659077192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5845833192659077192'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/09/presentando-arles.html' title='Presentando Arles'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_e34Zp8mFxTc/SL2hLy9D-KI/AAAAAAAAAW8/86zlUb20O2U/s72-c/arlesDome.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-6577333676178574086</id><published>2008-08-25T22:18:00.003+02:00</published><updated>2008-08-25T22:27:28.480+02:00</updated><title type='text'>Ya queda poco...</title><content type='html'>...verano (aunque por la temperatura que ha habido estos días parece que hace tiempo que terminó), y me ha entrado una especie de ansiedad por aprovechar al máximo los días libres que tengo, y no precisamente delante del PC... En parte creo que lo necesitaba, hacía mucho tiempo que no salía y perdía algunas neuronas de forma consciente, y cuando empiece el master no creo que me pueda permitir muchas salidas.&lt;br /&gt;&lt;br /&gt;Pero esto no significa que haya estado 100% parado, y he seguido haciendo algunas cosas. Ya he subido el &lt;a href="http://www.codeplex.com/XNACommunity/Wiki/View.aspx?title=Componente%20Scatter&amp;amp;referringTitle=Home"&gt;nuevo componente de Skydome&lt;/a&gt; con atmospheric scattering. Al final creo que ha quedado bastante apañado y ya he empezado a pasarlo a &lt;a href="http://code.google.com/p/arles/"&gt;Arles&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Habrá que ir pensando que será lo siguiente... por una vez estoy en blanco! o_O&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-6577333676178574086?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/6577333676178574086/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=6577333676178574086' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/6577333676178574086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/6577333676178574086'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/08/ya-queda-poco.html' title='Ya queda poco...'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-876999862887245751</id><published>2008-08-20T22:30:00.004+02:00</published><updated>2008-08-20T22:37:40.757+02:00</updated><title type='text'>Como en el campo</title><content type='html'>Ya he dejado prácticamente listo el skydome tal y como quería que quedara. Respecto a lo que había ayer, he añadido las estrellas (un porrón de ellas, quizás demasiadas ^^U) y un ligero brillo alrededor de la luna. Como ya se puede imaginar, la luna y el brillo no son más de dos quads orientados correctamente respecto a la posición del sol y las estrellas son una textura que se aplica sobre la geometría del dome, pero pese a ser tan sencillo da un aspecto bastante aceptable a la escena. La transición entre día y noche de estos elementos no ha quedado tremendamente realista, pero creo que para un juego da perfectamente el pego. No puede faltar teh video:&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/QgMBt7SxZJc&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/QgMBt7SxZJc&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00" type="application/x-shockwave-flash" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Como siempre, YouTube da una calidad de imagen bastante lamente y apenas se ven las estrellas, así que recomiendo verlo en "&lt;a href="http://www.youtube.com/watch?v=QgMBt7SxZJc&amp;amp;fmt=6"&gt;&lt;span style="font-weight: bold;"&gt;alta resolución&lt;/span&gt;&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;Creo que poco más voy a hacerle a este ejemplo, así que es de esperar que esta semana ya lo cuelgue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-876999862887245751?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/876999862887245751/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=876999862887245751' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/876999862887245751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/876999862887245751'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/08/como-en-el-campo.html' title='Como en el campo'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-2744366201813887216</id><published>2008-08-19T22:21:00.003+02:00</published><updated>2008-08-19T22:36:03.340+02:00</updated><title type='text'>The Lone Wolves are Back!</title><content type='html'>Ya estoy de vuelta! La verdad es que incluso me da un poco de pena, porque estos días me lo he pasado muy, muy bien. Estuve unos días en Granada visitando a unos colegas, y como siempre fue una locura continua de risas, tapas y cerveza. Ahora estoy en el curro casi peor de lo que estaba antes de irme... xD Pero bueno, poco a poco voy pillando el ritmo y hoy he reanudado un rato el trabajo sobre el nuevo skydome.&lt;br /&gt;&lt;br /&gt;Hoy pensaba dejarlo por finiquitado, pero luego he tenido la sensación de que realmente no estaba del todo satisfecho con el resultado. La representación de la luz y del scattering de la misma queda estupendamente, pero el aspecto era bastante decepcionante cuando se hacía de noche. La representación es correcta (no hay luz del sol), pero se ve todo demasiado negro y vacío, así que he decidido añadir algún detalle más. El primero es éste:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_e34Zp8mFxTc/SKsuCk7Ls7I/AAAAAAAAAW0/TONQQzanIAQ/s1600-h/domeNight2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_e34Zp8mFxTc/SKsuCk7Ls7I/AAAAAAAAAW0/TONQQzanIAQ/s400/domeNight2.jpg" alt="" id="BLOGGER_PHOTO_ID_5236329613554856882" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Por ahora está hecho muy a lo cutre, pero ya da un poco de alegría al cielo nocturno y es el primer paso para algo un poco más curioso.&lt;br /&gt;&lt;br /&gt;Hoy estoy muy vago y no voy a hacer nada más, pero a ver si mañana sigo un poco. ^^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-2744366201813887216?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/2744366201813887216/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=2744366201813887216' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2744366201813887216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2744366201813887216'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/08/lone-wolves-are-back.html' title='The Lone Wolves are Back!'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_e34Zp8mFxTc/SKsuCk7Ls7I/AAAAAAAAAW0/TONQQzanIAQ/s72-c/domeNight2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-6361602534916582581</id><published>2008-08-09T19:35:00.003+02:00</published><updated>2008-08-09T19:55:00.106+02:00</updated><title type='text'>Dando los últimos coletazos</title><content type='html'>Mañana ya me largo, pero no quería irme sin dejar listas un par de cosas. Lo primero es que ya he colgado la demo de metaballs &lt;a href="http://www.codeplex.com/XNACommunity/Wiki/View.aspx?title=Blobs&amp;amp;referringTitle=Home"&gt;donde siempre&lt;/a&gt;. Y lo segundo es que ayer conseguí dejar casi listo un nuevo ejemplo de skydome con atmospheric scattering, esta vez sin texturas pre-generadas, todo se calcula en tiempo real en la GPU con un estilo muy similar al usado en Crysis. Además ahora la geometría del skydome se genera por código y no es un modelo "externo", así que podré dejar un componente bastante independiente y poco pesado. Aquí está el video que lo muestra:&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/W0ocgQd_huU&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/W0ocgQd_huU&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00" type="application/x-shockwave-flash" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;La niebla no concuerda demasiado con el color de la luz, pero porque sigue siendo la que usé en la demo de skydome.&lt;br /&gt;&lt;br /&gt;Esta será una de las posibles técnicas que estarán disponibles en Arles para el renderizado del cielo. ^^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-6361602534916582581?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/6361602534916582581/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=6361602534916582581' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/6361602534916582581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/6361602534916582581'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/08/dando-los-ltimos-coletazos.html' title='Dando los últimos coletazos'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-2119918010299091376</id><published>2008-08-06T23:41:00.002+02:00</published><updated>2008-08-06T23:53:08.185+02:00</updated><title type='text'>Qué le está pasando al probe Alex...</title><content type='html'>... que hace mucho tiempo que no sale. Pues no pasa nada, simplemente estoy en la semana anterior a irme de vacaciones (por fin, joder! Hace 3 años que apenas tengo más de 2 o 3 días seguidos de descanso ^^U).&lt;br /&gt;&lt;br /&gt;Pero eso no significa que esté especialmente vago, que también, ya que no he parado. El tema de las metaballs está un poco parado y no conseguí hacerlo funcionar bien en 360, pero el ejemplo de PC está terminado y lo colgaré como muy tarde este fin de semana. Tengo algunas ideas para intentarlo rular en la consola, pero a ver cuando saco tiempo para probarlo... Después de eso no se me verá el pelo en unos cuantos días. :)&lt;br /&gt;&lt;br /&gt;Y por otro lado en XNACommunity hemos empezado un proyecto muy interesante (y tocho). No hay mucho que enseñar por ahora, pero &lt;a href="http://code.google.com/p/arles/"&gt;ya está disponible para poder echar un vistazo&lt;/a&gt;. Pronto iré posteando más detalles con lo que vayamos implementando, pero en pocos días Javi ya ha puesto algunas cosas interesantes, y yo estoy trabajando en un nuevo skydome con un "verdadero" atmospheric scattering que si sale bien quedará de lujo. Quedaros con el nombre: Arles.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-2119918010299091376?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/2119918010299091376/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=2119918010299091376' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2119918010299091376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2119918010299091376'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/08/qu-le-est-pasando-al-probe-alex.html' title='Qué le está pasando al probe Alex...'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-3522214487174568492</id><published>2008-07-31T07:29:00.003+02:00</published><updated>2008-07-31T07:43:01.644+02:00</updated><title type='text'>Problemas en las bolas</title><content type='html'>Llevo un par de días probando algo nuevo, y aunque no me lo esperaba he avanzado lo suficientemente rápido como para tener casi listo un nuevo ejemplo para PC:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/FQGzr8IVxto&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/FQGzr8IVxto&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Son las típicas metaballs o "blobs", pero generados mediante un efecto de post-proceso. Esto como siempre tiene su parte buena y su parte mala. La buena es que es muy rápido (ahora mismo me funciona a unos 600 fps pese a que uso un par de rendertargets de 64 bits), y la mala es que al no tener en cuenta la profundidad, a veces se pierde mucho la sensación de perspectiva y se mezclan bolas que quizás no deberían... Eso seguramente será un problema donde iba a usar este efecto, así que quizás tengo que hacer algunos cambios de concepto. ^^U&lt;br /&gt;&lt;br /&gt;En fin, que por un lado estaba contento porque había quedado bastante bien en poco tiempo, pero por otro acabé sumamente cabreado porque no hubo manera de hacerlo funcionar bien en Xbox 360. En el ejemplo se usan point sprites para pintar las diferentes bolas, y por alguna razón que todavía no se explicar, en la consola no he conseguido modificar el tamaño de estos sprites para dar sensación de 3D. Y además en general todos los shaders usados dan algún problema, ya sea con las coordenadas de textura (si, he usado SPRITETEXCOORD en el caso de ejecutarlo en la consola) o en el paso final de post-proceso, donde no hace lo que debe hacer.&lt;br /&gt;&lt;br /&gt;Necesito que esto funciona en ambas máquinas, así que será lo que trabaje en los próximos días.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-3522214487174568492?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/3522214487174568492/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=3522214487174568492' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/3522214487174568492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/3522214487174568492'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/07/problemas-en-las-bolas.html' title='Problemas en las bolas'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-2572170655651319344</id><published>2008-07-27T16:28:00.003+02:00</published><updated>2008-07-27T16:40:16.136+02:00</updated><title type='text'>A otra cosa, mariposa</title><content type='html'>Acabo de subir a &lt;a href="http://www.codeplex.com/XNACommunity/Wiki/View.aspx?title=Fluids&amp;amp;referringTitle=Ejemplos"&gt;XNACommunity&lt;/a&gt; el ejemplo de fluidos! Ahora toca ponerse con otro tema, que ya digo que será completamente diferente. Ya tengo una idea de qué hacer, pero hoy no voy a tener tiempo de empezar hoy, así que mañana al lío.&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/EtH9EvXr9V0&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/EtH9EvXr9V0&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00" type="application/x-shockwave-flash" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Por cierto, si se pausa la simulación en la demo, se puede seguir echando tinta y por tanto se sigue sumando la velocidad del fluido, así que si luego se reanuda se generan animaciones y formas bastante curiosas. ^^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-2572170655651319344?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/2572170655651319344/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=2572170655651319344' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2572170655651319344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2572170655651319344'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/07/otra-cosa-mariposa.html' title='A otra cosa, mariposa'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-5599225147208758580</id><published>2008-07-25T22:03:00.004+02:00</published><updated>2008-07-25T22:25:12.947+02:00</updated><title type='text'>Por fin se acabó</title><content type='html'>Bueno, tampoco es que haya sido una tortura, pero ya tenía ganas de terminar. Acabo de dar por finalizado el ejemplo de los fluidos 2D. He añadido un par de cosas puramente estéticas y  mejorado el rendimiento (unos 15 milisegundos en ambas máquinas), además de cambiar un poco la funcionalidad (el fluido ya no va hacia arriba automáticamente, sino en la dirección del cursor) y añadir soporte total para Xbox 360. Un ejemplo del resultado final es esto:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_e34Zp8mFxTc/SIo14xhEajI/AAAAAAAAAWU/9j370V_zk1w/s1600-h/FluidsHigh.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_e34Zp8mFxTc/SIo14xhEajI/AAAAAAAAAWU/9j370V_zk1w/s400/FluidsHigh.jpg" alt="" id="BLOGGER_PHOTO_ID_5227049566997867058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Ahora en mi máquina va incluso un poco demasiado rápido (no hago ningún tipo de control en ese aspecto), pero creo que después de todo no ha quedado tan mal. Durante este fin de semana acabaré de pulir detalles en el código (aka limpieza de mierda) y lo colgaré, a ver si gusta. ^^&lt;br /&gt;&lt;br /&gt;Ya grabaré el video correspondiente cuando vaya a colgar el ejemplo. ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-5599225147208758580?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/5599225147208758580/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=5599225147208758580' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5599225147208758580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5599225147208758580'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/07/por-fin-se-acab.html' title='Por fin se acabó'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_e34Zp8mFxTc/SIo14xhEajI/AAAAAAAAAWU/9j370V_zk1w/s72-c/FluidsHigh.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-5455083138917361788</id><published>2008-07-24T23:48:00.004+02:00</published><updated>2008-07-25T00:08:34.046+02:00</updated><title type='text'>Decepcionado</title><content type='html'>Y mucho, además. Hoy he usado la suscripción gratuita al Creators Club que dan al registrarte en &lt;a href="http://www.dreambuildplay.com/"&gt;DreamBuildPlay&lt;/a&gt; (es un añazo gratis!). Me hacía bastante ilusión probar mis ejemplos en la consola, y al principio todo ha ido bien... He probado un par de ejemplos antiguos y funcionaban perfectamente, pero luego ha llegado el momento de probar el que realmente quería poner a prueba.&lt;br /&gt;&lt;br /&gt;He creado un proyecto de los fluidos para Xbox 360, he toqueteado un poco el código para que funcionase sin ratón y... F5... Deploying... Running... Zas, lento de narices. Es que no iba ni la mitad de rápido que en PC.&lt;br /&gt;&lt;br /&gt;He cambiado alguna cosa más para tener información más precisa de cuánto estaba tardando:&lt;br /&gt;&lt;br /&gt;- PC: Fluido de 100x100 -&gt; ~25 ms&lt;br /&gt;- Xbox360: Fluido de 64x64 -&gt; ~65 ms&lt;br /&gt;&lt;br /&gt;Si, eso es más del doble de tiempo con una matriz de casi un cuarto del tamaño original. La diferencia es muy grande, *enorme*, sobre todo cuando en principio había metido el thread de la simulación en su propio core... Sabía que XNA era bastante lento en la consola, pero no imaginaba que tanto.&lt;br /&gt;&lt;br /&gt;Esto me ha trastocado un poco los planes, y me ha dejado un poco de bajón. ^^U&lt;br /&gt;&lt;br /&gt;Pero bueno, me ha servido para ver que con el fluido de 64x64, el Gaussian Blur que puse no servía para prácticamente nada porque lo hacía sobre una imagen muy pixelada puesta sobre un backbuffer a una resolución bastante alta. Esto podría parecer un palo más, pero en realidad me ha servido para mejorar algo bastante interesante... como la Xbox (y muchas gráficas actuales) no permitía filtrar por hardware la textura de la tinta, he decidido implementar el filtro bilinear directamente en el shader, a mano. Bueno, irá como una tortuga pero por lo menos se ve bonito. Seguramente este fin de semana lo dejaré como pueda y lo subiré ya.&lt;br /&gt;&lt;br /&gt;OMG no hay foto!   o_O&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-5455083138917361788?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/5455083138917361788/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=5455083138917361788' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5455083138917361788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5455083138917361788'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/07/decepcionado.html' title='Decepcionado'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-8014508202881937711</id><published>2008-07-23T07:39:00.003+02:00</published><updated>2008-07-23T07:47:30.289+02:00</updated><title type='text'>Pacheando</title><content type='html'>Estos días he probado el tema de los fluidos en otros PCs para comprobar el rendimiento en máquinas bastante diferentes. Parece que aguanta bastante bien aunque al guardar el color en una textura de 128 bits, hay muy pocas gráficas que la puedan filtrar a la hora de pintar (básicamente todo lo que no lleva una DX10 lo pintará pixelado).&lt;br /&gt;&lt;br /&gt;En vez de cambiar la manera de guardar el color (que tenía más curro de lo que parecía al principio), he tomado la decisión de aplicar un Gaussian Blur como efecto de post-proceso, de manera que se suaviza la imagen cargando casi todo el trabajo en la GPU que en este ejemplo no hace prácticamente nada. El resultado es bastante bueno y rápido, así que es muy posible que lo deje así finalmente.&lt;br /&gt;&lt;br /&gt;Ah, también añadí la posibilidad de sacar screenshots. :P&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_e34Zp8mFxTc/SIbF3AA5rmI/AAAAAAAAAWE/UgulxgL-fZk/s1600-h/fluidSShot.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_e34Zp8mFxTc/SIbF3AA5rmI/AAAAAAAAAWE/UgulxgL-fZk/s400/fluidSShot.jpg" alt="" id="BLOGGER_PHOTO_ID_5226081966297296482" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-8014508202881937711?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/8014508202881937711/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=8014508202881937711' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/8014508202881937711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/8014508202881937711'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/07/pacheando.html' title='Pacheando'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_e34Zp8mFxTc/SIbF3AA5rmI/AAAAAAAAAWE/UgulxgL-fZk/s72-c/fluidSShot.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-7002192615779030162</id><published>2008-07-17T22:39:00.002+02:00</published><updated>2008-07-17T22:51:00.952+02:00</updated><title type='text'>Ya casi...</title><content type='html'>Ya está cerca, parece que por fin voy acabando cosas y no sólo las estoy empezando. He añadido otro detalle más al simulador de fluidos, y a falta de un par de cosas ya va teniendo el aspecto que quería que tuviese.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/WZJebhtpi3o&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/WZJebhtpi3o&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Por desgracia he añadido los colores demasiado rápido y sin pensar, y como resultado tengo que ahora mismo necesito pintar la simulacion sobre un rendertarget de 128 bits, lo cual limita mucho el rendimiento y las plataformas donde quiero que se ejecute (no cumplo uno de los puntos que requería en la última entrada sobre esta demo).&lt;br /&gt;&lt;br /&gt;Total, que tengo que volver al punto de la optimización, pero al menos ya sé que funciona el tema de los colores. A ver si este fin de semana lo puedo finiquitar...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-7002192615779030162?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/7002192615779030162/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=7002192615779030162' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/7002192615779030162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/7002192615779030162'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/07/ya-casi.html' title='Ya casi...'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-2963813570911579880</id><published>2008-07-16T23:35:00.004+02:00</published><updated>2008-07-16T23:44:39.154+02:00</updated><title type='text'>El chico de los recados xD</title><content type='html'>Me han vuelto a pedir que haga un pequeño shader para el Model 2 Emulator, y yo encantado de poder aportar algo más a un programa tan conocido. ^^ Esta vez se trata de imitar el aspecto de los antiguos monitores arcade con un efecto normalmente conocido como "scanlines". En muchos emuladores se permite activar un efecto similar, y hay mucha gente que lo ha pedido para éste. Esta tarde me he puesto un momento y ya tengo una versión más o menos bien afinada:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_e34Zp8mFxTc/SH5qmEQ9o_I/AAAAAAAAAV8/YC9Ux_CA0bM/s1600-h/scanDaytona.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_e34Zp8mFxTc/SH5qmEQ9o_I/AAAAAAAAAV8/YC9Ux_CA0bM/s400/scanDaytona.jpg" alt="" id="BLOGGER_PHOTO_ID_5223729820008817650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Al ser un efecto procedural y no una textura que se aplica encima de la imagen original, no hay efectos raros al cambiar de resolución y cosas por el estilo. A ver si gusta y veo otro shader mío funcionando en algo que usará mucha gente. ^^&lt;br /&gt;&lt;br /&gt;Aunque parezca mentira también he seguido con mis cosas de XNA, y ya he empezado a adaptar el simulador de fluidos para soportar varios colores simultáneos. Lo malo es que estaba muy cansado (está siendo una semana un poco dura) y he avanzado muy lentamente. A ver si mañana le doy más ritmo y pronto puedo colgarla. ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-2963813570911579880?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/2963813570911579880/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=2963813570911579880' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2963813570911579880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2963813570911579880'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/07/el-chico-de-los-cafs-xd.html' title='El chico de los recados xD'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_e34Zp8mFxTc/SH5qmEQ9o_I/AAAAAAAAAV8/YC9Ux_CA0bM/s72-c/scanDaytona.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-4778447631185690397</id><published>2008-07-13T19:49:00.003+02:00</published><updated>2008-07-13T19:58:51.413+02:00</updated><title type='text'>Dayyytooonaaaaaa!!</title><content type='html'>Let's go away! Let's go away! Menudo temazo y menudo juegazo. ^^ Finalmente ElSemi ha añadido mi shader a su emulador de Model 2, y Daytona USA ya luce unos colores mucho más agradables y fieles a la recreativa. He grabado un video con una WIP de la nueva versión del emulador donde se muestra cómo se ve actualmente:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ivN9UCJ115g&amp;amp;hl=es&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/ivN9UCJ115g&amp;amp;hl=es&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;La calidad de imagen es lamentable, pero podeis forzar a YouTube a enseñaros algo más decente añadiendo '&amp;amp;fmt=6' o '&amp;amp;fmt=18' al final de la URL del video. Con 6 se ve a 60fps con una calidad decente y con 18 se ve mucho mejor, pero perdiendo algunos frames por segundo.&lt;br /&gt;&lt;br /&gt;Lo dejo linkado igualmente:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://es.youtube.com/watch?v=ivN9UCJ115g&amp;amp;fmt=6"&gt;VIDEO Calidad Media 60 fps&lt;/a&gt;&lt;br /&gt;&lt;a href="http://es.youtube.com/watch?v=ivN9UCJ115g&amp;amp;fmt=18"&gt;VIDEO Calidad Alta&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-4778447631185690397?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/4778447631185690397/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=4778447631185690397' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/4778447631185690397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/4778447631185690397'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/07/dayyytooonaaaaaa.html' title='Dayyytooonaaaaaa!!'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-2244910067351655758</id><published>2008-07-10T21:21:00.002+02:00</published><updated>2008-07-10T21:44:35.424+02:00</updated><title type='text'>Pecado capital</title><content type='html'>Estoy un pelín perezoso. Será el verano, el calor, que aún no he hecho vacaciones (y llevo como 3 años sin hacer) o lo que sea, pero el cansancio diario me puede y avanzo poco.&lt;br /&gt;&lt;br /&gt;Aún así he sacado algo de fuerzas para seguir con el tema de los fluidos, y ya va teniendo una pinta más interesante. Estos días básicamente me he puesto a mejorar un poco el rendimiento, he pasado todo el cálculo de la simulación a un thread secundario (que será directamente un core distinto en 360), dejando el principal para el render (que es una chorrada y va rapidísimo). De esta manera funciona bastante más suelto aunque sigue siendo muy exigente en cuanto a CPU. A ver si mañana me monto algo para saber realmente a qué velocidad funciona (ahora mismo no tengo más información que los frames por segundo de render, que no dice gran cosa) para poder ir probando más cosas. Actualmente tiene este aspecto:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/5uOtPoc5P_M&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/5uOtPoc5P_M&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;En el video también se ve que he añadido un par de funcionalidades más (echar tinta con el ratón y "empujar" el fluido), pero el cambio más importante es el rendimiento. El ejemplo final no distará mucho de esto, pero si no se me quitan las ganas quiero probar un par de cosas más:&lt;br /&gt;&lt;br /&gt;- Echar tinta de varios colores a la vez (esto puede ser bastante costoso, así que a lo mejor lo pruebo y luego lo quito ^^U).&lt;br /&gt;- Hacer el ejemplo 100% compatible con Xbox 360. Ahora mismo se llama a funciones típicas de C++ (mem_cpy y memset) y por tanto no funcionaría en consola.&lt;br /&gt;&lt;br /&gt;Y bueno, y si al final funciona bien lo de varios colores a la vez, quizás pruebe más cosas que no formarán parte del ejemplo... :P&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-2244910067351655758?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/2244910067351655758/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=2244910067351655758' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2244910067351655758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2244910067351655758'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/07/pecado-capital.html' title='Pecado capital'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-3808760304079837787</id><published>2008-07-08T07:37:00.005+02:00</published><updated>2008-07-08T08:53:12.526+02:00</updated><title type='text'>Ampliando horizontes</title><content type='html'>Ayer me puse un rato a hacer un pequeño trabajo que me pidió Wesker de &lt;a href="http://www.speksnk.org/"&gt;SpekSNK&lt;/a&gt;. En &lt;a href="http://www.speksnk.org/foro/"&gt;el foro&lt;/a&gt; de esta web (en la que estoy desde hace varios años ^^) está incluido el foro oficial de &lt;a href="http://nebula.emulatronia.com/"&gt;Nebula&lt;/a&gt;, un conocidísimo emulador multisistema que entre otras emula la Neo·Geo. El desarrollador de Nebula, ElSemi, lleva además otro emulador muy conocido de &lt;a href="http://www.system16.com/hardware.php?id=713"&gt;Model 2&lt;/a&gt;, la genial placa de SEGA.&lt;br /&gt;&lt;br /&gt;Se ve que el sistema que usa esta máquina para calcular el color en algunos juegos es bastante "peculiar", dando como resultado que estos juegos aún no estén emulados correctamente en este aspecto. Se han probado algunos cambios en el brillo del color para intentar acercarse al juego original, pero sin unos resultados realmente satisfactorios.&lt;br /&gt;&lt;br /&gt;Lo que me pidieron es que hiciera un pequeño shader que permitiera manipular el color de manera que se pudiera conseguir un aspecto más cercano al arcade sin tocar nada de la emulación (si, es una manera muy cerda de hacerlo, pero por ahora no hay nada mejor).&lt;br /&gt;&lt;br /&gt;El shader ya está listo y se pueden hacer cosas como esta (a la izquierda la imagen que da el emu, a la derecha la imagen después de aplicar el shader con una cierta configuración):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_e34Zp8mFxTc/SHL_u0ur0kI/AAAAAAAAAVU/0cvtWPBPVk8/s1600-h/daytonaColorSaturation.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_e34Zp8mFxTc/SHL_u0ur0kI/AAAAAAAAAVU/0cvtWPBPVk8/s400/daytonaColorSaturation.jpg" alt="" id="BLOGGER_PHOTO_ID_5220516097969345090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Por supuesto es completamente configurable, y precisamente se puede descargar una pequeña demo que permite ajustar diferentes constantes para que los usuarios den su opinión y así añadir al emulador el shader con los valores más "correctos". La demo se puede encontrar &lt;a href="http://www.speksnk.org/foro/viewtopic.php?f=50&amp;amp;t=69036&amp;amp;start=200#p471203"&gt;AQUI&lt;/a&gt;. Todavía no se sabe si el shader se va a incluir en el emulador o no, a ver si hay suerte y gusta.&lt;br /&gt;&lt;br /&gt;Ah, también he subido el ejemplo del Component que pinta un texto de LEDs, está &lt;a href="http://www.codeplex.com/XNACommunity/Wiki/View.aspx?title=Componente%20LEDText&amp;amp;referringTitle=Home"&gt;en el lugar habitual&lt;/a&gt;. ^^&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_e34Zp8mFxTc/SHMA2iN5ICI/AAAAAAAAAVc/V0PuR4sTTWc/s1600-h/LEDHigh.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_e34Zp8mFxTc/SHMA2iN5ICI/AAAAAAAAAVc/V0PuR4sTTWc/s400/LEDHigh.jpg" alt="" id="BLOGGER_PHOTO_ID_5220517329950548002" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-3808760304079837787?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/3808760304079837787/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=3808760304079837787' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/3808760304079837787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/3808760304079837787'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/07/ampliando-horizontes.html' title='Ampliando horizontes'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_e34Zp8mFxTc/SHL_u0ur0kI/AAAAAAAAAVU/0cvtWPBPVk8/s72-c/daytonaColorSaturation.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-641925955375078517</id><published>2008-07-06T19:31:00.003+02:00</published><updated>2008-07-06T19:42:51.141+02:00</updated><title type='text'>Disperso pero activo</title><content type='html'>Una vez más me he puesto con una cosa nueva sin tener la anterior terminada. El simulador de fluidos marcha bien y ha avanzado en estos días (sobre todo en la parte de rendimiento), pero esta tarde no me apetecía seguir con él y he preparado algo rápido y sencillo que pueda subir pronto a XNACommunity.&lt;br /&gt;&lt;br /&gt;Se trata de un GameComponent que permite pintar texto de manera que tenga el aspecto de una pantalla de LEDs como las que se ven en los marcadores deportivos. En realidad se le podría haber metido cualquier shader al texto, pero necesitaba éste en concreto. Este es el aspecto que tiene:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_e34Zp8mFxTc/SHEC1TJsE3I/AAAAAAAAAVM/tFPZMEc2WDU/s1600-h/LEDText.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_e34Zp8mFxTc/SHEC1TJsE3I/AAAAAAAAAVM/tFPZMEc2WDU/s400/LEDText.png" alt="" id="BLOGGER_PHOTO_ID_5219956557796348786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Como se puede deducir de la imagen, el componente permite configurar cosas como la fuente, el color o la posición, y aunque no se ve en la imagen también se pueden modificar cosas como el tamaño de los puntos, variables que controlan el gradiente de color, etc.&lt;br /&gt;&lt;br /&gt;Ahora estoy preparando un ejemplo en el que se ve un posible uso del componente, a ver si me da tiempo de subirlo hoy mismo. ^^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-641925955375078517?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/641925955375078517/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=641925955375078517' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/641925955375078517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/641925955375078517'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/07/disperso-pero-activo.html' title='Disperso pero activo'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_e34Zp8mFxTc/SHEC1TJsE3I/AAAAAAAAAVM/tFPZMEc2WDU/s72-c/LEDText.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-8293706623277253046</id><published>2008-07-02T22:08:00.002+02:00</published><updated>2008-07-02T22:35:22.209+02:00</updated><title type='text'>Lo que no te mata...</title><content type='html'>Después de un par de días muy duros a nivel personal que me han tenido atontado y concentrado a la vez (si, eso es posible), vuelvo por fin con algo que en enseñar. Es muy preliminar y tengo que añadir/mejorar muchas cosas, pero ya empieza a tener buena pinta, y es una parte fundamental de otro pequeño proyecto que quería iniciar a medio plazo.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/BVh_L6qcNx8&amp;amp;hl=en&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/BVh_L6qcNx8&amp;amp;hl=en&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Antes de ponerme con esto, y después de ver el &lt;a href="http://www.codeplex.com/raycasterx"&gt;estupendo motor de raycasting de Nick Gravelyn&lt;/a&gt; para conseguir pseudo-3D en el Zune, se me ocurrió lo que yo creía que era una genial. Y la verdad es que era jodidamente buena, pero parece que hay gente que piensa como yo. XD La idea era hacer una pequeña demo de voxels en XNA. Es la técnica usada en juegos como &lt;a href="http://en.wikipedia.org/wiki/Comanche_Series"&gt;Comanche&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Delta_Force_%28computer_game%29"&gt;Delta Force&lt;/a&gt; o el enorme, enorme &lt;a href="http://en.wikipedia.org/wiki/Outcast_%28game%29"&gt;Outcast&lt;/a&gt;. Con este tipo de visualización se podrían pintar terrenos 3D bastante realistas incluso en el Zune, y era algo que aún no se había hecho en XNA. Pero &lt;a href="http://www.catalinzima.com/?p=360"&gt;Catalin Zima se me ha adelantado&lt;/a&gt; con un buen ejemplo (aunque se ve que va algo lento en Zune), así que tendré que plantearme hacerlo mucho mejor o sencillamente aprender de él y olvidarme. ^^U&lt;br /&gt;&lt;br /&gt;Espero a ahora a nadie se le ocurra hacer fluidos... :P&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-8293706623277253046?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/8293706623277253046/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=8293706623277253046' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/8293706623277253046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/8293706623277253046'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/07/lo-que-no-te-mata.html' title='Lo que no te mata...'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-4373562297835992260</id><published>2008-06-28T11:07:00.002+02:00</published><updated>2008-06-28T11:13:50.349+02:00</updated><title type='text'>No estaba muerto</title><content type='html'>Que no, que no estoy parado! Llevo días sin postear nada, pero por una buena razón: no tengo fotos guays que poner. Además han sido unos días movidillos de currículum para arriba y para abajo (si al final sale todo bien ya pondré el porqué de esto ;) ), y trabajo en general.&lt;br /&gt;&lt;br /&gt;Ya avisé que me había puesto con una cosa que me llevaría más tiempo de lo habitual, y aún estoy con ello. Ni siquiera he picado una sola línea de código, por ahora me estoy estudiando el asunto porque tiene cierta matemática detrás que me trae un poco de cabeza. Además es muy posible que sea un ejemplo con una filosofía algo diferente de lo habitual, porque no cargará sobre la GPU sino que tirará básicamente de CPU aunque el resultado sea gráfico. Pero bueno, a ver si me sale bien  porque mi ratio de fracasos está subiendo peligrosamente. xD&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-4373562297835992260?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/4373562297835992260/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=4373562297835992260' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/4373562297835992260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/4373562297835992260'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/06/no-estaba-muerto.html' title='No estaba muerto'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-2100408014166426605</id><published>2008-06-22T14:13:00.002+02:00</published><updated>2008-06-22T14:15:45.406+02:00</updated><title type='text'>De vuelta a la realidad</title><content type='html'>Ayer me pasé el MGS4 (el cual recomiendo a todo el mundo), así que podré volver a mis tareas habituales. Hay que ver lo mucho que puede afectar un simple juego a mi vida diaria, estos días lo único que hacía era ir a trabajar y jugar. xD&lt;br /&gt;&lt;br /&gt;En fin, que intentaré dar los últimos toques al ejemplo de deferred rendering y seguir con cosas nuevas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-2100408014166426605?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/2100408014166426605/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=2100408014166426605' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2100408014166426605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2100408014166426605'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/06/de-vuelta-la-realidad.html' title='De vuelta a la realidad'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-1432774932137902286</id><published>2008-06-18T12:51:00.004+02:00</published><updated>2008-06-18T13:04:52.258+02:00</updated><title type='text'>Pequeño parón</title><content type='html'>Ayer por fin pude comprar el Metal Gear Solid 4, así que seguramente los próximos días voy a estar un poco más parado de lo habitual. xD Aún así me dio tiempo a colgar el ejemplo de Bubble Shader &lt;a href="http://www.codeplex.com/XNACommunity/Wiki/View.aspx?title=BubbleShader&amp;amp;referringTitle=Home"&gt;en el lugar habitual&lt;/a&gt;, y he empezado un nuevo tema que me llevará algo de tiempo (aunque no olvido la demo de deferred y no creo que tarde demasiado en colgarla, quizás la semana que viene si no hay nada nuevo).&lt;br /&gt;&lt;br /&gt;No hay mucho más que comentar, así que para que el post no quede tan soso, dejo una bonita foto de la pompa de jabón. ^^&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_e34Zp8mFxTc/SFjquVrz6LI/AAAAAAAAAUs/_xKihrGUf2E/s1600-h/bubbleHigh.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_e34Zp8mFxTc/SFjquVrz6LI/AAAAAAAAAUs/_xKihrGUf2E/s400/bubbleHigh.jpg" alt="" id="BLOGGER_PHOTO_ID_5213174650497132722" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-1432774932137902286?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/1432774932137902286/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=1432774932137902286' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/1432774932137902286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/1432774932137902286'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/06/pequeo-parn.html' title='Pequeño parón'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_e34Zp8mFxTc/SFjquVrz6LI/AAAAAAAAAUs/_xKihrGUf2E/s72-c/bubbleHigh.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-774359791470381780</id><published>2008-06-12T20:13:00.004+02:00</published><updated>2008-06-12T20:22:56.695+02:00</updated><title type='text'>Un fin de semana menos excitante de lo esperado</title><content type='html'>Quería jugar al Metal Gear Solid 4, joder. Según Konami es por la huelga de transportistas, yo digo que es una plafinicación de distribución lamentable (lo del paro no se sabía hace sólo dos días). Hay gente que considera a esta saga el anti-juego por los muchos videos que hay y el "poco" contenido jugable, pero a mi me encantan como pocos. En fin, no pasa nada por esperar unos días más, tengo entretenimiento para rato...&lt;br /&gt;&lt;br /&gt;Como hoy tampoco tenía mucho tiempo y he tenido una semana bastante durilla en el curro, me he vuelto a poner con algo ligero como las pompas de jabón:&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/rY437kVjam8&amp;amp;hl=en"&gt;&lt;embed src="http://www.youtube.com/v/rY437kVjam8&amp;amp;hl=en" type="application/x-shockwave-flash" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Iba a poner una escena más trabajada como un cuarto de baño y varias pompas volando por ahí, pero es difícil encontrar un modelo que me guste y tal y como está ahora también queda bastante bien (además se puede ver bien el reflejo del skybox).&lt;br /&gt;&lt;br /&gt;El efecto es rapidísimo (a mí me funciona a unos 2500 fps), así que debería tener un buen rendimiento en casi cualquier máquina.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-774359791470381780?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/774359791470381780/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=774359791470381780' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/774359791470381780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/774359791470381780'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/06/un-fin-de-semana-menos-excitante-de-lo.html' title='Un fin de semana menos excitante de lo esperado'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-5221089103550215046</id><published>2008-06-10T23:42:00.003+02:00</published><updated>2008-06-10T23:47:33.939+02:00</updated><title type='text'>Jugando a mi manera para despejar la mente</title><content type='html'>Hoy he dedicado mi tiempo libre a otras cosas que no son las habituales y no tenia muchas ganas de ponerme con el ejemplo de deferred, pero he podido jugar un poco con un efecto un poco tonto pero que da un resultado muy curioso:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_e34Zp8mFxTc/SE710RHTwqI/AAAAAAAAAUM/5Cg8XrnjCAw/s1600-h/bubble.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_e34Zp8mFxTc/SE710RHTwqI/AAAAAAAAAUM/5Cg8XrnjCAw/s400/bubble.jpg" alt="" id="BLOGGER_PHOTO_ID_5210372097210303138" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Si, es una burbuja de jabón. ^^ En movimiento queda bastante realista, y es un efecto muy sencillo que se puede ejecutar incluso en tarjetas que sólo soporten Shader Model 1.1. Ahora me toca pensar un ejemplo donde pueda meterla(s). :P&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-5221089103550215046?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/5221089103550215046/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=5221089103550215046' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5221089103550215046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5221089103550215046'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/06/jugando-mi-manera-para-despejar-la.html' title='Jugando a mi manera para despejar la mente'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_e34Zp8mFxTc/SE710RHTwqI/AAAAAAAAAUM/5Cg8XrnjCAw/s72-c/bubble.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-6328740062153410956</id><published>2008-06-09T23:23:00.004+02:00</published><updated>2008-06-09T23:40:39.212+02:00</updated><title type='text'>Revisiting cosas antiguas</title><content type='html'>Hasta el momento siempre que he querido hacer motion blur he seguido la misma técnica: guardarme dos matrices ViewProjection (la actual y la del frame anterior), generar un vector de velocidad 2D en el vertex shader y pasarlo al pixel shader para sacar estas velocidades en una textura y así usarlas en un paso posterior para "blurrear" el frame.&lt;br /&gt;&lt;br /&gt;Por norma general esto funciona de lujo y es my sencillo de implementar, pero tiene un gran fallo. Como se calculan las velocidades por vértice, puede ocurrir que algún vértice de un polígono quede fuera del frustum y otros dentro, y entonces al hacer clipping se le va completamente la olla ocurriendo cosas como esta:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_e34Zp8mFxTc/SE2g2ja23FI/AAAAAAAAAUE/ZlJ6OH-w69U/s1600-h/errorBlur.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_e34Zp8mFxTc/SE2g2ja23FI/AAAAAAAAAUE/ZlJ6OH-w69U/s400/errorBlur.jpg" alt="" id="BLOGGER_PHOTO_ID_5209997203018800210" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Efectivamente, esto no mola un carajo. ¿Cómo solucionarlo? La idea es calcular la velocidad por píxel. Es mucho más costoso pero abordable hoy en día. En principio se puede reconstruir la posición en world space de un punto en el pixel shader sabiendo su profundidad. Basta con multiplicar el punto en cuestión en screen space con sus coordenadas de la forma (x, y, depth, 1.0) por la matriz ViewProjection inversa y dividirlo después por la componente w que le queda después de esta multiplicación. De esta manera se consigue otra vez su posición en el mundo 3D. Para conseguir el vector de velocidad buscado sólo queda multiplicar este punto reconstruido por la matriz ViewProjection del frame anterior y ver la diferencia con el actual.&lt;br /&gt;&lt;br /&gt;Ahora es cuando debería enseñar la foto molona de cómo queda siguiendo este nuevo método, pero no la tengo. No sé porqué todavía no he conseguido que funcione, y no veo que esté haciendo nada mal. Estoy un poco cansado así que lo dejaré por hoy, pero ahora voy a estar pensando en ello hasta que pueda volver a ponerme. Qué rabia.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-6328740062153410956?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/6328740062153410956/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=6328740062153410956' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/6328740062153410956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/6328740062153410956'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/06/revisiting-cosas-antiguas.html' title='Revisiting cosas antiguas'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_e34Zp8mFxTc/SE2g2ja23FI/AAAAAAAAAUE/ZlJ6OH-w69U/s72-c/errorBlur.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-2789544489134318681</id><published>2008-06-06T10:23:00.002+02:00</published><updated>2008-06-06T10:31:16.374+02:00</updated><title type='text'>Las prisas son malas</title><content type='html'>El cabreo que me entro el otro día con el tema de XNA 3.0 CTP fue de lo más absurdo, ya que era una cagada mía. Pero bueno, rectificar es de sabios aunque ahora me de rabia el motivo por el cual no funcionaba. Se ve que la función que quería usar está disponible sólo si se desarrolla para Zune, y queda deshabilitada al trabajar en Windows (hay que recordar que en la CTP no se puede hacer nada en Xbox 360). Total, que me quedo sin probar lo que quería, y ya me había ilusionado... Espero que en la versión final esté solucionado.&lt;br /&gt;&lt;br /&gt;Por otro lado ayer me puse a grabar un video del estado actual del ejemplo de Deferred Shading. Es una pena que con la calidad de imagen que da YouTube apenas se pueda ver el motion blur.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/WYqt9oojkYE&amp;amp;hl=en&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/WYqt9oojkYE&amp;amp;hl=en&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00" type="application/x-shockwave-flash" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-2789544489134318681?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/2789544489134318681/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=2789544489134318681' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2789544489134318681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2789544489134318681'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/06/las-prisas-son-malas.html' title='Las prisas son malas'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-4385074995837831855</id><published>2008-06-04T22:07:00.006+02:00</published><updated>2008-06-04T23:02:47.079+02:00</updated><title type='text'>Qué rabia da!</title><content type='html'>Estos días tengo a mi sobrinilla en casa, así que después del curro tengo poco tiempo para hacer nada (¡pero no viene de eso el título del post!). Aquí la vemos en su nuevo bólido:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_e34Zp8mFxTc/SEb6YB3oupI/AAAAAAAAAT0/dyu-9ICldhM/s1600-h/IMG_4659.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_e34Zp8mFxTc/SEb6YB3oupI/AAAAAAAAAT0/dyu-9ICldhM/s400/IMG_4659.JPG" alt="" id="BLOGGER_PHOTO_ID_5208125309826153106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Qué mona ella. ^^&lt;br /&gt;&lt;br /&gt;Lo que me da rabia es que estaba probando unas cosillas con XNA 3.0 CTP relacionado con el nuevo namespace &lt;span style="font-style: italic;"&gt;Media &lt;/span&gt;(que en principio es para trabajar con el Zune, pero en Windows ofrece una manera sencilla de manejar sonidos con XNA sin tener que pasar por XACT), cuando de repente no me pilla una función de la clase &lt;span style="font-style: italic;"&gt;Mediaplayer &lt;/span&gt;sin ninguna causa aparente. No aparece en la lista de métodos y si lo pongo a saco no compila, cuando hay varios ejemplos en la red usando esa función. No sé si es porque tenía en marcha también el VC#2005 y se le ha ido la olla con los frameworks, pero me he cabreado y lo he dejado. Para un rato que me pongo me toca las narices que ocurran cosas tontas como esta.&lt;br /&gt;&lt;br /&gt;En fin, para aliviar un poco mi furia (:P) he añadido en un momento el postproceso de motion blur al ejemplo de deferred shading. Tal y como está ahora el código, en los casos de mayor coste (cuando se procesan todas las luces y éstas ocupan casi toda o toda la pantalla) me va a unos 270 fps. Puede parecer que vaya a un gran rendimiento pero tengo comprobado que manejando yo cifras similares, al probar los ejemplos en otros PCs la cosa iba bastante peor (parece que no me puedo quejar de mi gráfica ^^), así que voy a intentar afinar un poco ese aspecto.&lt;br /&gt;&lt;br /&gt;Hay cosas que no creo que cueste demasiado mejorar (por ejemplo el número de cambios de estado en la gráfica durante el render de un frame, que son bastantes actualmente), así que espero conseguir algo en poco tiempo. También es verdad que estoy abusando un poco de la técnica, ya que con las luces que hay ahora se hacen 5 pasadas a pantalla completa de iluminación por cada frame, ya que aunque son luces puntuales, éstas afectan a casi todo el escenario y se solapan entre ellas. Podría hacer que ocupasen un área mucho menor, pero entonces la escena perdería bastante estéticamente. Igualmente, lo que hoy importa es el motion blur, que tiene un aspecto como este (estaba moviendo la cámara a una velocidad bastante elevada):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_e34Zp8mFxTc/SEb-G88yB7I/AAAAAAAAAT8/mFsl9-jBNuQ/s1600-h/deferredblur.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_e34Zp8mFxTc/SEb-G88yB7I/AAAAAAAAAT8/mFsl9-jBNuQ/s400/deferredblur.jpg" alt="" id="BLOGGER_PHOTO_ID_5208129414494291890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Se distingue poco, pero también he estado afinando un poco la iluminación, que era demasiado oscura. ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-4385074995837831855?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/4385074995837831855/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=4385074995837831855' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/4385074995837831855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/4385074995837831855'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/06/qu-rabia-da.html' title='Qué rabia da!'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_e34Zp8mFxTc/SEb6YB3oupI/AAAAAAAAAT0/dyu-9ICldhM/s72-c/IMG_4659.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-5326973678155472132</id><published>2008-06-02T23:06:00.003+02:00</published><updated>2008-06-02T23:12:59.700+02:00</updated><title type='text'>Otro ejemplo P.L.S</title><content type='html'>Es decir, Pa La Saca! Acabo de colgar la demo de &lt;a href="http://www.codeplex.com/XNACommunity/Wiki/View.aspx?title=GodRays&amp;amp;referringTitle=Ejemplos"&gt;God Rays&lt;/a&gt;, que ya tenía ganas de hacerlo desde hace días. A este paso, dentro de poco voy a tener problemas para tener nuevas ideas. xD Pero bueno, al menos eso me obligará a bajar el ritmo un poco.&lt;br /&gt;&lt;br /&gt;Por otro lado, hoy he vuelto a avanzar bastante con el ejemplo de deferred shading, y ya tiene un aspecto tal que así:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_e34Zp8mFxTc/SERhmzFtJ4I/AAAAAAAAATs/HENlI0aE7vg/s1600-h/deferredpoints.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_e34Zp8mFxTc/SERhmzFtJ4I/AAAAAAAAATs/HENlI0aE7vg/s400/deferredpoints.jpg" alt="" id="BLOGGER_PHOTO_ID_5207394388324198274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Es increíble el cambio que puede llegar a sufrir una escena con una pequeña variación en la iluminación... Aún así todavía no estoy contento del todo con el resultado, así que los próximos días los pasaré dejándola lo mejor posible. Y además aún queda añadirle el postproceso de motion blur (aunque ya tengo todos los datos necesarios para ello), y me da miedo que haga bajar demasiado el rendimiento... Ahora mismo no funciona mal, a unos 350-450 fps según el espacio que ocupen las luces, pero creo que puedo sacarle algo más de jugo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-5326973678155472132?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/5326973678155472132/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=5326973678155472132' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5326973678155472132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5326973678155472132'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/06/otro-ejemplo-pls.html' title='Otro ejemplo P.L.S'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_e34Zp8mFxTc/SERhmzFtJ4I/AAAAAAAAATs/HENlI0aE7vg/s72-c/deferredpoints.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-6658288400041170992</id><published>2008-06-01T18:14:00.005+02:00</published><updated>2008-06-01T18:44:28.880+02:00</updated><title type='text'>el g0e Weekly Update o_O</title><content type='html'>Bueeeno, ya estoy otra vez con otro ejemplo. Os presento a mi nuevo amigo:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_e34Zp8mFxTc/SELPcL0dWkI/AAAAAAAAATM/3Q7WzznqlyQ/s1600-h/deferred1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_e34Zp8mFxTc/SELPcL0dWkI/AAAAAAAAATM/3Q7WzznqlyQ/s400/deferred1.jpg" alt="" id="BLOGGER_PHOTO_ID_5206952202309818946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A primera vista no parece nada fuera de lo normal: el HellKnight de Doom3 cargado con el loader de MD5 que sacaron recientemente en XNA Community y el escenario que usó Race en &lt;a href="http://www.codeplex.com/XNACommunity/Wiki/View.aspx?title=LuzVolumetrica&amp;amp;referringTitle=Home"&gt;su ejemplo de luces volumétricas&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Pero no es ni mucho menos sólo eso. La escena se está pintando con una técnica de render conocida como Deferred Rendering o Deferred Shading. Esta técnica no es nueva, pero hasta hace poco no era posible usarla a una velocidad decente en juegos, y aún hoy en día hay muy pocos que la usen (los más conocidos son STALKER y Killzone 2).&lt;br /&gt;&lt;br /&gt;Esta técnica tiene varias particularidades, como que sólo se iluminan aquellos puntos de la escena que realmente se están viendo o que el coste de pintar luces es proporcional al espacio que ocupan en pantalla, y no a su número. Con las tarjetas actuales se puede implementar gracias al uso de Multiple Render Targets (que ya usé en la demo de God Rays que, por cierto, colgaré mañana seguramente), este es un ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_e34Zp8mFxTc/SELOB70dWjI/AAAAAAAAATE/rd9wxY7o_ps/s1600-h/deferred2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_e34Zp8mFxTc/SELOB70dWjI/AAAAAAAAATE/rd9wxY7o_ps/s400/deferred2.jpg" alt="" id="BLOGGER_PHOTO_ID_5206950651826625074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;En esta imagen se ven los cinco RTs que se usan en la visualización (color, normales, velocidad, profundidad e iluminación). Este no es el aspecto final del ejemplo ya que quiero meterle una iluminación con algo más de gracia, pero más o menos ya lo tengo encarrilado.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-6658288400041170992?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/6658288400041170992/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=6658288400041170992' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/6658288400041170992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/6658288400041170992'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/06/el-g0e-weelky-update-oo.html' title='el g0e Weekly Update o_O'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_e34Zp8mFxTc/SELPcL0dWkI/AAAAAAAAATM/3Q7WzznqlyQ/s72-c/deferred1.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-4160241651373053243</id><published>2008-05-29T14:46:00.006+02:00</published><updated>2008-05-29T15:08:22.861+02:00</updated><title type='text'>Traisión!</title><content type='html'>Una de las cosas que más me molestan es tener que perder el tiempo buscando y preparando modelos y escenas para los ejemplos. Te tiras un día entero para encontrar algo que no te acaba de convencer y te quedas con la sensación de no haber hecho nada. Pues bien, el otro día encontré uno que debía usar a toda costa en lo que fuera:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_e34Zp8mFxTc/SD6mZb0dWhI/AAAAAAAAAS0/UykUM1flzAc/s1600-h/chef2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_e34Zp8mFxTc/SD6mZb0dWhI/AAAAAAAAAS0/UykUM1flzAc/s400/chef2.png" alt="" id="BLOGGER_PHOTO_ID_5205781175181597202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Si.... tiene una pinta genial, pero entonces empezaron los problemas. Se me había ocurrido una idea para un ejemplo en el que Master Chief quedaría de lujo, pero necesitaba dos cosas:&lt;br /&gt;&lt;br /&gt;- Encontrar un escenario acorde con el personaje / ejemplo.&lt;br /&gt;- Cambiarle la pose al Chief.&lt;br /&gt;&lt;br /&gt;Al principio el primer punto fue sencillo, encontré un escenario a mi gusto &lt;a href="http://msdn.microsoft.com/en-us/library/bb172449%28VS.85%29.aspx"&gt;en uno de los ejemplos&lt;/a&gt; del SDK de DirectX10. El problema es que a los de Microsoft se les ha ocurrido dejar de dar soporte a su formato de modelos .X en favor de un nuevo formato llamado sdkmesh que &lt;a href="http://msdn.microsoft.com/en-us/library/bb173246%28VS.85%29.aspx"&gt;ellos mismos indican que es una mierda&lt;/a&gt;. Bravo.&lt;br /&gt;&lt;br /&gt;Pero bueno, según ellos en el SDK han incluido una herramienta que convierte modelos entre los dos formatos. Lo probé y efectivamente funciona perfectamente al hacer la conversión .X -&gt; .&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;sdkmesh&lt;/span&gt;, pero no había manera de conseguir el paso inverso.&lt;br /&gt;&lt;br /&gt;Después de trastear un poco con el código fuente del programa, encontré la siguiente condición en la función que carga el modelo de entrada:&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;if&lt;/span&gt;( &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;nLength&lt;/span&gt; == 2 &amp;amp;&amp;amp; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;pszExt&lt;/span&gt; &amp;amp;&amp;amp; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;wcscmp&lt;/span&gt;( &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;pszExt&lt;/span&gt;, L".x" ) == 0 )&lt;br /&gt;{&lt;br /&gt;        CLoaderXFile loader;&lt;br /&gt;        hr = loader.Load( szFileName, requestedBHT );&lt;br /&gt;        m_pIntermediateMesh = loader.GetMesh();&lt;br /&gt;}&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Es decir, que &lt;span style="font-weight: bold;"&gt;sólo es capaz de pasar de .X a sdkmesh&lt;/span&gt;. Pues a la mierda el escenario.&lt;br /&gt;&lt;br /&gt;El segundo punto no fue mejor. Yo no tengo ni idea de edición de modelos en programas estilo 3dStudio, Maya o XSI, pero conseguí cargar el modelo y cambiarle la pose. El problema es que los pesos están mal y a la hora de moverlo se le va la olla.&lt;br /&gt;&lt;br /&gt;Al final me cansé de importarlo en varios programas, trastear, exportar, volver a importar, etc... Así que a la mierda el Chief (al menos hasta que contacte con un amigo que controla del tema).&lt;br /&gt;&lt;br /&gt;Total, que me he cabreado y me voy a poner con otra cosa, porque eso de estar dos días sin parar para no conseguir nada me pone de mala leche. Lo volveré a intentar otro día...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-4160241651373053243?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/4160241651373053243/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=4160241651373053243' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/4160241651373053243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/4160241651373053243'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/05/traisin.html' title='Traisión!'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_e34Zp8mFxTc/SD6mZb0dWhI/AAAAAAAAAS0/UykUM1flzAc/s72-c/chef2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-6736290370883000509</id><published>2008-05-26T23:20:00.002+02:00</published><updated>2008-05-26T23:29:16.615+02:00</updated><title type='text'>XNA del bueno</title><content type='html'>Hoy ha sido un buen día para XNA Community. Javi y Rubén han sacado por fin su cargador de modelos MD5 para XNA (Javi a cargo de los Shaders y Rubén con el cargador en sí). Este formato es el que se usa en los juegos con el motor del Doom 3, y hay una buena cantidad de modelos en la red que lo utilizan, y muchos conversores que lo soportan.&lt;br /&gt;&lt;br /&gt;El cargador permite usar este tipo de modelos de forma tremendamente sencilla, así como visualizar sus animaciones. Sin duda es algo que merece la pena probar.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/5ulV-vAqtaQ&amp;amp;hl=en&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/5ulV-vAqtaQ&amp;amp;hl=en&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Con esto además se ha estrenado una nueva sección de utilidades en la web, junto con los cargadores de MD3 y Collada, entre otros.&lt;br /&gt;&lt;br /&gt;Por otro lado, yo ya tengo terminada la demo de God Rays, pero una vez más esperaré un poco a colgarla para no saturar(me). ;)&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/cOVxX5MS8nk&amp;amp;hl=en&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/cOVxX5MS8nk&amp;amp;hl=en&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-6736290370883000509?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/6736290370883000509/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=6736290370883000509' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/6736290370883000509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/6736290370883000509'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/05/xna-del-bueno.html' title='XNA del bueno'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-7660563863689975589</id><published>2008-05-24T18:12:00.003+02:00</published><updated>2008-05-24T19:12:22.302+02:00</updated><title type='text'>No tengo remedio</title><content type='html'>Soy impaciente de narices. Todavía no había subido la demo de animación de árboles y hardware instanting, y ya he empezado a probar un nuevo efecto. Aún queda trabajo por delante, pero hoy he conseguido los primeros resultados y la verdad es que mola. Se trata de una técnica que aparece en el GPU Gems 3 en un artículo titulado "Volumetric Light Scattering as a Post-Process", y trata de simular los llamados "god-rays" que produce la oclusión de la luz del sol con objetos opacos. Como bien dice el nombre del artículo, esta técnica se ejecuta como un postproceso en la GPU, y aún así da una sensación de volumen bastante realista.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_e34Zp8mFxTc/SDhI3L0dWgI/AAAAAAAAASs/v_OC_hWF0Y0/s1600-h/godrays.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_e34Zp8mFxTc/SDhI3L0dWgI/AAAAAAAAASs/v_OC_hWF0Y0/s400/godrays.jpg" alt="" id="BLOGGER_PHOTO_ID_5203989482329430530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Acabo de probarla y quedan muchos fallos por arreglar (además no se si buscaré una escena nueva) y cosas que optimizar, pero para haberle echado sólo un rato creo que por ahora va bastante bien.&lt;br /&gt;&lt;br /&gt;Por último, ya se puede bajar la demo de animación de vegetación &lt;a style="font-weight: bold;" href="http://www.codeplex.com/XNACommunity/Wiki/View.aspx?title=TreesAnimation&amp;amp;referringTitle=Home"&gt;en el lugar habitual&lt;/a&gt;. Se han detectado algunos fallos en algunas tarjetas gráficas y hay quien me ha comentado que el instancing no les funcionaba bien, así que agradeceré cualquier comentario al respecto. ^^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-7660563863689975589?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/7660563863689975589/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=7660563863689975589' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/7660563863689975589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/7660563863689975589'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/05/no-tengo-remedio.html' title='No tengo remedio'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_e34Zp8mFxTc/SDhI3L0dWgI/AAAAAAAAASs/v_OC_hWF0Y0/s72-c/godrays.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-3769433501835152788</id><published>2008-05-21T21:51:00.005+02:00</published><updated>2008-05-21T22:05:00.311+02:00</updated><title type='text'>A mí me daban dos!</title><content type='html'>Despues de la demo de POM y Custom Content Processor, una vez más voy a sacar un ejemplo doble. En el próximo, aparte de animación de vegetación como ya mostré en la entrada anterior, me di cuenta de que los cuatro hierbajos que se pintaban quedaban muy tristes y además suponían un bajón de rendimiento incomprensible para lo poca cosa que eran, así que me he mirado cómo implementar hardware instancing. Esta técnica permite pintar con una sola llamada "draw" gran cantidad de objetos iguales (varios miles sin problemas en mi PC), aumentando mucho la velocidad de renderizado. Para poder colocar cada instancia en una posición diferente, se pasa la información de la transformación de cada una con un nuevo flujo de vértices accesibles desde el shader.&lt;br /&gt;&lt;br /&gt;Tal y como lo he implementado, el ejemplo no funcionará en Xbox 360 (aunque nunca los hago pensando en ejecutarlos en consola) ya que esta técnica se debe hacer de forma diferente en esta máquina. Dejo una imagen que da una idea del resultado:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_e34Zp8mFxTc/SDR_8yJ5SKI/AAAAAAAAASk/Zvz_TB02egI/s1600-h/TreeAnim%2BHWInstancing.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_e34Zp8mFxTc/SDR_8yJ5SKI/AAAAAAAAASk/Zvz_TB02egI/s400/TreeAnim%2BHWInstancing.jpg" alt="" id="BLOGGER_PHOTO_ID_5202924151751919778" border="0" /&gt;&lt;/a&gt;A lo largo de esta semana la iré dejando lista y la subiré. ^^&lt;br /&gt;&lt;br /&gt;Ah, y ya me han llegado el GPU Gems 3 y el ShaderX6, así que tengo trabajo para rato!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-3769433501835152788?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/3769433501835152788/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=3769433501835152788' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/3769433501835152788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/3769433501835152788'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/05/m-me-daban-dos.html' title='A mí me daban dos!'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_e34Zp8mFxTc/SDR_8yJ5SKI/AAAAAAAAASk/Zvz_TB02egI/s72-c/TreeAnim%2BHWInstancing.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-1534973111402980333</id><published>2008-05-18T20:36:00.003+02:00</published><updated>2008-05-18T20:45:11.258+02:00</updated><title type='text'>Mmmm... la naturaleza...</title><content type='html'>Aprovechando que ya me ha llegado el Shader X5 y que este fin de semana he tenido algo de tiempo (bueno, sólo me he podido poner hoy ^^U), me he puesto a preparar una pequeña demo sobre uno de los artículos del libro, concretamente el titulado "&lt;span&gt;Animating Vegetation Using GPU Programs". Es una técnica muy sencilla para animar en la gráfica varios tipos de vegetación como árboles, arbustos o hierba. Pese a que no tiene en cuenta la forma del modelo, ni huesos ni cosas por el estilo, sino que directamente modifica los vértices según una cierta función, la animación no es 100% realista pero da perfectamente el pego para muchas aplicaciones. Además he podido prepararlo en una mañana, así que qué más se puede pedir! Ya está terminada y no creo que le añada gran cosa más, pero me esperaré un poco a colgarla, ya que Javi tiene lista otra demo y no es plan de ponerlas todas a la vez y reventar XNACommunity. xD Igualmente he grabado un video que YouTube se ha encargado convenientemente de joder hasta la saciedad, aun así creo que más o menos se puede apreciar el efecto:&lt;br /&gt;&lt;br /&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/jUwZaYvIZMU&amp;amp;hl=en&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/jUwZaYvIZMU&amp;amp;hl=en&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00" type="application/x-shockwave-flash" wmode="transparent" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Sobre aquello tan ambicioso que había empezado ya veremos... Quizás era un poco demasiado ambicioso. :(&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-1534973111402980333?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/1534973111402980333/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=1534973111402980333' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/1534973111402980333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/1534973111402980333'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/05/mmmm-la-naturaleza.html' title='Mmmm... la naturaleza...'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-3656040770838014788</id><published>2008-05-13T17:05:00.003+02:00</published><updated>2008-05-13T17:11:33.500+02:00</updated><title type='text'>Resacón</title><content type='html'>Bueno, ya no. El viernes fue la fiesta de la facultad, y mientras me recuperaba he colgado la nueva demo. El efecto que implementaba es el Parallax Occlusion Mapping, una especie de Relief Mapping que por ejemplo se ha usado en el Crysis. Si alguien lo prueba y le va lento es muy posible que sea por el sistema de partículas, que chupa bastante, así que se puede desactivar. Como siempre se puede descargar &lt;a href="http://www.codeplex.com/XNACommunity/Wiki/View.aspx?title=Parallax%20Occlusion%20Mapping&amp;amp;referringTitle=Home"&gt;AQUI&lt;/a&gt; en XNACommunity, y a la derecha dejo el link correspondiente.&lt;br /&gt;&lt;br /&gt;Ahora estoy esperando a que me lleguen de una puñetera vez los libros para pillar nuevas ideas, pero mientra me he puesto a trabajar en otro ejemplo mucho más ambicioso y espectacular que los anteriores... No sé si lo conseguiré, pero por intentarlo que no quede. ^^ Stay tuned!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-3656040770838014788?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/3656040770838014788/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=3656040770838014788' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/3656040770838014788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/3656040770838014788'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/05/resacn.html' title='Resacón'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-5271815905077017117</id><published>2008-05-08T15:03:00.004+02:00</published><updated>2008-05-08T15:08:10.895+02:00</updated><title type='text'>Un pequeño adelanto</title><content type='html'>Como voy a estar un par de días sin poder hacer nada (la fiesta de la facultad y tal... :P), dejo una primera imagen de la próxima demo, que como ya comenté será más sencilla que las últimas que he hecho. Una pista sobre qué efecto implementa: el suelo. ;)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_e34Zp8mFxTc/SCL6ubBYESI/AAAAAAAAASE/oCa0d2WdPcc/s1600-h/POMDemo.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_e34Zp8mFxTc/SCL6ubBYESI/AAAAAAAAASE/oCa0d2WdPcc/s400/POMDemo.jpg" alt="" id="BLOGGER_PHOTO_ID_5197992595373429026" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-5271815905077017117?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/5271815905077017117/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=5271815905077017117' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5271815905077017117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/5271815905077017117'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/05/un-pequeo-adelanto.html' title='Un pequeño adelanto'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_e34Zp8mFxTc/SCL6ubBYESI/AAAAAAAAASE/oCa0d2WdPcc/s72-c/POMDemo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-1186195297713598492</id><published>2008-05-06T00:04:00.004+02:00</published><updated>2008-05-06T00:14:54.827+02:00</updated><title type='text'>Teh Coordinator</title><content type='html'>Hace unos días por fin colgué la demo sobre nubes/humo volumétrico. Ya había puesto el link en el espacio dedicado a ello en la columna de la derecha del blog, pero no había puesto nada sobre ello. No voy a poner fotos bonitas ni vídeo porque ya está puesto en entradas anteriores, pero pongo el link &lt;a href="http://www.codeplex.com/XNACommunity/Wiki/View.aspx?title=Volumetric%20Clouds&amp;amp;referringTitle=Home"&gt;AQUÍ.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Por otro lado ya estoy metido desde hace unos días en una nueva demo. En un principio tenía buena pinta, pero no me acaban de convencer los resultados así que seguramente la dejaré en algo más sencillo que lo que tenía en mente. Bueno, no todo iban a ser éxitos a la primera... Lo que seguramente se quedará como demo final es un ejemplo de customización de un Content Processor de XNA para que pueda cargar varias texturas para un mismo modelo, y así hacer efectos de iluminación más complejos como un normal mapping. Será un ejemplo de lo más sencillo, pero seguramente será útil para más de uno, y además añadiré algún shader molón para representar relieves.&lt;br /&gt;&lt;br /&gt;Por último, comentar que desde ayer soy el nuevo coordinador de XNACommunity! Gracias a Javi (MVP DirectX) y a Rubén (de Novarama) por fijarse en mí pese a llevar tan poco tiempo colaborando en la página. ^^ Y bueno, esto hace que me entren más ganas de seguir haciendo cosas y aprendiendo cada día!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-1186195297713598492?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/1186195297713598492/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=1186195297713598492' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/1186195297713598492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/1186195297713598492'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/05/teh-coordinator.html' title='Teh Coordinator'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-487412723759924298</id><published>2008-04-28T22:20:00.005+02:00</published><updated>2008-04-28T23:22:18.796+02:00</updated><title type='text'>SSAO Again, nueva demo finiquitada y un chino ladrón</title><content type='html'>Hoy me he decidido a colgar el artículo sobre SSAO. Creo que aclara algunas cosillas importantes (sobre todo en el tema del cálculo de la dirección de visión), aunque quizás debería haber metido algún esquema más sobre los vectores que se calculan como me recomendaron. Lo malo es que no sabía qué esquemas hacer y cómo hacerlos (no encontré la manera de representar algo útil), así que he preferido no meter nada por si acaso lo lío más. Se puede leer &lt;a href="http://www.codeplex.com/XNACommunity/Wiki/View.aspx?title=Screen-Space%20Ambient%20Occlusion%2c%20c%u00f3mo%20implementarlo&amp;amp;referringTitle=SSAO"&gt;AQUÍ&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Por otro lado ya he terminado la demo de nubes volumétricas. Esperaré un par de días o tres para colgarla y así dejo algo de tiempo para que se vean las cosas nuevas que se han subido. Mientras, he grabado un video de la versión casi-final (el skybox no es el definitivo, pero ya se ve cómo es el efecto).&lt;br /&gt;&lt;br /&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/3QqD26SXWDc&amp;amp;hl=en"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/3QqD26SXWDc&amp;amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Y por último, relacionado con este tema, hay un chino cabrón que me ha robado el video para hacer publicidad de una página guarra! Es cierto que suena de lo más bizarro, y cuando lo he visto me he quedado tal que así -&gt; o_O  &lt;a href="http://tw.youtube.com/watch?v=GY4jLsbhRHE"&gt;Parece que por ahora no le ha servido de mucho...&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Actualización:&lt;/span&gt; el chino ladrón ha borrado el video. Casi me apena...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-487412723759924298?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/487412723759924298/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=487412723759924298' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/487412723759924298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/487412723759924298'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/04/ssao-again-nueva-demo-finiquitada-y-un.html' title='SSAO Again, nueva demo finiquitada y un chino ladrón'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-3199311700135545770</id><published>2008-04-24T22:57:00.006+02:00</published><updated>2008-04-24T23:45:15.179+02:00</updated><title type='text'>Pa la saca!</title><content type='html'>Eso es lo que he dicho al pillarme el GPU Gems 3, el Shader X5 y el Shader X6, tres buenos libros sobre técnicas gráficas y otras pijerías para hacer con shaders. Son un poco caros, pero espero que sean los primeros de una buena colección. ^^ A ver si no tardan mucho en llegar y así pillo ideas para nuevas demos.&lt;br /&gt;&lt;br /&gt;Y ahora a lo interesante. La demo sobre nubes volumétricas (resulta que hay un artículo en Shader X5 explicando esta técnica) ya casi está terminada. Hoy le he puesto una skybox para que tenga un aspecto más pulido, pero poca cosa más. Todavía no la voy a colgar porque el código está muy guarro y quiero optimizarlo un poco, pero ya queda poca cosa que hacer.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_e34Zp8mFxTc/SBD2NvkMupI/AAAAAAAAAR8/xBhuYEgkupE/s1600-h/volCloud2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_e34Zp8mFxTc/SBD2NvkMupI/AAAAAAAAAR8/xBhuYEgkupE/s400/volCloud2.jpg" alt="" id="BLOGGER_PHOTO_ID_5192921086325209746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Por otro lado, ya tengo un primer borrador del artículo sobre SSAO. Supongo que mañana ya lo colgaré, espero que haya quedado suficientemente claro. Empieza así:&lt;br /&gt;&lt;blockquote&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt;¿Qué es Ambient Occlusion? &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Ambient Occlusion es una técnica de sombreado que simula la atenuación local de la luz debido a la propia geometría de la escena. Es decir, es una aproximación bastante bruta de los métodos de iluminación global que se pueden usar en visualizaciones que no son en tiempo real. Esta técnica se ha hecho popular gracias a que los resultados que proporciona son bastante realistas (provocando una mejor percepción de las formas 3D que se intentan representar) y el coste de cálculo la hace muy interesante para, por ejemplo, visualizar prototipos de animaciones o como un método para mejorar el aspecto del render sin tener que esperar mucho tiempo para pintar la imagen.&lt;br /&gt;&lt;br /&gt;Aún así, el tiempo que se necesita para representar correctamente este efecto seguía siendo prohibitivo para juegos u otras aplicaciones interactivas, hasta ahora.&lt;/p&gt;&lt;/blockquote&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-3199311700135545770?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/3199311700135545770/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=3199311700135545770' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/3199311700135545770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/3199311700135545770'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/04/pa-la-saca.html' title='Pa la saca!'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_e34Zp8mFxTc/SBD2NvkMupI/AAAAAAAAAR8/xBhuYEgkupE/s72-c/volCloud2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-2391483649378808322</id><published>2008-04-22T22:33:00.003+02:00</published><updated>2008-04-22T22:46:50.515+02:00</updated><title type='text'>Que no decaiga</title><content type='html'>Esta tarde ha sido productiva, el nuevo ejemplo ya va cobrando forma y creo que ya tiene un aspecto lo suficientemente bueno como para enseñar algo:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_e34Zp8mFxTc/SA5McPkMuoI/AAAAAAAAAR0/NObq9xIs-0I/s1600-h/volCloud.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_e34Zp8mFxTc/SA5McPkMuoI/AAAAAAAAAR0/NObq9xIs-0I/s400/volCloud.jpg" alt="" id="BLOGGER_PHOTO_ID_5192171468503169666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Se trata de una técnica muy astuta y sencilla para pintar nubes (o explosiones, o humo, o similar) volumétricas con un coste muy bajo. La idea la encontré navegando por ahí &lt;a href="http://graphicsrunner.blogspot.com/"&gt;en el blog de Kyle Hayward&lt;/a&gt;, mientras  buscaba nuevos efectos a estudiar. No había ningún código de ejemplo, pero &lt;a href="http://www.inframez.com/events_volclouds_slide01.htm"&gt;las diapositivas originales&lt;/a&gt; que explican el proceso son sobradamente claras para poder implementarla. Los resultados son muy buenos (pese a tener varios problemas), así que recomiendo a todo el mundo echarle un vistazo.&lt;br /&gt;&lt;br /&gt;Como se puede observar he copiado la escena de demostración que aparece en las diapositivas, pero es que no voy sobrado de creatividad precisamente, y la escena es buena... ^^U&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-2391483649378808322?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/2391483649378808322/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=2391483649378808322' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2391483649378808322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/2391483649378808322'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/04/que-no-decaiga.html' title='Que no decaiga'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_e34Zp8mFxTc/SA5McPkMuoI/AAAAAAAAAR0/NObq9xIs-0I/s72-c/volCloud.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-4512867655812228523</id><published>2008-04-22T00:05:00.005+02:00</published><updated>2008-04-22T11:38:55.656+02:00</updated><title type='text'>Screen-Space Ambient Occlusion, toma ya</title><content type='html'>Si es que no paro. Me levanto pronto, voy a trabajar, vuelvo a casa a comer en media hora, tiro pal curro otra vez, llego a casa a las 7 de la tarde, y entonces empieza mi tiempo libre... Y me pongo a programar, a hacer alguna demo porque es lo que me gusta, y el tiempo pasa rapidísimo y acaban siendo las 12 como ahora sin que realmente haya hecho demasiadas cosas... Bueno, la verdad es que sí, que he avanzado un buen trozo de una nueva cosilla que posiblemente quede bastante bien. ^^&lt;br /&gt;&lt;br /&gt;Pero bueno, estos días han sido bastante interesantes. Publiqué una demo en XNACommunity mostrando unas de las técnicas más nuevas que se pueden ver hoy en día (sólo hay un juego comercial que lo implemente, y es el Crysis), el Screen-Space Ambient Occlusion. Resumiendo mucho, la técnica intenta simular en espacio imagen la atenuación de la luz ambiental debida a la propia geometría de la escena.&lt;br /&gt;&lt;br /&gt;Aunque así no quede muy claro vale la pena echarle un vistazo, porque bien usada puede aumentar el realismo de la imagen de manera espectacular. Como ejemplo, &lt;a href="http://video.google.es/videoplay?docid=-2592720445119800709&amp;amp;q=crysis+ambient+occlusion&amp;amp;total=12&amp;amp;start=0&amp;amp;num=10&amp;amp;so=0&amp;amp;type=search&amp;amp;plindex=1"&gt;AQUÍ&lt;/a&gt; hay un video mostrando la técnica tal y como se ha puesto en práctica en el juego de Crytek.&lt;br /&gt;&lt;br /&gt;Y bueno, a continuación dejo un enlace a mi versión, que incluye el código fuente para que cualquiera pueda trastearlo o mejorarlo.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.codeplex.com/XNACommunity/Wiki/View.aspx?title=SSAO&amp;amp;referringTitle=Home"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_e34Zp8mFxTc/SA0QCsKaEGI/AAAAAAAAARs/RIQEPFb1DbU/s400/SSAOLow.jpg" alt="" id="BLOGGER_PHOTO_ID_5191823583828643938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Aún así, como parece que para algunas personas el código no queda muy claro y al haber una ausencia casi absoluta de documentos que expliquen la técnica, estoy preparando un pequeño artículo explicando con cierto detalle los detalles de la implementación que he usado.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-4512867655812228523?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/4512867655812228523/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=4512867655812228523' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/4512867655812228523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/4512867655812228523'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/04/screen-space-ambient-occlusion-toma-ya.html' title='Screen-Space Ambient Occlusion, toma ya'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_e34Zp8mFxTc/SA0QCsKaEGI/AAAAAAAAARs/RIQEPFb1DbU/s72-c/SSAOLow.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-8767836363178866410</id><published>2008-04-16T08:46:00.007+02:00</published><updated>2008-04-28T23:23:17.095+02:00</updated><title type='text'>El siempre molón Motion Blur</title><content type='html'>Hace tiempo que sentía curiosidad por este efecto. Su definición según Wikipedia es:&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;blockquote&gt;&lt;b&gt;Motion blur&lt;/b&gt; o "trazo confuso de movimiento" es el aparente movimiento a gran velocidad de objetos en una imagen quieta (fotografía) o una secuencia de imágenes como una película o animación.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;Es decir, el típico difuminado que el ojo humano percibe al ver cosas que van muy rápido. Una cosa tan "tonta" puede hacer que una visualización que funciona a una tasa de 30 imágenes por segundo con motion blur tenga un aspecto mucho más realista que la misma funcionando a 60 sin este efecto.&lt;br /&gt;&lt;br /&gt;Cuando empecé a mirarme cómo implementarlo, vi algunos métodos un poco "arcaicos" como por ejemplo guardar en una textura los frames anteriores al actual y hacer blending para ir mezclándolos entre ellos o usar el búfer de acumulación para conseguir un efecto parecido, pero los resultados eran bastante... feos.&lt;br /&gt;&lt;br /&gt;Hoy en día, gracias a los ahora tan habituales shaders, se pueden conseguir efectos más sofisticados y con un resultado mucho más realista, sin que necesariamente eso signifique un coste de cálculo alto.&lt;br /&gt;&lt;br /&gt;Precisamente el ejemplo que pondré más adelante aplica la técnica explicada en la presentación titulada "&lt;a href="http://developer.nvidia.com/docs/IO/8230/GDC2003_OpenGLShaderTricks.pdf"&gt;Stupid OpenGL Shader Tricks&lt;/a&gt;", &lt;span id="ctl00_ctl00_Content_TabContentPanel_Content_wikiSourceLabel"&gt;de Simon Green. Este documento es bastante antiguo (2003) y creo que hoy en día hay técnicas que dan resultados mucho mejores (si no me equivoco, usando el Geometry Shader), pero el algoritmo que se explica es muy, muy sencilo y muy fácil de implementar.&lt;br /&gt;&lt;br /&gt;Básicamente se trata de usar las matrices Model y View del frame actual y del anterior para generar un vector de velocidad en el vertex shader. Este vector se transforma al espacio imagen y se pasa al pixel shader para efectuar el blur en la dirección que marque. Sin más rollos (y además el código es bastante claro), el ejemplo lo podéis bajar haciendo click en la siguiente imagen:&lt;br /&gt;&lt;a href="http://www.codeplex.com/XNACommunity/Wiki/View.aspx?title=Motion%20Blur&amp;amp;referringTitle=Ejemplos"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.codeplex.com/XNACommunity/Wiki/View.aspx?title=Motion%20Blur&amp;amp;referringTitle=Ejemplos"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_e34Zp8mFxTc/SAWz_3s0zuI/AAAAAAAAARk/NS9_GGw0MXU/s400/motionBlurLow.jpg" alt="" id="BLOGGER_PHOTO_ID_5189752055479455458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;En el ejemplo no se hace así, pero he comprobado que una manera de aplicar el efecto que queda bastante bien en muchas situaciones es guardar todas las velocidades de todos los objetos de la escena en una textura y hacer todo el blur como un paso de post-proceso sobre toda la pantalla (y creo que queda mejor haciendo el blur desde el pixel que se trata hacia el exterior, y no como se hace en la demo).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-8767836363178866410?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/8767836363178866410/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=8767836363178866410' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/8767836363178866410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/8767836363178866410'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/04/el-siempre-moln-motion-blur.html' title='El siempre molón Motion Blur'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_e34Zp8mFxTc/SAWz_3s0zuI/AAAAAAAAARk/NS9_GGw0MXU/s72-c/motionBlurLow.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5751506818033462578.post-4738506041651228588</id><published>2008-04-12T09:46:00.003+02:00</published><updated>2008-04-16T15:07:18.640+02:00</updated><title type='text'>el g0e strikes back!</title><content type='html'>He vuelto! Hace tiempo que abrí este blog para poner las cosas que iba aprendiendo, pero lo dejé abandonado por culpa del proyecto de fin de carrera, el trabajo, y otras cosas que pertenecen a la llamada Vida Real™.&lt;br /&gt;&lt;br /&gt;Ahora me he vuelto a poner en serio, e intentaré actualizar de forma periódica con demos y ejemplos que realizo en mi escaso tiempo libre.&lt;br /&gt;&lt;br /&gt;Espero que sean de ayuda para alguien.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5751506818033462578-4738506041651228588?l=elgoe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elgoe.blogspot.com/feeds/4738506041651228588/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5751506818033462578&amp;postID=4738506041651228588' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/4738506041651228588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5751506818033462578/posts/default/4738506041651228588'/><link rel='alternate' type='text/html' href='http://elgoe.blogspot.com/2008/04/el-g0e-strikes-back.html' title='el g0e strikes back!'/><author><name>el g0e</name><uri>http://www.blogger.com/profile/15067986184279595089</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://2.bp.blogspot.com/_e34Zp8mFxTc/SYgRK43EOfI/AAAAAAAAAe8/i1BhwDQraw8/S220/28.jpg'/></author><thr:total>0</thr:total></entry></feed>
