<?xml version="1.0"?>
<rss version="2.0">

<channel>
	<title>Planeta Codepixel</title>
	<link>http://planet.codepixel.com/</link>
	<language>en</language>
	<description>Planeta Codepixel - http://planet.codepixel.com/</description>

<item>
	<title>Divagaciones sobre game programming: Unigine anuncia oficialmente Oil Rush</title>
	<guid>tag:blogger.com,1999:blog-11356246.post-4481783170704332577</guid>
	<link>http://dsgp.blogspot.com/2010/09/unigine-anuncia-oficialmente-oil-rush.html</link>
	<description>Hoy Unigine Corp. ha &lt;a href=&quot;http://unigine.com/press-releases/100901-oilrush_announce/&quot;&gt;anunciado oficialmente Oil Rush&lt;/a&gt;, un juego de estrategia en tiempo real basado en su motor propietario. El juego viene desarrollándose internamente desde el 2009, y me parece a mí que es un intento por colocar un producto en el mercado que muestre la potencialidad de Unigine. El mismo saldrá para Windows, PS3 y Linux, en una apuesta que algunos considerarían bastante arriesgada. Sin embargo, me parece que aparte de cómo se comporten las ventas en Linux, el punto a demostrar aquí, en mi opinión, es que Unigine permite un desarrollo multiplataforma sin costes adicionales. La mayoría de las compañías desarrollan primero para Windows y luego encargan a alguien que porte el juego, o cual encarece el proceso y usualmente el título llega tarde.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/11356246-4481783170704332577?l=dsgp.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 01 Sep 2010 17:00:33 +0000</pubDate>
	<author>noreply@blogger.com (roger)</author>
</item>
<item>
	<title>Divagaciones sobre game programming: Pruebas de stress mínimo</title>
	<guid>tag:blogger.com,1999:blog-11356246.post-8261453677995008057</guid>
	<link>http://dsgp.blogspot.com/2010/08/pruebas-de-stress-minimo.html</link>
	<description>Esta es una prueba muy mínima de stress, con una versión inicial del modelo del personaje. Aún le falta el mapa normal. Y vestirlo, claro.&lt;br /&gt;&lt;div style=&quot;clear: both; text-align: center;&quot; class=&quot;separator&quot;&gt;&lt;a style=&quot;margin-left: 1em; margin-right: 1em;&quot; href=&quot;http://4.bp.blogspot.com/_HnOq3NG2kIA/TH1Gm9FdXbI/AAAAAAAAATk/creKjAmeFG8/s1600/ultima.jpg&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_HnOq3NG2kIA/TH1Gm9FdXbI/AAAAAAAAATk/creKjAmeFG8/s320/ultima.jpg&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;El modelo está hecho en Blender y tiene un poco más de 6000 polígonos.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/11356246-8261453677995008057?l=dsgp.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 31 Aug 2010 18:20:48 +0000</pubDate>
	<author>noreply@blogger.com (roger)</author>
</item>
<item>
	<title>Divagaciones sobre game programming: CEGUI 0.7.2 y Cyphesis 0.5.24</title>
	<guid>tag:blogger.com,1999:blog-11356246.post-5137417718742126693</guid>
	<link>http://dsgp.blogspot.com/2010/08/cegui-072-y-cyphesis-0524.html</link>
	<description>Un par de buenas noticias: hace un par de días se liberó una nueva versión de Cyphesis, que ya llevaba buen tiempo en silencio y acaba de anunciarse además CEGUI 0.7.2, que ahora incluye soporte experimental para MinGW. Lo cual me alegra muchísimo, pues ya me estaba preparando para ver cómo lo compilaba yo mismo en Code::Blocks.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/11356246-5137417718742126693?l=dsgp.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 30 Aug 2010 16:21:17 +0000</pubDate>
	<author>noreply@blogger.com (roger)</author>
</item>
<item>
	<title>Divagaciones sobre game programming: Nuevo proyecto de MMORPG</title>
	<guid>tag:blogger.com,1999:blog-11356246.post-6745927872086048494</guid>
	<link>http://dsgp.blogspot.com/2010/08/nuevo-proyecto-de-mmorpg.html</link>
	<description>O más bien de un framework para desarrollar MMORPGs. Les presento a &lt;a href=&quot;http://mproject-dev.blogspot.com/&quot;&gt;MProject&lt;/a&gt;,  que pinta muy bien, solo échenle un vistazo a las características actuales. Les recomiendo que lo sigan, aunque aún el código no está disponible, lo estará en cuanto su autor organice un poco las cosas.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/11356246-6745927872086048494?l=dsgp.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 28 Aug 2010 14:46:38 +0000</pubDate>
	<author>noreply@blogger.com (roger)</author>
</item>
<item>
	<title>Interface: Puesta de sol en Saians</title>
	<guid>http://feiss.be/blog/post/135</guid>
	<link>http://feiss.be/blog/post/135</link>
	<description>Habrá que hacer más y mejores! :) El video está disponible en HD y para descarga en Vimeo.Actualización: Un par de fotos en plan making of, cortesía de Thai :)) (&lt;a href=&quot;http://feiss.be/blog/post/135&quot;&gt;Leer resto de la noticia | read full post&lt;/a&gt;)</description>
	<pubDate>Thu, 12 Aug 2010 01:08:00 +0000</pubDate>
</item>
<item>
	<title>Strawberry Iq: trigonometric trics</title>
	<guid>http://iquilezles.org/www/articles/sincos/sincos.htm</guid>
	<link>http://iquilezles.org/www/articles/sincos/sincos.htm</link>
	<description>Article</description>
	<pubDate>Sat, 07 Aug 2010 06:00:00 +0000</pubDate>
</item>
<item>
	<title>Interface: 4-sided two player pong game in 1024Bytes</title>
	<guid>http://feiss.be/blog/post/134</guid>
	<link>http://feiss.be/blog/post/134</link>
	<description>js1k is a new contest in which participants have to do something in Javascript in no more than 1024 Bytes. I could not resist and took the bait, so I've done a 2-sided two player pong game, that you play clicking on the image:Don't forget to check out the rest of participants, great stuff! (&lt;a href=&quot;http://feiss.be/blog/post/134&quot;&gt;Leer resto de la noticia | read full post&lt;/a&gt;)</description>
	<pubDate>Wed, 04 Aug 2010 01:39:00 +0000</pubDate>
</item>
<item>
	<title>Interface: Demo de LUXI disponible</title>
	<guid>http://feiss.be/blog/post/133</guid>
	<link>http://feiss.be/blog/post/133</link>
	<description>Al fin! casi un año después de que el LUXI ganara ArtFutura, y por numerosos motivos que nos llevaron a postponer el acabado del juego, durante todo este mes de Julio le dimos duro para intentar finiquitarlo.No está totalmente acabado, solo nos queda finalizar unas cinemáticas y acabar de pulir  (&lt;a href=&quot;http://feiss.be/blog/post/133&quot;&gt;Leer resto de la noticia | read full post&lt;/a&gt;)</description>
	<pubDate>Tue, 03 Aug 2010 20:37:00 +0000</pubDate>
</item>
<item>
	<title>Interface: HTML5 Drag and Drop</title>
	<guid>http://feiss.be/blog/post/132</guid>
	<link>http://feiss.be/blog/post/132</link>
	<description>Messing with HTML5 DnD for a small project of my own, I've done a little web for testing main events and its objects:http://feiss.be/tmp/dnd_debug/I put it online, maybe can be helpful for someone. Only tested in Chrome 6.0.472 and Firefox 4.0 b1. The fact is that you already can see lots of di (&lt;a href=&quot;http://feiss.be/blog/post/132&quot;&gt;Leer resto de la noticia | read full post&lt;/a&gt;)</description>
	<pubDate>Sat, 24 Jul 2010 18:34:00 +0000</pubDate>
</item>
<item>
	<title>Tutfanzine: Unreal Tournament 3 - 3D Buzz Video Tutorial Pack</title>
	<guid>tag:blogger.com,1999:blog-625260102046232614.post-999066656843856482</guid>
	<link>http://tutfanzine.blogspot.com/2010/07/unreal-tournament-3-3d-buzz-video.html</link>
	<description>Un conjunto de videos creados por Buzz para mostrar como utilizar el Unreal Editor:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.fileplanet.com/195417/190000/fileinfo/Unreal-Tournament-3---3D-Buzz-Video-Tutorial-Pack&quot;&gt;Unreal Tournament 3 - 3D Buzz Video Tutorial Pack&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Un poquito de 3d i Unreal no le hace daño a nadie.&lt;div class=&quot;blogger-post-footer&quot;&gt;tutfanzine.blogspot.com&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/625260102046232614-999066656843856482?l=tutfanzine.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 08 Jul 2010 09:05:00 +0000</pubDate>
	<author>noreply@blogger.com (Toni Rodriguez)</author>
</item>
<item>
	<title>Tutfanzine: Dingoo A320</title>
	<guid>tag:blogger.com,1999:blog-625260102046232614.post-3245141284765037694</guid>
	<link>http://tutfanzine.blogspot.com/2010/07/dingoo-a320.html</link>
	<description>Hay mucha gente que se obsesiona por consolas como Nintendo DS, Nintendo DSi, PSP, etc... Pues dejad que yo me obsesione por otro tipo de consolas no tan conocidas. Os presento la Dingoo A320&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Primera parte&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Segunda parte&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Creo que hay opciones a las que nos obligan a ingerir las grandes compañías como Nintendo o Sony&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;b&gt;Para mas información&lt;/b&gt;&lt;br /&gt;&lt;a href=&quot;http://es.wikipedia.org/wiki/Dingoo&quot; target=&quot;_blank&quot;&gt;Dingoo en WikiPedia&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.zococity.es/product/26/0/0/1/1/Dingoo-A320-Negra.htm&quot;&gt;Si la quieres comprar&lt;/a&gt; ( por eBay hay de vez en cuando )&lt;br /&gt;&lt;/blockquote&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;tutfanzine.blogspot.com&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/625260102046232614-3245141284765037694?l=tutfanzine.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 07 Jul 2010 05:05:00 +0000</pubDate>
	<author>noreply@blogger.com (Toni Rodriguez)</author>
</item>
<item>
	<title>Tutfanzine: Game Editor</title>
	<guid>tag:blogger.com,1999:blog-625260102046232614.post-4737633528381691813</guid>
	<link>http://tutfanzine.blogspot.com/2010/07/game-editor.html</link>
	<description>Ya escuché noticias sobre este proyecto, pero hasta hoy no le he echado un vistazo. Lo poco que he podido averiguar, me ha atraido mucho hasta atal punto que lo probaré.&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;clear: both; text-align: center;&quot; class=&quot;separator&quot;&gt;&lt;a style=&quot;margin-left: 1em; margin-right: 1em;&quot; href=&quot;http://2.bp.blogspot.com/_U22-b2THafQ/TDMt031x1wI/AAAAAAAACYQ/vZ93yDHr-zE/s1600/game-editor.png&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_U22-b2THafQ/TDMt031x1wI/AAAAAAAACYQ/vZ93yDHr-zE/s320/game-editor.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Un framework para crear juegos 2d, y que según su web, no se necesita saber programar. Eso sí, aunque no haga falta, es posible programar scripts.&lt;br /&gt;&lt;br /&gt;Bajo licencia GPL3, permite en caso que publiques el juego creado bajo la misma licencia, descargarlo y utilizarlo de forma gratuita.&lt;br /&gt;&lt;br /&gt;Para Linux, MacOSX y para Windows. Solo debe descargarse el fichero .zip comprimido y ejecutar ( los linuxeros, solo debemos asignar el permiso de ejecución al fichero ejecutable ).&lt;br /&gt;&lt;br /&gt;Demos, tutoriales, documentación y una comunidad online en forma de foro apoyan este proyecto, que yo personalmente voy a provar en Linux.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;b&gt;Para más información&lt;/b&gt;&lt;br /&gt;&lt;a href=&quot;http://game-editor.com/Main_Page&quot; target=&quot;_blank&quot;&gt;Web oficial de Game-editor&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=l-BYay5lpsI&quot; target=&quot;_blank&quot;&gt;El trailer en Youtube&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;tutfanzine.blogspot.com&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/625260102046232614-4737633528381691813?l=tutfanzine.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 06 Jul 2010 13:31:09 +0000</pubDate>
	<author>noreply@blogger.com (Toni Rodriguez)</author>
</item>
<item>
	<title>Jes&amp;uacute;s de santos: The Art of Multiprocessor Programming</title>
	<guid>http://entland.homelinux.com/blog/?p=494</guid>
	<link>http://feedproxy.google.com/~r/Entblog/~3/yT36zs0jx1A/</link>
	<description>The Art of Multiprocessor Programming
Author: Maurice Herlihy &amp;amp; Nir Shavit
Pages: 508
Published: 2008
Multiprocessor is everywhere now. After a period of uncertainty and fear we are starting to...&lt;img src=&quot;http://feeds.feedburner.com/~r/Entblog/~4/yT36zs0jx1A&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Mon, 05 Jul 2010 12:36:59 +0000</pubDate>
</item>
<item>
	<title>Tutfanzine: Campeonato de España de Street Fighter IV</title>
	<guid>tag:blogger.com,1999:blog-625260102046232614.post-4177163231971564549</guid>
	<link>http://tutfanzine.blogspot.com/2010/07/campeonat-de-espana-de-street-fighter.html</link>
	<description>Capcom y Meristation traen a España la primera edición del campeonato de Street Fighter IV.&lt;br /&gt;&lt;br /&gt;Las normas, premios y el calendario de inscripción podéis encontrarlo en la siguiente dirección&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.meristation.com/v3/des_noticia.php?id=cw4c2bcc354f09e&amp;amp;pic=GEN&quot; target=&quot;_blank&quot;&gt;Campeonato España de Street Fighter IV&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;En este tipo de juegos soy de los mas torpes que pueden existir en la faz de la Tierra...&lt;div class=&quot;blogger-post-footer&quot;&gt;tutfanzine.blogspot.com&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/625260102046232614-4177163231971564549?l=tutfanzine.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 03 Jul 2010 08:44:21 +0000</pubDate>
	<author>noreply@blogger.com (Toni Rodriguez)</author>
</item>
<item>
	<title>Strawberry Iq: Better fog</title>
	<guid>http://iquilezles.org/www/articles/fog/fog.htm</guid>
	<link>http://iquilezles.org/www/articles/fog/fog.htm</link>
	<description>Article</description>
	<pubDate>Sat, 26 Jun 2010 06:00:00 +0000</pubDate>
</item>
<item>
	<title>Rub&amp;eacute;n Penalva's blog: Test: Task based Flock Simulation</title>
	<guid>http://www.rpenalva.com/blog/?p=234</guid>
	<link>http://www.rpenalva.com/blog/?p=234</link>
	<description>&lt;p&gt;&lt;a href=&quot;http://www.rpenalva.com/blog/?p=234&quot;&gt;&lt;em&gt;Click here to view the embedded video.&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Flock simulation using tasks in order to keep busy all the cpu cores. It uses the Vista Pool Thread API to make a really simple wrap for send multiple tasks to the pool. The video shows how most of cpu cores (hardware threads) are not working under a heavy load of work with only one task in the pool. If the work is spread across multiple tasks, the video shows how all the cpu cores are busy.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Downloads&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.rpenalva.com/downloads/tests/taskBasedFlockSim/TaskBasedFlockSim.zip&quot;&gt;Source code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span id=&quot;more-234&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Report&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;After seeing the gdc10 intel talk about tasks using the vista thread pool api,  I wanted to give it a try. So, the objective of this test is just try the thread pool api that vista provides. I dont try to get a massive amount of geometry on screen, just have something cpu intensive and appealing like a flock simulation algorithm.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Controls&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Left click plus mouse movement to rotate the camera around the flock.&lt;/li&gt;
&lt;li&gt;Right click plus mouse move up/down to zoom in/out.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Technology&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;C++&lt;/li&gt;
&lt;li&gt;Boost&lt;/li&gt;
&lt;li&gt;Opengl 2.0&lt;/li&gt;
&lt;li&gt;Qt&lt;/li&gt;
&lt;li&gt;Freeglut&lt;/li&gt;
&lt;li&gt;Glew&lt;/li&gt;
&lt;li&gt;Microsoft Visual Studio 2008 Professional Edition&lt;/li&gt;
&lt;li&gt;Subversion&lt;/li&gt;
&lt;li&gt;Redmine&lt;/li&gt;
&lt;li&gt;Windows 7 x64&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Develop/Build/Test Machine Specs &lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz&lt;/li&gt;
&lt;li&gt;3072 Mb RAM&lt;/li&gt;
&lt;li&gt; Nvidia GeForce GTX 260&lt;/li&gt;
&lt;li&gt;Nvidia Driver Version: 196.21 WHQL&lt;/li&gt;
&lt;li&gt;Microsoft Windows 7 Professional x64&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Resources&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms686766(VS.85).aspx&quot;&gt;Vista Thread Pool API&lt;/a&gt; from msdn&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.red3d.com/cwr/steer/&quot;&gt;“Steering Behaviors For Autonomous Characters”&lt;/a&gt; by Craig Reynolds&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.gdcvault.com/showConference.php?category=free&amp;amp;conference=280&amp;amp;expand_conferences=,280#conference280&quot;&gt;“Task-based Multithreading — How to Program for 100 Cores”&lt;/a&gt; by Ron Fosner&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Trefoil_knot&quot;&gt;“Trefoil knot”&lt;/a&gt; from Wikipedia&lt;/li&gt;
&lt;/ul&gt;</description>
	<pubDate>Tue, 08 Jun 2010 23:15:02 +0000</pubDate>
</item>
<item>
	<title>Strawberry Iq: Wavelet image compression</title>
	<guid>http://iquilezles.org/www/articles/wavelet/wavelet.htm</guid>
	<link>http://iquilezles.org/www/articles/wavelet/wavelet.htm</link>
	<description>Article</description>
	<pubDate>Mon, 31 May 2010 06:00:00 +0000</pubDate>
</item>
<item>
	<title>Soledad Penades: Messing with OpenGL ES (in Android)</title>
	<guid>http://soledadpenades.com/?p=2592</guid>
	<link>http://soledadpenades.com/2010/05/05/messing-with-opengl-es-in-android/</link>
	<description>&lt;h3&gt;The emulator vs the physical machines&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;gl.glLineWidth&lt;/strong&gt; is ignored in the HTC Magic (all lines have width = 1.0), whereas it is honoured on the emulator&lt;/li&gt;
&lt;li&gt;it also seems like the emulator performs some sort of &lt;strong&gt;polygon clipping&lt;/strong&gt; instead of culling triangles when at least one of the vertexes is out of the frustrum — so you get different output in some cases&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Drawing text with OpenGL ES’ glDrawTexfOES vs the classic OpenGL orthogonal view methods&lt;/h3&gt;
&lt;p&gt;There’s no need for setting an orthogonal view when using glDrawTexfOES for drawing text into the screen, since it seems to be ignoring any existing view or projection matrix and simply drawing into the screen buffer (and that’s probably why it is so fast!).&lt;/p&gt;
&lt;p&gt;So no more structures like this:&lt;/p&gt;
&lt;div class=&quot;syhi_block&quot;&gt;&lt;code&gt;gl.&lt;span style=&quot;color: #006633;&quot;&gt;glMatrixMode&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;GL10.&lt;span style=&quot;color: #006633;&quot;&gt;GL_PROJECTION&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;
gl.&lt;span style=&quot;color: #006633;&quot;&gt;glPushMatrix&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;
gl.&lt;span style=&quot;color: #006633;&quot;&gt;glLoadIdentity&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;
gl.&lt;span style=&quot;color: #006633;&quot;&gt;glViewport&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;0, 0, canvasWidth, canvasHeight&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;
gl.&lt;span style=&quot;color: #006633;&quot;&gt;glOrthof&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&lt;/span&gt;halfCanvasWidth, halfCanvasWidth, &lt;span style=&quot;color: #339933;&quot;&gt;-&lt;/span&gt;halfCanvasHeight, halfCanvasHeight, 1.0f, 200.0f&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;// draw text here&lt;/span&gt;&lt;br /&gt;
                &lt;br /&gt;
gl.&lt;span style=&quot;color: #006633;&quot;&gt;glPopMatrix&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;It will get reduced to just…&lt;/p&gt;
&lt;div class=&quot;syhi_block&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;// draw text here&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Interestingly though, &lt;strong&gt;if you’re using fog you’ll need to turn it off&lt;/strong&gt; or you may not see the text. So we’ll end up with this:&lt;/p&gt;
&lt;div class=&quot;syhi_block&quot;&gt;&lt;code&gt;gl.&lt;span style=&quot;color: #006633;&quot;&gt;glDisable&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;GL10.&lt;span style=&quot;color: #006633;&quot;&gt;GL_FOG&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;// draw text here&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;h3&gt;Modifying the buffers after they have been created&lt;/h3&gt;
&lt;p&gt;In classic OpenGL immediate mode we use glBegin/glEnd liberally. But we can’t keep on going on like that with OpenGL ES: we are forced to convert our glBegin/glEnd calls to the glDrawArrays or glDrawElements style.&lt;/p&gt;
&lt;p&gt;I believed that this would derive in only being able to show [boring] static geometry, but I have been messing with buffers and found out that you can for example modify the vertex buffers once they have been allocated and the data put into them. So you can not only do this:&lt;/p&gt;
&lt;div class=&quot;syhi_block&quot;&gt;&lt;code&gt;ByteBuffer bb&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
bb &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; ByteBuffer.&lt;span style=&quot;color: #006633;&quot;&gt;allocateDirect&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;vertices.&lt;span style=&quot;color: #006633;&quot;&gt;length&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;*&lt;/span&gt; 4&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;// 4 bytes per value&lt;/span&gt;&lt;br /&gt;
bb.&lt;span style=&quot;color: #006633;&quot;&gt;order&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;ByteOrder.&lt;span style=&quot;color: #006633;&quot;&gt;nativeOrder&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;
mVerticesBuffer &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; bb.&lt;span style=&quot;color: #006633;&quot;&gt;asFloatBuffer&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;
mVerticesBuffer.&lt;span style=&quot;color: #006633;&quot;&gt;put&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;vertices&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;
mVerticesBuffer.&lt;span style=&quot;color: #006633;&quot;&gt;position&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;0&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;but you could even do this afterwards:&lt;/p&gt;
&lt;div class=&quot;syhi_block&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;int&lt;/span&gt; i &lt;span style=&quot;color: #339933;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt; i &lt;span style=&quot;color: #339933;&quot;&gt;&amp;lt;&lt;/span&gt; mVerticesBuffer.&lt;span style=&quot;color: #006633;&quot;&gt;limit&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt; i&lt;span style=&quot;color: #339933;&quot;&gt;++&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;
        mVerticesBuffer.&lt;span style=&quot;color: #006633;&quot;&gt;put&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;i, &lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;float&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3Amath+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #003399;&quot;&gt;Math&lt;/span&gt;&lt;/a&gt;.&lt;span style=&quot;color: #006633;&quot;&gt;random&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #339933;&quot;&gt;-&lt;/span&gt; &lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3Amath+java.sun.com&amp;amp;btnI=I%27m%20Feeling%20Lucky&quot;&gt;&lt;span style=&quot;color: #003399;&quot;&gt;Math&lt;/span&gt;&lt;/a&gt;.&lt;span style=&quot;color: #006633;&quot;&gt;random&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Or in other words: &lt;strong&gt;buffer[index] = value&lt;/strong&gt; is &lt;strong&gt;buffer.put(index, value)&lt;/strong&gt; in buffer terms.&lt;/p&gt;
&lt;p&gt;I haven’t tried adding more elements (the above example doesn’t add more, just replaces the current vertex values with randomized ones). The performance doesn’t seem to plummet (FPS counter shows a decent 57-60 fps) when changing all 24 vertices in my test mesh, in &lt;em&gt;every frame&lt;/em&gt;. But I haven’t tried with larger models. And I’m not sure about the possible concurrency issues that might arise either. So it’s up to you if you want to use this — it feels a bit hackish to me :D&lt;/p&gt;</description>
	<pubDate>Wed, 05 May 2010 22:23:57 +0000</pubDate>
</item>
<item>
	<title>Strawberry Iq: Inverse bilinear filtering</title>
	<guid>http://iquilezles.org/www/articles/ibilinear/ibilinear.htm</guid>
	<link>http://iquilezles.org/www/articles/ibilinear/ibilinear.htm</link>
	<description>Article</description>
	<pubDate>Tue, 04 May 2010 06:00:00 +0000</pubDate>
</item>
<item>
	<title>El hombre alto: Trip to Kenya</title>
	<guid>tag:hombrealto.com,2010:/blog//1.21</guid>
	<link>http://hombrealto.com/blog/2010/04/trip-to-kenya.html</link>
	<description>I didn't tell most people, but on April 1st I went on a 10 day trip to Kenya. I'm planning to upload here a good portion of the nearly a thousand photos we made during the trip, but until then, here's a good one to show that IT-related services is never the best paid career. Not even down there ;-)&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;img src=&quot;http://hombrealto.com/blog/assets_c/2010/04/IMGA0061_2-thumb-500x888-10.jpg&quot; style=&quot;text-align: center; display: block; margin: 0 auto 20px;&quot; height=&quot;888&quot; width=&quot;500&quot; alt=&quot;IMGA0061_2.JPG&quot; class=&quot;mt-image-center&quot; /&gt;&lt;div style=&quot;text-align: left;&quot;&gt;And here's an image of an absolutely beautiful place on the delta of the Ramisi river, south of Mombasa. The guy in the image is me, running in that crystal clear, mildly-warm water. That beach is an island that disappears when the tide comes up. All white sand and no-one else but ourselves in the island. I just loved that place.&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://hombrealto.com/blog/assets_c/2010/04/IMGP1330-13.html&quot;&gt;&lt;img src=&quot;http://hombrealto.com/blog/assets_c/2010/04/IMGP1330-thumb-500x375-13.jpg&quot; style=&quot;text-align: center; display: block; margin: 0 auto 20px;&quot; height=&quot;375&quot; width=&quot;500&quot; alt=&quot;IMGP1330.JPG&quot; class=&quot;mt-image-center&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;When I have some more time, I'll create a gallery with loads and loads of photographs of that extremely beautiful country.&lt;/div&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 16 Apr 2010 16:56:19 +0000</pubDate>
</item>
<item>
	<title>El hombre alto: GPU Raymarching with Distance Fields</title>
	<guid>tag:hombrealto.com,2010:/blog//1.20</guid>
	<link>http://hombrealto.com/blog/2010/03/gpu-raymarching-with-distance-fields.html</link>
	<description>These last two weeks I've been pretty distracted with personal issues, and to get back on track it always helps me to start a small personal project in which I experiment something I've never done before. So here we go: GPU Raymarching using Distance Fields.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This project is completely based on the work of Iñigo Quilez, the great IQ from rgba. He put some slides in his website explaining how to do this kind of rendering, and after reading them I just had to try it for myself.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you want to read more, just go here: &lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://www.iquilezles.org/www/articles/raymarchingdf/raymarchingdf.htm&quot;&gt;http://www.iquilezles.org/www/articles/raymarchingdf/raymarchingdf.htm&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And now, time for some videos:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;

&lt;br /&gt;

 &lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I already have another build with more shapes and weird things, but it'll have to wait until I get distracted again ;-)&lt;/div&gt;</description>
	<pubDate>Fri, 26 Mar 2010 10:13:38 +0000</pubDate>
</item>
<item>
	<title>Soledad Penades: Seen, gone.</title>
	<guid>http://soledadpenades.com/?p=2441</guid>
	<link>http://soledadpenades.com/2010/03/03/seen-gone/</link>
	<description>&lt;p&gt;&lt;/p&gt;
&lt;p&gt;“&lt;a href=&quot;http://5013.es/p/2&quot;&gt;Seen, gone.&lt;/a&gt;” is my first (serious) incursion in Android development. Yeah!&lt;/p&gt;
&lt;p&gt;As the description says:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Take a picture, watch it morph into something different – yet related to its true origin. And before you can blink twice, it’s gone, destroyed by the very same hands that created it.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;To escape from the usual demoscene non-interactive demonstrations, I decided to do something interactive but that still used &lt;em&gt;a bit&lt;/em&gt; of processor power, so that I could see what could the platform do. I had already tried to do some audio stuff, but the results were a bit disastrous. I might come back to that field again; maybe I will be more inspired or I will know how to do things ‘the proper way’ and it will end up being a more satisfying experience.&lt;/p&gt;
&lt;p&gt;For this, I began using &lt;a href=&quot;http://developer.android.com/reference/android/graphics/Canvas.html&quot;&gt;Canvas&lt;/a&gt; and only integer math to speed things up but the results were horrible; using Canvas for this was just too much and there weren’t available cycles for anything else. It was unacceptably jerky. I even showed the app to my &lt;a href=&quot;http://mrdoob.com&quot;&gt;favourite betatester&lt;/a&gt; and he told me that he would uninstall the application &lt;em&gt;immediately&lt;/em&gt;. &lt;/p&gt;
&lt;p&gt;Since I was determined to improve things, I watched the &lt;a href=&quot;http://code.google.com/events/io/2009/sessions/WritingRealTimeGamesAndroid.html&quot;&gt;mighty session&lt;/a&gt; by Chris Pruett at past year’s Google IO and understood why things weren’t quite working the way I expected them to do. After much cursing myself for not having watched the presentation before, I replaced Canvas with OpenGL ES –in which I still miss &lt;em&gt;good old immediate mode&lt;/em&gt;, but hey… it’s way faster!– and float calculations (to my surprise, you can even afford a few float operations!), plus reorganized pretty much everything, and rewrote the rest. Core calculations could probably be optimized with native C code but I didn’t want to limit myself to non-portable code yet. Although… are there any Android devices which are not ARM based? Heh!&lt;/p&gt;
&lt;p&gt;It’s been a very instructive experience; I’ve learnt a lot doing this –the Garbage Collector and I have become almost close friends, so to say– and obviously it will help me to create more Android applications in the future.&lt;/p&gt;
&lt;p&gt;But in the meantime, there’s another demo waiting to be finished!&lt;/p&gt;
&lt;p&gt;And yes, this app is what I wanted to finish &lt;a href=&quot;http://soledadpenades.com/2010/03/01/breakpoint-demolog-days-26-28-busy-with-something-else/&quot;&gt;a couple of days ago&lt;/a&gt;, just in case you missed that post.&lt;/p&gt;</description>
	<pubDate>Wed, 03 Mar 2010 23:29:51 +0000</pubDate>
</item>
<item>
	<title>Rub&amp;eacute;n Penalva's blog: Test: CUDA Volume Raycasting</title>
	<guid>http://www.rpenalva.com/blog/?p=229</guid>
	<link>http://www.rpenalva.com/blog/?p=229</link>
	<description>&lt;p&gt;&lt;a href=&quot;http://www.rpenalva.com/blog/?p=229&quot;&gt;&lt;em&gt;Click here to view the embedded video.&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CUDA based application showing gpu volume raycasting using single pass &lt;a href=&quot;http://www.vis.uni-stuttgart.de/ger/research/pub/pub2005/vg2005-stegmaier.pdf&quot;&gt;Stegmaier et al.&lt;/a&gt; technique.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Downloads&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.rpenalva.com/downloads/tests/cudaRayCasting/cudaraycasting.mov&quot;&gt;Video&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.rpenalva.com/downloads/tests/cudaRayCasting/CUDARayCasting.zip&quot;&gt;Source code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span id=&quot;more-229&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Report&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The cuda raycasting implementation is the same approach as the Stegmaier one but with some minor changes and simplifications:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CUDA kernel&lt;/li&gt;
&lt;li&gt;The volume is a cube: width, height and depth are all the same.&lt;/li&gt;
&lt;li&gt;Proxy geometry (the six quads or the cube) is normalized and translated so the center its the same as the center of the scene.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The intersection code is really unoptimized. It’s just a straightforward implementation of the intersection ray-aabox function shown in &lt;a href=&quot;http://realtimecollisiondetection.net/books/rtcd/&quot;&gt;“Real time collision detection” by Christer Ericson&lt;/a&gt;. I would suggest you to see the implementation of this function within the nvidia sdk volume render sample .&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Controls&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Left click plus mouse movement to rotate the camera around the volume.&lt;/li&gt;
&lt;li&gt;Right click to show the context menu.&lt;/li&gt;
&lt;li&gt;Middle click plus vertical movement to increase/decrease the density window width.&lt;/li&gt;
&lt;li&gt;Middle click plus horizontal movement to move right/left the density window.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Technology&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;C++&lt;/li&gt;
&lt;li&gt;Opengl 2.1&lt;/li&gt;
&lt;li&gt;CUDA&lt;/li&gt;
&lt;li&gt;Glut for Win32&lt;/li&gt;
&lt;li&gt;Glew&lt;/li&gt;
&lt;li&gt;Microsoft Visual Studio 2008 Professional Edition&lt;/li&gt;
&lt;li&gt;Subversion&lt;/li&gt;
&lt;li&gt;Redmine&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Develop/Build/Test Machine Specs &lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz&lt;/li&gt;
&lt;li&gt;3072 Mb RAM&lt;/li&gt;
&lt;li&gt; Nvidia GeForce GTX 260&lt;/li&gt;
&lt;li&gt;Nvidia Driver Version: 196.21 WHQL&lt;/li&gt;
&lt;li&gt;Microsoft Windows 7 Professional x64&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Resources&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[SSKE05] S. Stegmaier, M. Strengert, T. Klein, and T. Ertl.&lt;br /&gt;
&lt;a href=&quot;http://www.vis.uni-stuttgart.de/ger/research/pub/pub2005/vg2005-stegmaier.pdf&quot;&gt; A Simple and Flexible Volume Rendering Framework for Graphics-Hardware-based Raycasting&lt;/a&gt;,&lt;br /&gt;
Proceedings of Volume Graphics 2005, Stony Brook, New York, USA, pp.187-195, 2005&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.vis.uni-stuttgart.de/ger/research/fields/current/spvolren/&quot;&gt;A Simple and Flexible Volume Rendering Framework for Graphics-Hardware-based Raycasting&lt;/a&gt; website. Includes paper, dataset and source code.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www9.informatik.uni-erlangen.de/External/vollib/&quot;&gt;The Volume Library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://developer.nvidia.com/object/gpucomputing.html&quot;&gt;NVIDIA GPU Computing Developer Home Page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://glew.sourceforge.net/&quot;&gt;GLEW: The OpenGL Extension Wrangler Library&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
	<pubDate>Wed, 03 Mar 2010 00:02:53 +0000</pubDate>
</item>
<item>
	<title>Soledad Penades: Breakpoint demolog, day 17: building for windows (from linux)</title>
	<guid>http://soledadpenades.com/?p=2392</guid>
	<link>http://soledadpenades.com/2010/02/19/breakpoint-demolog-day-17-building-for-windows-from-linux/</link>
	<description>&lt;p&gt;&lt;img src=&quot;http://soledadpenades.com/files/demoscene/bp2010/20100218.png&quot; alt=&quot;Windows and Linux executables, rotating a triangle and generating a sine wave audio stream&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Today I decided to do something different. And I thought: &lt;q&gt;Okay, I’ll try and sort out this compiling for windows issue, so that I can focus on the rest of more important things without having to worry about it any more.&lt;/q&gt;&lt;/p&gt;
&lt;p&gt;And guess what…? I think I managed to do it :-)&lt;/p&gt;
&lt;p&gt;Roughly, these are the steps I followed, just in case someone else wants to compile for windows with opengl and sdl support, using [ubuntu] linux:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;install mingw (I did it with Synaptic Package Manager so that I didn’t have to go through the ./configure and ./make hell)&lt;/li&gt;
&lt;li&gt;get the dev libraries from sdl for windows/mingw –&lt;a href=&quot;http://www.libsdl.org/release/SDL-devel-1.2.14-mingw32.tar.gz&quot;&gt;this file&lt;/a&gt;– or check their &lt;a href=&quot;http://www.libsdl.org/download-1.2.php&quot;&gt;downloads&lt;/a&gt; page&lt;/li&gt;
&lt;li&gt;uncompress the file and locate the &lt;strong&gt;bin&lt;/strong&gt;, &lt;strong&gt;include&lt;/strong&gt; and &lt;strong&gt;lib&lt;/strong&gt; folders within, and…
&lt;ul&gt;
&lt;li&gt;copy &lt;strong&gt;bin/SDL.dll&lt;/strong&gt; to the folder where your win32 .exe will go — so that the exe can pick and load the dll when executing&lt;/li&gt;
&lt;li&gt;copy the &lt;strong&gt;include&lt;/strong&gt; and &lt;strong&gt;lib&lt;/strong&gt; folders to a folder in your project’s src folder — or anywhere you’ve got access to! For example: project/src/libs/sdl/&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;now in your main.cpp, include SDL’s header files like this:
&lt;div class=&quot;syhi_block&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #339900;&quot;&gt;#include &amp;lt;SDL/SDL.h&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #339900;&quot;&gt;#include &amp;lt;SDL/SDL_opengl.h&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;And the makefile could be something like this too:
&lt;div class=&quot;syhi_block&quot;&gt;&lt;code&gt;WINDOWS_SDL = ./libs/sdl/windows&lt;br /&gt;
&lt;br /&gt;
windows:&lt;br /&gt;
        i586-mingw32msvc-g++ -I$(WINDOWS_SDL)/include -L$(WINDOWS_SDL) \&lt;br /&gt;
main.cpp $(WINDOWS_SDL)/libSDL.dll.a -o ../test.exe\&lt;br /&gt;
 -lmingw32 -lSDLmain -lSDL -mwindows -lopengl32 -Wl,-R.&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(ugly hard line returns added by me so that you can see all parameters in one go).&lt;/p&gt;
&lt;p&gt;This assumes you are invoking make from the src folder. The output will go to the parent folder. But well, the most important things that need to be highlighted are the bunch of switches you need to include in order to get the program to link: &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;-I$(WINDOWS_SDL)/include&lt;/strong&gt; — this tells the compiler where to look for additional header files. This way it can find &amp;lt;SDL/SDL.h&amp;gt; and you do not need to modify the file or add #define’s when building for linux.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; -L$(WINDOWS_SDL)&lt;/strong&gt; — pretty much the same but tells the compiler to look for static libraries in the WINDOWS_SDL folder too&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;$(WINDOWS_SDL)/libSDL.dll.a&lt;/strong&gt; — links the library into our binary!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;-lmingw32 -lSDLmain -lSDL -mwindows -lopengl32 -Wl,-R.&lt;/strong&gt; — these are magic – remove any of them and the linker will complain about missing symbols ;)&lt;/p&gt;
&lt;p&gt;I still have to test this in a real windows machine; so far I have just tried with Wine. The output is a little jerky and a bit slower than the native (64 bit) counterpart, but I guess this will do much better than compiling in Virtual Box and testing with Wine :D&lt;/p&gt;
&lt;p&gt;I’ll try to upload a test .exe when I test it on a real windows box myself, so that you can test it and see if it works in your computer (if you want, of course!). It’s ages since I compiled anything for win, and I truly wonder whether it will work with Vista/7… my &lt;a href=&quot;http://soledadpenades.com/projects/demoscene/vslpx-by-xplsv/&quot;&gt;last demo&lt;/a&gt; for Windows was done in 2005 and XP was in full glory back then :P&lt;/p&gt;</description>
	<pubDate>Fri, 19 Feb 2010 00:38:46 +0000</pubDate>
</item>
<item>
	<title>Rub&amp;eacute;n Penalva's blog: Test: GPU Volume Raycasting</title>
	<guid>http://www.rpenalva.com/blog/?p=213</guid>
	<link>http://www.rpenalva.com/blog/?p=213</link>
	<description>&lt;p&gt;&lt;a href=&quot;http://www.rpenalva.com/blog/?p=213&quot;&gt;&lt;em&gt;Click here to view the embedded video.&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Opengl based application showing gpu volume raycasting using single pass &lt;a href=&quot;http://www.vis.uni-stuttgart.de/ger/research/pub/pub2005/vg2005-stegmaier.pdf&quot;&gt;Stegmaier et al.&lt;/a&gt; technique.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Downloads&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://rpenalva.com/downloads/tests/gpuraycasting/gpuraycasting.mov&quot;&gt;Video&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://rpenalva.com/downloads/tests/gpuraycasting/GpuRayCasting.zip&quot;&gt;Source code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span id=&quot;more-213&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Report&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The gpu raycasting implementation is the same approach as the Stegmaier one but with some minor changes and simplifications:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GLSL shaders&lt;/li&gt;
&lt;li&gt;The volume is a cube: width, height and depth are all the same.&lt;/li&gt;
&lt;li&gt;Proxy geometry (the six quads or the cube) is normalized and translated so the center its the same as the center of the scene.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Controls&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Left click plus mouse movement to rotate the camera around the volume.&lt;/li&gt;
&lt;li&gt;Right click to show the context menu.&lt;/li&gt;
&lt;li&gt;Middle click plus vertical movement to increase/decrease the density window width.&lt;/li&gt;
&lt;li&gt;Middle click plus horizontal movement to move right/left the density window.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Technology&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;C++&lt;/li&gt;
&lt;li&gt;Opengl 2.1&lt;/li&gt;
&lt;li&gt;GLSL&lt;/li&gt;
&lt;li&gt;Glut for Win32&lt;/li&gt;
&lt;li&gt;Glew&lt;/li&gt;
&lt;li&gt;Microsoft Visual Studio 2008 Professional Edition&lt;/li&gt;
&lt;li&gt;Subversion&lt;/li&gt;
&lt;li&gt;Redmine&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Develop/Build/Test Machine Specs &lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz&lt;/li&gt;
&lt;li&gt;3072 Mb RAM&lt;/li&gt;
&lt;li&gt; Nvidia GeForce GTX 260&lt;/li&gt;
&lt;li&gt;Nvidia Driver Version: 196.21 WHQL&lt;/li&gt;
&lt;li&gt;Microsoft Windows 7 Professional x64&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Resources&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[SSKE05] S. Stegmaier, M. Strengert, T. Klein, and T. Ertl.&lt;br /&gt;
&lt;a href=&quot;http://www.vis.uni-stuttgart.de/ger/research/pub/pub2005/vg2005-stegmaier.pdf&quot;&gt; A Simple and Flexible Volume Rendering Framework for Graphics-Hardware-based Raycasting&lt;/a&gt;,&lt;br /&gt;
Proceedings of Volume Graphics 2005, Stony Brook, New York, USA, pp.187-195, 2005&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.vis.uni-stuttgart.de/ger/research/fields/current/spvolren/&quot;&gt;A Simple and Flexible Volume Rendering Framework for Graphics-Hardware-based Raycasting&lt;/a&gt; website. Includes paper, dataset and source code.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www9.informatik.uni-erlangen.de/External/vollib/&quot;&gt;The Volume Library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://glew.sourceforge.net/&quot;&gt;GLEW: The OpenGL Extension Wrangler Library&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
	<pubDate>Tue, 09 Feb 2010 21:45:14 +0000</pubDate>
</item>
<item>
	<title>Soledad Penades: Breakpoint demolog, days 1-7</title>
	<guid>http://soledadpenades.com/?p=2353</guid>
	<link>http://soledadpenades.com/2010/02/09/breakpoint-demolog-days-1-7/</link>
	<description>&lt;p&gt;So the quest is set, the aim is clear: create &lt;em&gt;something&lt;/em&gt; for Breakpoint 2010. There won’t be another opportunity; not at least under the Breakpoint umbrella.&lt;/p&gt;
&lt;p&gt;The organizers have expressed publicly they don’t wish to organize yet another edition of nowadays biggest demoscene event, so it’s now or never! (At least until a new event &lt;em&gt;this good&lt;/em&gt; takes off).&lt;/p&gt;
&lt;p&gt;I already have had stuff of mine shown in their big screen. But that was before the true Big Screen, with capital letters. The 70 square meters one. &lt;q&gt;I must release something&lt;/q&gt;, I said to myself.&lt;/p&gt;
&lt;p&gt;Of course, this means that in a way, I’m going to break my own self-imposed rule (&lt;q&gt;I will release things when they are done&lt;/q&gt;), but I’m working in a slightly pressurised scenario in order to finish the demo before setting off for the airport.&lt;/p&gt;
&lt;p&gt;I have decided to keep a somewhat sporadic short &lt;em&gt;demolog&lt;/em&gt; to keep people informed of what I’m doing, &lt;a href=&quot;http://ricardocabello.com/blog/post/517&quot;&gt;trace’s style&lt;/a&gt;. Hopefully it will help/force me to do things, daily, so that I don’t slack or procrastinate, and maybe &lt;em&gt;you&lt;/em&gt; may help me too when/if I get stuck somewhere ;)&lt;/p&gt;
&lt;p&gt;I’ll keep things short –this is probably going to be the longest post in the series– so that writing here doesn’t starve me of time to code.&lt;/p&gt;
&lt;p&gt;This is the &lt;strong&gt;current status&lt;/strong&gt; of the project:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the theme is approximately set, but I won’t disclose it here&lt;/li&gt;
&lt;li&gt;I’m working on converting my on-its-own rudimentary OO-C synth (&lt;a href=&quot;http://soledadpenades.com/projects/demoscene/to_the_beat/&quot;&gt;sorollet&lt;/a&gt;) to a bit less rudimentary C++ synth that can be embedded and interfaced, VSTi style, so that I can sequence everything from Renoise and play with parameters and settings in real time…&lt;/li&gt;
&lt;li&gt;… and convert Renoise’s Song.xml (inside the .xrns file) to my own data file — kind of means recreating a simple tracker which follows Renoise conventions (Lines Per Beat for example). I have taken a look at the Song.xml file, extracting and using the relevant data seems easy, specially since Sorollet was already using a tracker style format.&lt;/li&gt;
&lt;li&gt;So far I have managed to compile a VST plug-in in Linux. I had to solve several issues like having to compile for 32 bit while using a 64 bit OS, because Renoise is 32 bit too, gdb not willing to cooperate most of the times, the VST SDK docs being scarce and incomplete and not ready for Linux and etc, but I’m slowly progressing. Now I have a basic synth that can play sines or triangles, and transpose octaves. Awesomeness!&lt;/li&gt;
&lt;li&gt;This means I’m not using an mp3 this time. Could this fit into an intro? Maybe, but I don’t want to sacrifice code readability in order to make it fit into an intro… I’ll be more than content with making a demo!&lt;/li&gt;
&lt;li&gt;I need to find a way of producing a working Windows executable. Sadly, party organisers won’t allow a non-Windows .exe to enter the demo compo. &lt;em&gt;Big BOOOOOOH for them&lt;/em&gt;. I have thought of different solutions, the easier is to install mingw in a &lt;em&gt;VirtualBoxed&lt;/em&gt; Windows I’ve got, recompile my sources there and run the exe in my main machine, using wine. But I still have to try that, and I hope it works in Windows Vista :-S&lt;/li&gt;
&lt;li&gt;I still haven’t thought about the visual part, I fear I’ll have to script it as in &lt;em&gt;ye olde times&lt;/em&gt; –no time for writing a visual timeline manager–, but I will probably use Lua to alleviate the pain.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Complimentary screenshot:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://soledadpenades.com/imgs/bp2010_01.jpg&quot; alt=&quot;Sorollet VST&quot; /&gt;&lt;/p&gt;
&lt;p&gt;More later.&lt;/p&gt;</description>
	<pubDate>Tue, 09 Feb 2010 12:11:02 +0000</pubDate>
</item>
<item>
	<title>Jes&amp;uacute;s de santos: Code Bloat Hunting</title>
	<guid>http://entland.homelinux.com/blog/?p=466</guid>
	<link>http://feedproxy.google.com/~r/Entblog/~3/5LRDM5P-4-k/</link>
	<description>I have dedicated the last few days of work to face a problem that is getting bigger and bigger. Although we have a quite modular codebase, use interfaces whenever possible to hide implementation...&lt;img src=&quot;http://feeds.feedburner.com/~r/Entblog/~4/5LRDM5P-4-k&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Sat, 06 Feb 2010 00:39:47 +0000</pubDate>
</item>
<item>
	<title>El laboratorio del Dr. Txap: Tuber’s Two Step de Chris Wedge</title>
	<guid>http://blog.txapulin.net/?p=2278</guid>
	<link>http://blog.txapulin.net/2010/02/tubers-two-step-de-chris-wedge/</link>
	<description>&lt;p&gt;A pesar de haber impartido un par de veces una ponencia sobre la historia de los gráficos por ordenador en el cine, uno debe ser humilde y reconocer que es imposible saberlo todo sobre un tema; siempre se queda algo en el tintero, y cuando menos te lo esperas aparece uno de los blogs amigos a enseñarte algo nuevo.&lt;/p&gt;
&lt;p&gt;En este caso, &lt;a href=&quot;http://moonfleet.es/&quot;&gt;nuestro contrabandista de Moonfleet&lt;/a&gt; preferido &lt;a href=&quot;http://moonfleet.es/2010/02/01/tuber’s-two-step-un-corto-de-chris-wedge-de-1985/&quot;&gt;nos muestra&lt;/a&gt; el primer corto animado de &lt;a href=&quot;http://www.imdb.com/name/nm0917188/&quot;&gt;&lt;strong&gt;Chris Wedge&lt;/strong&gt;&lt;/a&gt;. Se llama &lt;em&gt;Tuber’s Two Step&lt;/em&gt; y es de 1985. &lt;/p&gt;
&lt;p&gt;Para situarnos en contexto, por aquellos años Pixar se estaba formando como tal y, aunque bajo el ala de George Lucas ya habían sacado &lt;a href=&quot;http://www.pixar.com/shorts/awb/index.html&quot;&gt;&lt;em&gt;André and Wally B.&lt;/em&gt; (1984)&lt;/a&gt;, aún faltaba un año para que sacaran su primer corto como empresa independiente: &lt;a href=&quot;http://www.pixar.com/shorts/ljr/index.html&quot;&gt;&lt;em&gt;Luxo Jr.&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Chris Wedge&lt;/strong&gt; se empezó a dar a conocer en el mundo de los gráficos muchos años más tarde, cuando ganó el Oscar al mejor corto animado por &lt;a href=&quot;http://bunny.blueskystudios.com/bunny_home.html&quot;&gt;&lt;em&gt;Bunny&lt;/em&gt;&lt;/a&gt; en 1998. Este corto sí lo incluí en la historia de la animación por ordenador por sus avances en el renderizado del pelo de los animales, algo que Pixar no había conseguido ni en &lt;em&gt;Toy Story&lt;/em&gt; ni en &lt;em&gt;Bichos&lt;/em&gt;. Más tarde Wedge aprovecharía esta técnica en los animales que creó para su primer largo hecho con su propia compañía: &lt;a href=&quot;http://www.imdb.com/title/tt0268380/&quot;&gt;&lt;em&gt;Ice Age&lt;/em&gt; (2002)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Les dejo con el corto, que no aporta gran cosa más que su valor histórico:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;</description>
	<pubDate>Thu, 04 Feb 2010 14:25:21 +0000</pubDate>
</item>
<item>
	<title>El laboratorio del Dr. Txap: The Third and the Seventh</title>
	<guid>http://blog.txapulin.net/?p=2259</guid>
	<link>http://blog.txapulin.net/2010/01/the-third-and-the-seventh/</link>
	<description>&lt;p&gt;&lt;strong&gt;Alex Roman&lt;/strong&gt; es un artista que se ha tomado un par de años sabáticos y en este tiempo ha hecho un corto alucinante. Véanlo primero, y luego comento algunas cosas.&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://vimeo.com/7809605&quot;&gt;The Third &amp;amp; The Seventh&lt;/a&gt; from &lt;a href=&quot;http://vimeo.com/user1337612&quot;&gt;Alex Roman&lt;/a&gt; on &lt;a href=&quot;http://vimeo.com&quot;&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Hasta el minuto 6 ó 7, cuando empiezan a aparecer las esferas de agua y los pétalos al viento, estuve convencido que estaba filmado (&lt;em&gt;real-life footage&lt;/em&gt; le llaman en &lt;em&gt;english&lt;/em&gt;). Incluso después pensé que estos trucos estaban hechos con una excelente composición. Eso me pasa por mirar el video antes de leer sobre él (lo cual no es malo, por cierto). Fue luego que leí &lt;a href=&quot;http://www.entremaqueros.com/bitacoras/dimension/?p=8386&quot;&gt;la entrevista que le hacen al artista en dimensión 2.5&lt;/a&gt;.  Lo más impresionante es que ¡es todo &lt;acronym title=&quot;computer graphics&quot;&gt;cg&lt;/acronym&gt;! Lo ha hecho con &lt;strong&gt;3D Studio Max&lt;/strong&gt; y &lt;strong&gt;VRay&lt;/strong&gt; (y otros programas para la postproducción).&lt;/p&gt;
&lt;p&gt;Dice en la entrevista que todavía está en paro. No creo que sea por mucho tiempo, porque ya he visto este video correr por varios foros en inglés. &lt;/p&gt;</description>
	<pubDate>Mon, 11 Jan 2010 14:43:08 +0000</pubDate>
</item>
<item>
	<title>El hombre alto: On C++ performance: The Evil Mr. Branch</title>
	<guid>tag:hombrealto.com,2009:/blog//1.18</guid>
	<link>http://hombrealto.com/blog/2009/12/on-performance-function-calls-or-branching.html</link>
	<description>Here's a simple problem . For some reason, you've got to select between two types or values: smaller (or equal) than 50, and bigger than 50. And you need to do that &lt;b&gt;fast&lt;/b&gt; using one core (no multithreading). ¿How do you do it?&lt;br /&gt;&lt;br /&gt;

For our example, we'll have an array called &lt;em&gt;data&lt;/em&gt; where all values are stored, and an array called &lt;em&gt;results&lt;/em&gt;, where an integer value is stored, indicating if the input was bigger or smaller than 50.&lt;br /&gt;&lt;br /&gt;

So, this is the straighfoward way to do it.

&lt;pre class=&quot;brush: cpp&quot;&gt;for(int i=0;i&amp;lt;NUM_DATA;++i)
{
    if(data[i] &amp;lt;= 50)
        results[i] = SMALLERTHAN_50;
    else
        results[i] = BIGGERTHAN_50;
}
&lt;/pre&gt;

And most of us (and myself 2 days ago) would say: &quot;you won't get much faster than that!&quot;. Well, in fact you can. How? &lt;br /&gt;&lt;br /&gt;

By not branching!&lt;br /&gt;&lt;br /&gt;

In school they show you that branching can make the processor flush the data it has in the pipeline and start over. They also tell you that today's general-purpose processors do not generally take a big hit when branching, but that hit still exists (I'm talking x86 PCs, here. Consoles DO have serious problems with branching). &lt;br /&gt;&lt;br /&gt;

So, how do you do this without branching? With a small trick ;-)&lt;br /&gt;&lt;br /&gt;
&lt;code&gt;
result = x + (y-x) &amp;amp; condition
&lt;/code&gt;
&lt;br /&gt;&lt;br /&gt;
If condition has all bits to 0, the second half of the computation will be 0, so result ends up being x. On the other side, if condition has all bits to 1, the x cancels out, and we get result=y.&lt;br /&gt;&lt;br /&gt;

So we get a function like this (code shamelessly &lt;a href=&quot;http://assemblyrequired.crashworks.org/2009/01/04/fcmp-conditional-moves-for-branchless-math/&quot;&gt;taken from here&lt;/a&gt;):
&lt;pre class=&quot;brush: cpp&quot;&gt;int isel( int a, int x, int y )
{
    int mask = a &amp;gt;&amp;gt; 31; // arithmetic shift right, splat out the sign bit
    return x + ((y - x) &amp;amp; mask); // mask is 0xFFFFFFFF if (a &amp;lt; 0) and 0x00 otherwise.
}
&lt;/pre&gt;

If &lt;em&gt;a&lt;/em&gt; is positive, it returns &lt;em&gt;x&lt;/em&gt;, if negative, returns &lt;em&gt;y&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;

So using this function, we can get our array sorted out just like this:
&lt;pre class=&quot;brush: cpp&quot;&gt;for(int i=0;i&amp;lt;NUM_DATA;++i)
    results[i] = isel(50 - data[i], SMALLERTHAN_50, BIGGERTHAN_50); 
&lt;/pre&gt;

It works just as well... the only question is performance. What will run faster?
&lt;br /&gt;&lt;br /&gt;
Well, in my machine (a Core 2 Duo at 2.4GHz), for NUM_DATA=10,000, and 200,000 iterations of those loops, I get:&lt;br /&gt;&lt;br /&gt;

- Using GCC with no optimizations:
&lt;pre&gt;Elapsed time BRANCHING:       19.156000000  sec
Elapsed time NOT BRANCHING:   17.566000000  sec
&lt;/pre&gt;
- Using GCC with -O3:
&lt;pre&gt;Elapsed time BRANCHING:       2.605000000  sec
Elapsed time NOT BRANCHING:   1.981000000  sec
&lt;/pre&gt;

The difference is not that big without optimizations, but with them, it's clear as day: not branching gets you further. More than a 20%, in this case!!
&lt;br /&gt;&lt;br /&gt;
And this goes to show you what some people might already have told you: compilers inline the hell out of your code if set to high optimization values, even if you don't explicitly ask them to. This code is &lt;em&gt;faster&lt;/em&gt; using a function call inside the main loop than without it!&lt;br /&gt;&lt;br /&gt;

By the way, GCC is NOT generating MMX, SSE, or any instructions like that. This is the disassembly for the main loop in the branchless version (the text on the right is my interpretation for the asm):
&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;.text:00401170 loc_401170:
.text:00401170             mov     eax, ecx                  ## eax=50
.text:00401172             sub     eax, [ebx+edx*4]          ## eax-=data[i]
.text:00401175             shr     eax, 1Fh                  ## eax&amp;gt;&amp;gt;=31
.text:00401178             mov     [edi+edx*4], eax          ## result[i] = eax
.text:0040117B             inc     edx                       ## ++i
.text:0040117C             cmp     edx, 270Fh                ## if(i&amp;lt;NUM_DATA)
.text:00401182             jle     short loc_401170          ##    repeat loop
&lt;/pre&gt;&lt;br /&gt;
The process is heavily optimized by GCC, but it's all there in normal, honest-to-fsm, everyday-life instructions.&lt;br /&gt;&lt;br /&gt;

I do still have some doubts about this, however, as the GCC optimization for the branching loop doesn't use a &lt;code&gt;j(n)le&lt;/code&gt; or &lt;code&gt;jz&lt;/code&gt; instruction, but &lt;code&gt;setnle&lt;/code&gt;. And I can't find out if this instruction does in fact flush the pipeline or not. Anyway, it still results in a faster processing when using the &lt;code&gt;isel&lt;/code&gt; version.
&lt;br /&gt;&lt;br /&gt;
For comparison, here's the optimized branching loop:
&lt;br /&gt;&lt;pre&gt;.text:004010F0 loc_4010F0:
.text:004010F0             xor     eax, eax
.text:004010F2             cmp     dword ptr [ebx+edx*4], 32h
.text:004010F6             setnle  al
.text:004010F9             mov     [esi+edx*4], eax
.text:004010FC             inc     edx
.text:004010FD             cmp     edx, 270Fh
.text:00401103             jle     short loc_4010F0
&lt;/pre&gt;


And, well, here's the whole testing code if anyone is curious about it:
&lt;pre class=&quot;brush: cpp&quot;&gt;#include &amp;lt;cstdlib&amp;gt;
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;ctime&amp;gt;

enum{ SMALLERTHAN_50, BIGGERTHAN_50};

int isel( int a, int x, int y )
{
    int mask = a &amp;gt;&amp;gt; 31; // arithmetic shift right, splat out the sign bit
    return x + ((y - x) &amp;amp; mask); // mask is 0xFFFFFFFF if (a &amp;lt; 0) and 0x00 otherwise.
}

int main ()
{
    const int NUM_DATA = 10000;
    const size_t NUM_ITERS = 200000;

    clock_t startTime, endTime;

    int * data     = new int[NUM_DATA];
    int * results  = new int[NUM_DATA];
    int * results2 = new int[NUM_DATA];
    
    // Initialize test data
    for(int i=0;i&amp;lt;NUM_DATA;++i)
        data[i]= rand()%100; 

    startTime = clock();
    // ------------------------------ 
    // Branch test
    for (int j=0;j&amp;lt;NUM_ITERS;++j)
        for(int i=0;i&amp;lt;NUM_DATA;++i)
        {
            if(data[i] &amp;lt;= 50)
                results[i] = SMALLERTHAN_50;
            else
                results[i] = BIGGERTHAN_50;
        }
    // ------------------------------ 
    endTime = clock();

    printf (&quot;\tElapsed time BRANCHING:       %.9f  sec\n&quot;, 
        (float)(endTime-startTime) / CLOCKS_PER_SEC);
    
    startTime = clock();
    // ------------------------------ 
    // Branchless test
    for (int j=0;j&amp;lt;NUM_ITERS;++j)
        for(int i=0;i&amp;lt;NUM_DATA;++i)
            results2[i] = isel(
                50 - data[i], 
                SMALLERTHAN_50, 
                BIGGERTHAN_50);                                                                                   
    // ------------------------------ 
    endTime = clock();
 
    printf (&quot;\tElapsed time NOT BRANCHING:   %.9f  sec\n&quot;,
        (float)(endTime-startTime) / CLOCKS_PER_SEC);

    // Check we didn't mess things up 
    for(int i=0;i&amp;lt;NUM_DATA;++i)
        if( results[i] != results2[i])
            printf (&quot;ERROR in elem %i=%i, first value: %i, second value: %i\n&quot;,
                i, data[i], results[i], results2[i]);
}                                          
&lt;/pre&gt;</description>
	<pubDate>Sat, 26 Dec 2009 08:54:03 +0000</pubDate>
</item>
<item>
	<title>El hombre alto: C++: Could you please code cleanly? Pretty please?</title>
	<guid>tag:hombrealto.com,2009:/blog//1.17</guid>
	<link>http://hombrealto.com/blog/2009/12/how-not-to-write-c.html</link>
	<description>One of my little things when coding is that I always feel ashamed when my code is not clean. This means I try very hard to make my code simple and easy to understand. I don't always succeed (not even close), but I try.
&lt;br /&gt;&lt;br /&gt;
I wasn't always like that, mind you. As a teenager, my code was just a horrible mess of spaghetti code.  But &lt;a href=&quot;http://pablo.ordunya.com&quot;&gt;Pablo Orduña&lt;/a&gt; showed me long ago the value of easily understandable code, and since then I always try my best to code in a clear and non-hackish way.
&lt;br /&gt;&lt;br /&gt;
Anyway, these days I've found myself working with code from other people. And, at that, people that didn't try to create readable code. I'm sure they did know how to do it. They just weren't in the mood. You can just read it in the code: &quot;if it works, ship it!&quot;
&lt;br /&gt;&lt;br /&gt;
As a small example (there are much much worse things than this), here's a slightly modified version of a function I found the other day:

&lt;pre class=&quot;brush: cpp&quot;&gt;bool RetrieveProperty(object_t * object, string propName, VARIANT* pPropertyValue)
{
	PropertyReader * pPropertyReader = NULL;
	object-&amp;gt;FromInterface(IID_IPropertyReader, (void**)&amp;amp;pPropertyReader);
	if (pPropertyReader)
	{
		Properties * pProperties = NULL;
		pPropertyReader-&amp;gt;get_Properties(&amp;amp;pProperties);
		if (pProperties)
		{
			long propCount = 0;
			if (pProperties-&amp;gt;get_Count(&amp;amp;propCount) == OK)
			{
				for (long i = 0; i &amp;lt; propCount; i++)
				{
					Property * pProperty = NULL;
					pProperties-&amp;gt;get_Item(i, &amp;amp;pProperty);
					if (pProperty)
					{
						PropertyDictionary * pPropertyDictionary = NULL;
						pProperty-&amp;gt;FromInterface(IID_PropertyDictionary, (void**)&amp;amp;pPropertyDictionary);
						if (pPropertyDictionary)
						{
							string bDictionaryName;
							pPropertyDictionary-&amp;gt;get_Name(&amp;amp;bDictionaryName);
							
							if (!strcmp((char*)bDictionaryName.c_str(), &quot;MY_DICTIONARY&quot;))
							{
								HRESULT hr;
								if ((hr = pPropertyDictionary-&amp;gt;get_Item(PropertyName, pPropertyValue)) == OK)
									return true;					
							}
						}
					}
				}
			}
		}
	}

	return false;
}
&lt;/pre&gt;

Now, did anyone notice something odd? The nested &lt;em&gt;if&lt;/em&gt;s and loops? They make it unnecessarily hard to follow the program flow and they don't buy us anything in return!
&lt;br /&gt;&lt;br /&gt;
In fact,the whole structure of the function allows us to remove most of the 9 (yes, 9) indentation levels in that code. We just have to reverse the &lt;em&gt;ifs&lt;/em&gt; and return early. Like this:

&lt;pre class=&quot;brush: cpp&quot;&gt;bool RetrieveProperty(object_t * object, string propName, VARIANT* pPropertyValue)
{
	PropertyReader * pPropertyReader = NULL;
	object-&amp;gt;FromInterface( IID_IPropertyReader, (void**)&amp;amp;pPropertyReader);
	if (!pPropertyReader)
		return false;

	Properties * pProperties = NULL;
	pPropertyReader-&amp;gt;get_Properties(&amp;amp;pProperties);
	if (!pProperties)
		return false;

	long propCount = 0;
	if (pProperties-&amp;gt;get_Count(&amp;amp;propCount) != OK)
		return false;
		
	for (long i = 0; i &amp;lt; propCount; i++)
	{
		Property * pProperty = NULL;
		pProperties-&amp;gt;get_Item(i, &amp;amp;pProperty);
		if (!pProperty)
			continue;
		
		PropertyDictionary * pPropertyDictionary = NULL;
		pProperty-&amp;gt;FromInterface(IID_PropertyDictionary, (void**)&amp;amp;pPropertyDictionary);
		if (!pPropertyDictionary)
			continue;
	
		string bDictionaryName;
		pPropertyDictionary-&amp;gt;get_Name(&amp;amp;bDictionaryName);
	
		if (strcmp((char*)bDictionaryName.c_str(), &quot;MY_DICTIONARY&quot;))
			continue;

 		HRESULT hr; // why do we need this, I say?
		if (hr = pPropertyDictionary-&amp;gt;get_Item(PropertyName, pPropertyValue) == OK)
			return true;					
	}

	return false;
}
&lt;/pre&gt;
Max indentation: 3 levels.
&lt;br /&gt;&lt;br /&gt;
It takes less than a minute, it's safe to do, the meaning of the program is exactly the same... and it's much cleaner and easy to understand! And as a bonus, it isn't even longer than the previous version!!
&lt;br /&gt;&lt;br /&gt;
There are even clever people that have said this before me &lt;a href=&quot;http://www.refactoring.com/catalog/replaceNestedConditionalWithGuardClauses.html&quot;&gt;several&lt;/a&gt; &lt;a href=&quot;http://www.codinghorror.com/blog/archives/000486.html&quot;&gt;times!&lt;/a&gt;
&lt;br /&gt;&lt;br /&gt;
So please, do try. I know it seems easier and faster not to, but it's only in the short run. Some day (when you have to go back to try to understand your own code) you'll regret it.
&lt;br /&gt;&lt;br /&gt;
Still unconvinced? Now try imagining this with &lt;a href=&quot;http://thedailywtf.com/Articles/Coding-Like-the-Tour-de-France.aspx&quot;&gt;700 loc functions&lt;/a&gt; (and yes, I have a few like that one here...)</description>
	<pubDate>Mon, 21 Dec 2009 13:50:45 +0000</pubDate>
</item>
<item>
	<title>Orangemachine: PFM – Burning and Crumpling Paper – Difusión del Calor</title>
	<guid>http://orangemachine.wordpress.com/?p=206</guid>
	<link>http://orangemachine.wordpress.com/2009/12/19/pfm-burning-and-crumpling-paper-difusion-del-calor/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;Hola planet!&lt;/p&gt;
&lt;div style=&quot;width: 265px;&quot; id=&quot;attachment_208&quot; class=&quot;wp-caption alignleft&quot;&gt;&lt;a href=&quot;http://orangemachine.files.wordpress.com/2009/12/111209-heatsolver2d-04.png&quot;&gt;&lt;img src=&quot;http://orangemachine.files.wordpress.com/2009/12/111209-heatsolver2d-04.png?w=255&amp;amp;h=131&quot; title=&quot;111209-HeatSolver2D-04&quot; height=&quot;131&quot; width=&quot;255&quot; alt=&quot;HeatSolver2D Demo&quot; class=&quot;size-medium wp-image-208&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;HeatSolver2D Demo&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;Después de un periodo de vacaciones y trabajos varios he retomado el proyecto.&lt;/p&gt;
&lt;p&gt;He terminado unas tareas que tenía pendientes referentes a la difusión del calor en 2D.&lt;/p&gt;
&lt;p&gt;La representación del papel es un sistema masa-muelle. Este proceso irá &lt;em&gt;quemando&lt;/em&gt; los nodos y los muelles conectados se irán contrayendo para simular las arrugas del papel.&lt;br /&gt;
&lt;span id=&quot;more-206&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;De momento solo tengo el proceso de difusión y una deformación simple, reduciendo los muelles un &lt;em&gt;epsilon&lt;/em&gt;. Aunque está lejos del resultado final, tiene pinta de que vamos por el buen camino &lt;img src=&quot;http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt;  y motiva a seguir trabajando y compartiendo ideas.&lt;/p&gt;
&lt;p&gt;También he creado una sección para ir colgando &lt;a href=&quot;http://orangemachine.wordpress.com/proyectos/burning-papers/&quot; title=&quot;Burning and Crumpling Papers&quot;&gt;material relacionado con el proyecto&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Seguimos en contacto!&lt;/p&gt;
  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/orangemachine.wordpress.com/206/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/orangemachine.wordpress.com/206/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/orangemachine.wordpress.com/206/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/orangemachine.wordpress.com/206/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/orangemachine.wordpress.com/206/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/orangemachine.wordpress.com/206/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/orangemachine.wordpress.com/206/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/orangemachine.wordpress.com/206/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/orangemachine.wordpress.com/206/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/orangemachine.wordpress.com/206/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=orangemachine.wordpress.com&amp;amp;blog=3467538&amp;amp;post=206&amp;amp;subd=orangemachine&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 19 Dec 2009 15:24:57 +0000</pubDate>
</item>
<item>
	<title>El laboratorio del Dr. Txap: Alma de Rodrigo Blaas</title>
	<guid>http://blog.txapulin.net/?p=2238</guid>
	<link>http://blog.txapulin.net/2009/12/alma-de-rodrigo-blaas/</link>
	<description>&lt;p&gt;Otra de las maravillas que pude ver en el festival de animación del SIGGRAPH.&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://vimeo.com/4749536&quot;&gt;Alma&lt;/a&gt; from &lt;a href=&quot;http://vimeo.com/alma&quot;&gt;Rodrigo Blaas&lt;/a&gt; on &lt;a href=&quot;http://vimeo.com&quot;&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.cg-node.com/showthread.php?t=10523&quot;&gt;Vía cg-node&lt;/a&gt;.&lt;/p&gt;</description>
	<pubDate>Fri, 18 Dec 2009 11:38:22 +0000</pubDate>
</item>
<item>
	<title>El laboratorio del Dr. Txap: Pigeon: Impossible</title>
	<guid>http://blog.txapulin.net/?p=2191</guid>
	<link>http://blog.txapulin.net/2009/11/pigeon-impossible/</link>
	<description>&lt;p&gt;Éste lo vi en el festival de animación del SIGGRAPH. Es bueno que vayan apareciendo…&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Gràcies, &lt;a href=&quot;http://bloc.bargallo.cat/&quot;&gt;Ignasi&lt;/a&gt;.&lt;/p&gt;</description>
	<pubDate>Thu, 12 Nov 2009 15:23:55 +0000</pubDate>
</item>
<item>
	<title>Gyakoo: Something about security</title>
	<guid>tag:blogger.com,1999:blog-27518612.post-2343565292512477353</guid>
	<link>http://gyakoo.blogspot.com/2009/10/something-about-security.html</link>
	<description>&lt;a href=&quot;http://nostarch.com/hacking2.htm&quot;&gt;&lt;img src=&quot;http://nostarch.com/images/hacking_2E_cov.png&quot; style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 154px; height: 203px;&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; Exploiting of systems is a subject of which I'd like to know more about. I think it's good to understand how avoid future hacking, but really you neither find much information on web nor books related. I've found &lt;a href=&quot;http://nostarch.com/hacking2.htm&quot;&gt;a book&lt;/a&gt; which maybe could help us to improve these skills. Topics in book include:&lt;blockquote&gt;&lt;ul&gt;&lt;li&gt;Program computers using C, assembly language, and shell scripts&lt;/li&gt;&lt;li&gt;Corrupt system memory to run arbitrary code using buffer overflows and format strings&lt;/li&gt;&lt;li&gt;Inspect processor registers and system memory with a debugger to gain a real understanding of what is happening&lt;/li&gt;&lt;li&gt;Outsmart common security measures like nonexecutable stacks and intrusion detection systems&lt;/li&gt;&lt;li&gt;Gain access to a remote server using port-binding or connect-back shellcode, and alter a server's logging behavior to hide your presence&lt;/li&gt;&lt;li&gt;Redirect network traffic, conceal open ports, and hijack TCP connections&lt;/li&gt;&lt;li&gt;Crack encrypted wireless traffic using the FMS attack, and speed up brute-force attacks using a password probability matrix&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;And related to that, in the video below, speakers Michael Stail and Felix Domke talk about &lt;i&gt;The XBox 360 Security System and its Weaknesses&lt;/i&gt;. They first talk about all weaknesses in old Xbox I, and one by one they're going giving technical information about how they fixed them.&lt;br /&gt;&lt;center&gt;&lt;/center&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/27518612-2343565292512477353?l=gyakoo.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 20 Oct 2009 15:34:55 +0000</pubDate>
	<author>noreply@blogger.com (gyakoo)</author>
</item>
<item>
	<title>Gyakoo: Please, no more discussion about C vs C++</title>
	<guid>tag:blogger.com,1999:blog-27518612.post-1036869394656509834</guid>
	<link>http://gyakoo.blogspot.com/2009/10/please-no-more-discussion-about-c-vs-c.html</link>
	<description>&lt;a href=&quot;http://www.classes.cs.uchicago.edu/archive/2006/summer/15200-91/cplusplus.jpg&quot;&gt;&lt;img src=&quot;http://www.classes.cs.uchicago.edu/archive/2006/summer/15200-91/cplusplus.jpg&quot; style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 190px;&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;I'm really thinking that C vs C++ discussion will never end. I just read a &lt;a href=&quot;http://www.gigamonkeys.com/blog/2009/10/16/coders-c++.html&quot;&gt;Peter Seibel post&lt;/a&gt; about interviews he has written in his book &lt;i&gt;Coders at Work&lt;/i&gt;, asking to fifteen top programmers and computer scientist around the world about what are their opinions in using C++ language.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Well, maybe you're going to be surprised since most of them think that C++ is a bad, too complex, useless language, and they prefer C when they need performance. That's what a couple of well considered programmers said.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Reading the post, I can see that they had that opinion mainly focusing in how the complex the C++ is. They said that sometimes programmers use only a subset of the language. They think that what you mostly need to do with an OO language, you best do it with some other like Java or Python, because they're better structured languages and things can be done in the same way by different programmers. They insist in the complexity of language and the different compiler implementations, which is a pain in compatibility issues.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway, although I'm not by far as good programmer as they are (years of experience are talking here), I think they're old-school programmers, I mean, &lt;b&gt;C++ has been changing&lt;/b&gt; along these years and already there exist &lt;b&gt;another standard revision&lt;/b&gt;, as well as compilers do. In reference to the language complexity, all is about using it. If you're a Java experienced programmer and you want to program in C++ after a lot of years, it is obvious that C++ is very complex for you in the beginning. You'll get confused with OO artifacts (which is half-implemented in C++, it is true), or by the using of pointers and references. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;C++ is a great language, as well as C and Java and others, depending on what you need to do. The google jam code contest is a good example about it. I've a good colleague that tried to resolve its exercises by using C++, but he said me that more rounds he passed more difficult the questions were, but difficult in the sense of he hadn't enough time to program the result algorithm, not by the algorithm's complexity itself. He was spending a lot of time with language (C++) to do simple tasks like word parsing, splitting a string ... I wonder if he had used python, I'm pretty sure he had obtained a better results.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A place where you can find a lot of C++ code is in the videogames industry, but anyway there is a common evolution there, the using of more high level scripting language, loosing a bit of performance but gaining flexibility and avoiding bugs. That evolution is focused also in tries to make an better script parallel language. And talking about parallelism, it is true that C++ might be a bit painful. That's because the lack of a memory model like Java has. But next language standard has done efforts in that field.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To summarize, my honest opinion about using C++ is that if you've got a couple of good programmers that understand well the language, and they're pragmatic, you could program a very good product (in the performance sense) by using C++, but even so there are parts of a system that is better program in another not-so-risky language. To make good use of the C++ you need good and experienced C++ programmers. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;C++ is a dangerous language, like a knife is. But that has not made it so bad. All depend on who is using it and how he/she uses it. You don't let a child that plays with a knife, don't you?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/27518612-1036869394656509834?l=gyakoo.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 17 Oct 2009 18:15:36 +0000</pubDate>
	<author>noreply@blogger.com (gyakoo)</author>
</item>
<item>
	<title>Gyakoo: C++ or C (in this era?)</title>
	<guid>tag:blogger.com,1999:blog-27518612.post-6921499293957256273</guid>
	<link>http://gyakoo.blogspot.com/2009/10/c-or-c-in-this-era.html</link>
	<description>A post from &lt;a href=&quot;http://www.johndcook.com/blog/2009/09/15/linus-torvalds-cpp/&quot;&gt;The Endeavour&lt;/a&gt; blog about a Linus Torval's &lt;a href=&quot;http://article.gmane.org/gmane.comp.version-control.git/57918&quot;&gt;response&lt;/a&gt; in a forum, makes me remember the ethernal dilemma about OO and Procedural methodologies flamewar, C++ vs C, STL vs C, Java vs C, well whatever vs C...&lt;br /&gt;&lt;br /&gt;Linus:&lt;br /&gt;&lt;blockquote&gt;C++ is a horrible language. It's made more horrible by the fact that a lot&lt;br /&gt;of substandard programmers use it, to the point where it's much much&lt;br /&gt;easier to generate total and utter crap with it. Quite frankly, even if&lt;br /&gt;the choice of C were to do &lt;b&gt;*nothing*&lt;/b&gt; but keep the C++ programmers out,&lt;br /&gt;that in itself would be a huge reason to use C.&lt;br /&gt;...&lt;br /&gt;&lt;/blockquote&gt;John:&lt;br /&gt;&lt;blockquote&gt;...&lt;br /&gt;Well, I’m nowhere near as talented a programmer as Linus Torvalds, but I totally disagree with him. If it’s easy to generate crap in a relatively high-level and type-safe language like C++, then it must be child’s play to generate crap in C. It’s not fair to compare world-class C programmers like Torvalds and his peers to average C++ programmers. &lt;strong&gt;Either compare the best with the best or compare the average with the average&lt;/strong&gt;.&lt;br /&gt;...&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;John's impressions are clever and looks like more polite, against Linus's outspoken attitude but completely honest, but anyway after read a lot of controversial comments and what Stroustup &lt;a href=&quot;http://gyakoo.blogspot.com/2009/09/bjarne-stroustup-on-c0x-cvu.html&quot;&gt;said&lt;/a&gt; about his C++, finally I think that why do we have to chose one of them? Are always things black or white? I neither agree nor disagree with extreme positions ... people like discussions!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/27518612-6921499293957256273?l=gyakoo.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 15 Oct 2009 14:53:24 +0000</pubDate>
	<author>noreply@blogger.com (gyakoo)</author>
</item>
<item>
	<title>Gyakoo: Hacker's Delight</title>
	<guid>tag:blogger.com,1999:blog-27518612.post-815143534254418870</guid>
	<link>http://gyakoo.blogspot.com/2009/10/hackers-delight.html</link>
	<description>Since I read an article from &lt;a href=&quot;http://entland.homelinux.com/blog/2008/11/04/hackers-delight/&quot;&gt;EntBlog&lt;/a&gt; about this book, I pushed it in my pending books queue. And ... finally a good colleague at Optenet give it to me like a present. I'm really excited. Thank you &lt;a href=&quot;http://www.realsim.net/menu.html&quot;&gt;dude&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href=&quot;http://www.hackersdelight.org/&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_UXKUeU6z7xE/Ss8zg1uH53I/AAAAAAAAAY8/73xr0GeeycA/s320/hackers_delight.jpg&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 240px; height: 240px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5390583918255138674&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/center&gt;Sure I'll learn a lot of interesting things.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/27518612-815143534254418870?l=gyakoo.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 15 Oct 2009 14:16:07 +0000</pubDate>
	<author>noreply@blogger.com (gyakoo)</author>
</item>
<item>
	<title>Rub&amp;eacute;n Penalva's blog: New adventure in Cambridge</title>
	<guid>http://www.rpenalva.com/blog/?p=209</guid>
	<link>http://www.rpenalva.com/blog/?p=209</link>
	<description>&lt;p&gt;Well, after some time without updating the blog I’m giving some life signals. Sorry for the lack of updates but I’ve been super busy moving to Cambridge. Yes, I moved to Cambridge to work for &lt;a href=&quot;http://www.artvps.com/&quot;&gt;ArtVPS&lt;/a&gt; as a software developer. I’m working with real time ray tracing renderers, which is really cool. The people here are great professionals and I’m very pleased to have the opportunity to work with them.  As you could imagine I have no time to do anything aside searching a flat and getting used to listen English the whole day. I left my machine in Madrid, so no tech demos in a couple of months. I have to figure out how the hell I’m going to bring all that (2 monitors, a big case, 7.1 speakers,…..) to Cambridge.&lt;/p&gt;</description>
	<pubDate>Mon, 12 Oct 2009 12:24:49 +0000</pubDate>
</item>
<item>
	<title>Shash Final Project Diary: Technical details of implementation</title>
	<guid>tag:blogger.com,1999:blog-4559245151978053397.post-7741942076836719105</guid>
	<link>http://shashfinalproject.blogspot.com/2009/10/technical-details-of-implementation.html</link>
	<description>&lt;div style=&quot;text-align: justify;&quot;&gt;After the general ideas, I want to talk about the technical details of the project implementation. First of all, I'm mainly an OpenGL coder, I've been using the API for almost a decade now, so I'm quite used to it. Also I'm quite used to coding all the stuff that is rationally doable myself: 3D mesh exporters/importers, file formats, parsers, etc. As I see the final project as a learning exercise, I wanted to try something different.&lt;br /&gt;&lt;br /&gt;First, I'll be using Direct3D 9 or 10: I'm not sure of the capabilities that Direct3D 9 offers, so maybe I'll have to use some stuff that is Direct3D 10 level. Whenever I can check of the full Direct3D 9 capabilities I'll know, I'm too used of working with OpenGL, where higher requirements don't mean changing the version of the API, just another extension.&lt;br /&gt;&lt;br /&gt;For the 3D mesh/scene file format, I'll be using Collada. The reason is quite simple, it's got exporters already written from 3dsmax and Maya (the two applications I know best), it's plain XML (so I can write a parser, and in the process learn about the schema) and it's meant to be a industry standard (that's the least important reason, but seems plenty of people/companies are  using it as exchange format between the 3D package, tools and final format).&lt;br /&gt;&lt;br /&gt;As for the math and base code, I'll use modified (mainly simplified) versions of those that I use for my personal projects, as I won't be needing all the stuff I've coded over the years (or I hope so!).&lt;br /&gt;&lt;br /&gt;Also, it's worth noting that I already started the project, in fact it was started 3 weeks ago! As of now, I've the first draft of the Collada loader, an a very simple Direct3D encapsulation. In the upcoming days, I'll be uploading screenshots if I do something worth posting, and will start detailing the four shading techniques that I'll implement.&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/4559245151978053397-7741942076836719105?l=shashfinalproject.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 06 Oct 2009 18:27:00 +0000</pubDate>
	<author>noreply@blogger.com (shash)</author>
</item>
<item>
	<title>Neurogence: An AI's application in my daily work?</title>
	<guid>tag:blogger.com,1999:blog-8787207272730361572.post-6015639017646676805</guid>
	<link>http://neurogence.blogspot.com/2009/10/ais-application-in-my-real-life.html</link>
	<description>Well, last months we've here a big problem about our daily technical work. As you possibly already know (if you read my another blog), I'm working in a big system which automatizes all our Software Quality Assurance (SQA) procedures and test cases for our (complex, have to say) products.We always have a issue related with interface's dependent test cases. Basically, they're scripts that perform</description>
	<pubDate>Thu, 01 Oct 2009 18:00:13 +0000</pubDate>
	<author>noreply@blogger.com (gyakoo)</author>
</item>
<item>
	<title>Shash Final Project Diary: Initial ideas</title>
	<guid>tag:blogger.com,1999:blog-4559245151978053397.post-2345732615902333241</guid>
	<link>http://shashfinalproject.blogspot.com/2009/09/initial-ideas.html</link>
	<description>&lt;div style=&quot;text-align: justify;&quot;&gt;Well, as part of my final project at the university, I wanted to make a diary with plenty of screenshots and as a mean to see how much the finished project changed from the initial ideas. Let's get to explain what I'll be doing in the next months.&lt;br /&gt;&lt;br /&gt;Over the past years I've devoting both my personal and professional time to 3D related coding, including, but not limited to, software/hardware rasterizers, raytracers or related tools. I've also toyed with non PC hardware quite a lot, as I've coded for the Playstation 1, GBA, DS and PSP (the latter two to a large extent). As such, it was a natural choice doing my final project on something related to 3D.&lt;br /&gt;&lt;br /&gt;Over the past year, I've seen a lot of times comparisons between the different game rendering techniques: I mean how the problem of illuminating surfaces with several different lights is accomplished. First, the discussion is between forward and deferred rendering, not between several less memory heavy deferred rendering approaches. As of now, I've done an implementation of both forward lighting and deferred lighting, but both engines had a very different target (and test scenes). What I want to do now, is to test several different approaches on the same test scenes and be able to compare them in the same environment.&lt;br /&gt;&lt;br /&gt;So, let's sum it up, I want to implement the following 4 techniques:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Forward rendering (probably multi-pass, and not multi-light übershaders)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Deferred rendering (the old big GBuffer approach)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Pre-light pass (also know as deferred lighting)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Light indexed rendering&lt;/li&gt;&lt;/ul&gt;I'll mainly focus my work on getting all renderers to show all scenes to a certain degree of fidelity, even if at the cost of performance: if the scene is not meant to perform well on one of the techniques, I won't be doing any quality downgrades on the renderer (for example, dropping lights or transparency).&lt;br /&gt;&lt;br /&gt;This is really important, as I want to focus on accurately benchmarking all of them and getting a fair comparison of them on a wide range of scenes. The main problem of my tests will be that I'll probably only be using a PC (not a PS3 or a Xbox360), which won't give a industry level comparison, but I don't have access to that hardware now, and even if I had, access to the PS3 GPU is not possible without a devkit, which is way out of my budget :P&lt;br /&gt;&lt;br /&gt;To sum it up, I'll be doing a benchmark of different rendering techniques, let's start the ride :)&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/4559245151978053397-2345732615902333241?l=shashfinalproject.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 23 Sep 2009 20:51:00 +0000</pubDate>
	<author>noreply@blogger.com (shash)</author>
</item>
<item>
	<title>Neurogence: Welcome</title>
	<guid>tag:blogger.com,1999:blog-8787207272730361572.post-5596841913199064788</guid>
	<link>http://neurogence.blogspot.com/2009/03/welcome.html</link>
	<description>Neurogence is an attempt to compile a collection of articles, techniques, methods and ideas about Artificial Intelligence. In this website we'll post some of advances and news in AI, interesting books, useful links, and areas where AI is currently in use, as well as a few descriptions, myths and definitions.Also, here we'll challenge to anyone who wants to share AI algorithms for specific</description>
	<pubDate>Wed, 23 Sep 2009 04:56:30 +0000</pubDate>
	<author>noreply@blogger.com (gyakoo)</author>
</item>
<item>
	<title>Neurogence: Computer vision, pattern recognition and hot dogs</title>
	<guid>tag:blogger.com,1999:blog-8787207272730361572.post-1275175890900243970</guid>
	<link>http://neurogence.blogspot.com/2009/07/computer-vision-pattern-recognition-and.html</link>
	<description>Is impressive how the flex-pickers recognize and classify the hot dogs.There are a lot of variables to take into account as well as recognition of forms, robotics, IK, the conveyor belt, optimization to select the best place where to put the hot dogs ... all in realtime. You can see how some pieces can't be processed, but surely they're used to feed back the pipeline.</description>
	<pubDate>Wed, 23 Sep 2009 04:55:39 +0000</pubDate>
	<author>noreply@blogger.com (gyakoo)</author>
</item>
<item>
	<title>Neurogence: Fantastic AI</title>
	<guid>tag:blogger.com,1999:blog-8787207272730361572.post-5626399103744399549</guid>
	<link>http://neurogence.blogspot.com/2009/09/fantastic-ai.html</link>
	<description>In the middle of 2005 I started to work in a company called Gextech where we were developing for 3 years, a non-interactive, bet-oriented soccer game: Fantastic League. I was the AI senior programmer there, and I'll try to explain how we did it.It was interesting and motivating for us. One of the challenges was to create a sort of &quot;artificial intelligence&quot; for football players. I say &quot;sort of&quot;</description>
	<pubDate>Wed, 23 Sep 2009 04:55:03 +0000</pubDate>
	<author>noreply@blogger.com (gyakoo)</author>
</item>
<item>
	<title>Histor&amp;iacute;as de un coder: Puños fuera!</title>
	<guid>tag:blogger.com,1999:blog-11160914.post-5710062373875282614</guid>
	<link>http://shashclp.blogspot.com/2009/08/punos-fuera.html</link>
	<description>&lt;div style=&quot;text-align: justify;&quot;&gt;Hace unos días estuve en casa de un amigo que acaba de tener un hijo (técnicamente su pareja, pero ya se entiende). Hacía casi dos años que no nos veíamos, aunque hace mucho que nos conocemos: al irme de Barcelona, habíamos perdido el contacto. Fui a su piso, conocí a su hijo (que entonces hacía 7 días exactos que había nacido) y me invitaron a comer. Su madre preparó unas de las paellas mas espectaculares que puedo recordar. Compartieron lo que tenían conmigo, de forma generosa.&lt;br /&gt;&lt;br /&gt;Cuando era pequeño, solíamos ir, con mis padres y los compañeros del club excursionista, bastante de camping. Allí, casi siempre que comíamos se hacia en comunidad, se compartía la comida con todos, y nadie abusaba comiéndoselo todo ni nada parecido.&lt;br /&gt;&lt;br /&gt;Y porque cuento todo este rollo personal, cuando os importa un pepino? Pues porque al final de este post hay el código de la ultima prod que hemos hecho slack y yo. He limpiado un poco el código, y ahora debería requerir menos GPU, pudiendo funcionar en aquellas tarjetas que no soporten GLSL 1.2 (o OpenGL 2.1 completo, si lo preferís). Ademas, he reducido el tamaño de la prod a la vez que he añadido soporte decente para resoluciones diferentes y para esconder el ratón.&lt;br /&gt;&lt;br /&gt;No he añadido contenido ni he corregido el que había, prefiero trabajar en nuevas prods que no invertir tiempo en esta: únicamente sacamos versión final porque ha sido un trabajo derivado de limpiar el código para publicarlo. De hecho, al poco de publicar este post estaré empezando la nueva prod. Ademas he publicado versión final de la 4k:&lt;br /&gt;&lt;br /&gt;- &lt;a href=&quot;http://collapse.untergrund.net/downs/clp&amp;amp;gtt_otopoto_final.zip&quot;&gt;otopoto / Collapse &amp;amp; Gatitos (versión &lt;/a&gt;&lt;a href=&quot;http://collapse.untergrund.net/downs/clp&amp;amp;gtt_otopoto_final.zip&quot;&gt;final&lt;/a&gt;&lt;a href=&quot;http://collapse.untergrund.net/downs/clp&amp;amp;gtt_otopoto_final.zip&quot;&gt;)&lt;/a&gt;&lt;br /&gt;- &lt;a href=&quot;http://collapse.untergrund.net/downs/clp&amp;amp;gtt_otopoto_src.zip&quot;&gt;otopoto / Collapse &amp;amp; Gatitos (código fuente)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Preguntas, insultos y correcciones serán bienvenidas.&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/11160914-5710062373875282614?l=shashclp.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 09 Aug 2009 21:45:51 +0000</pubDate>
	<author>noreply@blogger.com (shash)</author>
</item>
<item>
	<title>Histor&amp;iacute;as de un coder: Nueva 4k</title>
	<guid>tag:blogger.com,1999:blog-11160914.post-250633790645907261</guid>
	<link>http://shashclp.blogspot.com/2009/07/nueva-4k.html</link>
	<description>&lt;div style=&quot;text-align: justify;&quot;&gt;Pues eso, hemos terminado una nueva 4k. Las criticas no han sido buenas, y quedamos segundos. Ademas, para añadirle insulto, es la 4k a la que posiblemente he dedicado mas tiempo. Vaya, un fiasco, no? No creáis. Voy a contar porqué.&lt;br /&gt;&lt;br /&gt;Hace 2 años exactos, decidí dejar de producir. Acababa de volver de la Euskal, habíamos ganado la competición de 4k, y yo solo podía sentir frustración por la producción con la que habíamos ganado: mucho material reutilizado y hecha con desgana. El hecho que ganara solo añadió insulto al asunto. Ya entonces consideraba seriamente que no producía al nivel que podía hacerlo, al menos en lo que respecta a técnica. Hacer cosas abstractas esta bien una temporada, pero después de unos años...&lt;br /&gt;&lt;br /&gt;Decidí dejar de producir hasta que no pusiera todo mi empeño en una producción. Hace algo menos de un año empecé con la versión final de la &lt;a href=&quot;http://pouet.net/prod.php?which=9603&quot;&gt;Let yourself go&lt;/a&gt;, ya que creía que merecía un poco de amor antes de olvidarla para siempre. La idea era pillar carrerilla en algo orientado a la demoscene, y luego empezar algo nuevo. Siempre con la idea de volver a producir con ganas, y dar lo que pudiera, al menos a nivel técnico.&lt;br /&gt;&lt;br /&gt;Y aunque el resultado de la &lt;a href=&quot;http://www.pouet.net/prod.php?which=53554&quot;&gt;otopoto&lt;/a&gt; no sea el que tenía en la cabeza, y siendo consciente que había muchísimas cosas por pulir, puedo levantar la cabeza alto y sentirme orgulloso de haber trabajado en ella a consciencia. Obviamente, el resultado artístico deja que desear, pero técnicamente tiene detalles interesantes. En la próxima tengo que recordar centrarme mas en la parte artística, como hacía con las producciones mas abstractas.&lt;br /&gt;&lt;br /&gt;Solo para notar como las prisas finales hicieron recortar en calidad, comparad los 2 shots siguientes. El primero es el de la prod a una semana de la party, el segundo de la versión presentada en la party:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_7WaI1gEi66M/Sm8QSepQkAI/AAAAAAAAAQM/0Gyroc42Pug/s1600-h/Isle_GOOD.png&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_7WaI1gEi66M/Sm8QSepQkAI/AAAAAAAAAQM/0Gyroc42Pug/s200/Isle_GOOD.png&quot; style=&quot;cursor: pointer; width: 200px; height: 112px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5363523590871355394&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_7WaI1gEi66M/Sm8QSOzpTwI/AAAAAAAAAQE/5PIPrSCaWxA/s1600-h/Isle_BAD.png&quot;&gt; &lt;img src=&quot;http://3.bp.blogspot.com/_7WaI1gEi66M/Sm8QSOzpTwI/AAAAAAAAAQE/5PIPrSCaWxA/s200/Isle_BAD.png&quot; style=&quot;cursor: pointer; width: 200px; height: 112px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5363523586619952898&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;No mucho mas que comentar al respecto, si alguien quiere mas detalles, que comente y le responderé lo mejor que sepa.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;A parte, en esta euskal también di una charla sobre 4k. Hubo cosas que funcionaron muy bien y otras que no. A parte, estaba algo nervioso, pues la sala estaba MUY llena (50-70 personas) y no había ensayado la charla tan a fondo como hubiera querido. Tenéis, de momento, el audio y las diapositivas usadas &lt;a href=&quot;http://conferencias.euskadigital.net/index.php?id=190&quot;&gt;aquí&lt;/a&gt;. A final de verano saldrá el vídeo de la charla, cuando esté disponible ya lo comentaré por aquí.&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/11160914-250633790645907261?l=shashclp.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 09 Aug 2009 21:45:36 +0000</pubDate>
	<author>noreply@blogger.com (shash)</author>
</item>
<item>
	<title>Jes&amp;uacute;s de santos: The Documentation Challenge</title>
	<guid>http://entland.homelinux.com/blog/?p=407</guid>
	<link>http://feedproxy.google.com/~r/Entblog/~3/k0dhTszIZtI/</link>
	<description>Documentation is the part of the development process where usually less time and money is invested. Few resources implies a poor infrastructure for something that, as the project gets bigger and...&lt;img src=&quot;http://feeds.feedburner.com/~r/Entblog/~4/k0dhTszIZtI&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Tue, 28 Jul 2009 19:58:51 +0000</pubDate>
</item>
<item>
	<title>Histor&amp;iacute;as de un coder: Hoy, snippets cortos de código</title>
	<guid>tag:blogger.com,1999:blog-11160914.post-7375988922320294846</guid>
	<link>http://shashclp.blogspot.com/2009/07/hoy-snippets-cortos-de-codigo.html</link>
	<description>&lt;div style=&quot;text-align: justify;&quot;&gt;Viendo como OpenGL va a deprecar parte del API (cosa que me parece bien, a ver si conseguimos mejores drivers!), y la costumbre de programar cosas de mas que tenemos algunos, he creído que alguien le seria útil. Funcionan 100% igual que las funciones de la API (misma matriz, etc). Empezaré por el mas trivial (la implementación es directa respecto a la documentación), crear una matriz de proyección ortográfica, con los mismos parámetros que &lt;a href=&quot;http://www.opengl.org/sdk/docs/man/xhtml/glOrtho.xml&quot;&gt;gluOrtho&lt;/a&gt;:
&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;csharpcode&quot;&gt;
&lt;br /&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   1:  &lt;/span&gt;CMatrix4x4 CreateOrtographicProj (&lt;span class=&quot;kwrd&quot;&gt;float&lt;/span&gt; left,   &lt;span class=&quot;kwrd&quot;&gt;float&lt;/span&gt; right, &lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   2:  &lt;/span&gt;                                  &lt;span class=&quot;kwrd&quot;&gt;float&lt;/span&gt; bottom, &lt;span class=&quot;kwrd&quot;&gt;float&lt;/span&gt; top, &lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   3:  &lt;/span&gt;                                  &lt;span class=&quot;kwrd&quot;&gt;float&lt;/span&gt; Near,   &lt;span class=&quot;kwrd&quot;&gt;float&lt;/span&gt; zFar)&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   4:  &lt;/span&gt;{&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   5:  &lt;/span&gt; CMatrix4x4 result;&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   6:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   7:  &lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;float&lt;/span&gt;  tx = -(right+left)/(right-left),&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   8:  &lt;/span&gt;        ty = -(top+bottom)/(top-bottom),&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   9:  &lt;/span&gt;        tz = -(zFar+zNear)/(zFar-zNear);&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  10:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  11:  &lt;/span&gt; result.Set (2.f/(right-left), 0.f,              0.f,               tx,&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  12:  &lt;/span&gt;             0.f,              2.f/(top-bottom), 0.f,               ty,&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  13:  &lt;/span&gt;             0.f,              0.f,             -2.f/(zFar-zNear),  tz,&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  14:  &lt;/span&gt;             0.f,              0.f,              0.f,               1.f);&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  15:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  16:  &lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;return&lt;/span&gt; result;&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  17:  &lt;/span&gt;}&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Como apunte, en todos los snippets de codigo usan ciertas clases matemáticas sencillas que uso, en esta la clase matriz cuadrada de 4 elementos. Si hay alguna duda sobre esto, comentadlo y expando los detalles sobre ellas. A efectos prácticos, podéis suponer que CMatrix4x4::Set (...) es equivalente a ir asignando a un array de floats de 16 elementos: el primer parámetro seria el primer elemento del array, el segundo parámetro el segundo elemento, etc.
&lt;br /&gt;
&lt;br /&gt;En segundo lugar, proyección en perspectiva, equivalente a &lt;a href=&quot;http://www.opengl.org/sdk/docs/man/xhtml/gluPerspective.xml&quot;&gt;gluPerspective&lt;/a&gt;:
&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;csharpcode&quot;&gt;
&lt;br /&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   1:  &lt;/span&gt;CMatrix4x4 CreatePerspectiveProj (&lt;span class=&quot;kwrd&quot;&gt;float&lt;/span&gt; fovy,  &lt;span class=&quot;kwrd&quot;&gt;float&lt;/span&gt; aspect, &lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   2:  &lt;/span&gt;                                  &lt;span class=&quot;kwrd&quot;&gt;float&lt;/span&gt; zNear, &lt;span class=&quot;kwrd&quot;&gt;float&lt;/span&gt; zFar)&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   3:  &lt;/span&gt;{&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   4:  &lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;float&lt;/span&gt; f    = tanf (((fovy/180.f)*(&lt;span class=&quot;kwrd&quot;&gt;float&lt;/span&gt;)M_PI) / 2.0f);&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   5:  &lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;float&lt;/span&gt; div  = (zNear-zFar);&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   6:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   7:  &lt;/span&gt; f   = IsFloatEqual(f, 0.f) ? FLT_MAX : 1.f / f;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   8:  &lt;/span&gt; div = IsFloatEqual(div, 0.f) ? FLT_MAX : 1.f / div;&lt;/pre&gt;&lt;span class=&quot;lnum&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;lnum&quot;&gt; 9:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  10:  &lt;/span&gt; CMatrix4x4 result;&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  11:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  12:  &lt;/span&gt; result.Set (f / aspect, 0.f,   0.f,              0.f,&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  13:  &lt;/span&gt;             0.f,          f,   0.f,              0.f,&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  14:  &lt;/span&gt;             0.f,        0.f,   (zFar+zNear)*div, (2.f*zFar*zNear)*div,&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  15:  &lt;/span&gt;             0.f,        0.f,  -1.f,              0.f);&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  16:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  17:  &lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;return&lt;/span&gt; result;&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  18:  &lt;/span&gt;}&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;A comentar, la macro IsFloatEqual solo compara dos números en coma flotante: el método normalmente mas recomendado (pero menos rápido, obviamente), es restarlos, coger el valor absoluto, y comparar si es menor que cierto &lt;span style=&quot;font-style: italic;&quot;&gt;epsilon&lt;/span&gt;. Esto se hace así debido a que por precisión de los numeros en coma flotante, comparar con numeros exactos (por ejemplo, haciendo float == 0.0) es desaconsejable.
&lt;br /&gt;
&lt;br /&gt;Finalmente, el que tiene mas curro, el &lt;a href=&quot;http://www.opengl.org/sdk/docs/man/xhtml/gluLookAt.xml&quot;&gt;gluLookAt&lt;/a&gt; (sobretodo, porque la documentación obvia ciertos detalles):&lt;/div&gt;&lt;div class=&quot;csharpcode&quot;&gt;
&lt;br /&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   1:  &lt;/span&gt;CMatrix4x4 CreateLookAt (&lt;span class=&quot;kwrd&quot;&gt;const&lt;/span&gt; CVector3 &amp;amp;eye,&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   2:  &lt;/span&gt;                         &lt;span class=&quot;kwrd&quot;&gt;const&lt;/span&gt; CVector3 &amp;amp;center, &lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   3:  &lt;/span&gt;                         &lt;span class=&quot;kwrd&quot;&gt;const&lt;/span&gt; CVector3 &amp;amp;up)&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   4:  &lt;/span&gt;{&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   5:  &lt;/span&gt; CVector3 f      (center-eye);&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   6:  &lt;/span&gt; CVector3 upLocal(up);&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   7:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   8:  &lt;/span&gt; f.Normalize();&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;   9:  &lt;/span&gt; upLocal.Normalize();&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  10:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  11:  &lt;/span&gt; CVector3 s = f ^ upLocal;&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  12:  &lt;/span&gt; CVector3 u = s ^ f;&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  13:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  14:  &lt;/span&gt; s.Normalize();&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  15:  &lt;/span&gt; u.Normalize();&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  16:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  17:  &lt;/span&gt; CMatrix4x4 result, translate;&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  18:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  19:  &lt;/span&gt; result.Set ( s.x,  s.y,  s.z, 0.f,&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  20:  &lt;/span&gt;              u.x,  u.y,  u.z, 0.f,&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  21:  &lt;/span&gt;             -f.x, -f.y, -f.z, 0.f,&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  22:  &lt;/span&gt;              0.f,  0.f,  0.f, 1.f);&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  23:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  24:  &lt;/span&gt; translate.SetTranslation (eye*-1.f);&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  25:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  26:  &lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;return&lt;/span&gt; result*translate;&lt;/pre&gt;&lt;pre&gt;&lt;span class=&quot;lnum&quot;&gt;  27:  &lt;/span&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;A ver, destacar de este snippet, que el &lt;span style=&quot;font-weight: bold;&quot;&gt;operador^&lt;/span&gt; de la clase CVector3 equivale a hacer un producto vectorial (cross product), que el método &lt;span style=&quot;font-weight: bold;&quot;&gt;Normalize&lt;/span&gt; hace lo inferible del nombre (es decir, normaliza el vector usando su modulo), y que el método &lt;span style=&quot;font-weight: bold;&quot;&gt;SetTranslation &lt;/span&gt;de la clase CMatrix4x4, simplemente asigna a una traslación a la matriz (en este caso, al ser una matriz identidad, simplemente creamos una matriz de traslación).
&lt;br /&gt;
&lt;br /&gt;No he explicado a fondo que hace cada parte, para eso tenéis los links a la documentación de OpenGL, y si hay mas preguntas mejor dejad comentarios.
&lt;br /&gt;
&lt;br /&gt;La licencia de este código es la obvia y clásica &lt;span style=&quot;font-style: italic;&quot;&gt;haced lo que os dé la gana con él&lt;/span&gt;. Si encontrais algun bug, comentarlo y aprendemos todos de ello :)
&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/11160914-7375988922320294846?l=shashclp.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 03 Jul 2009 21:55:53 +0000</pubDate>
	<author>noreply@blogger.com (shash)</author>
</item>
<item>
	<title>Histor&amp;iacute;as de un coder: Volviendo a empezar, poco a poco</title>
	<guid>tag:blogger.com,1999:blog-11160914.post-3900075311617286960</guid>
	<link>http://shashclp.blogspot.com/2008/10/volviendo-empezar-poco-poco.html</link>
	<description>&lt;div style=&quot;text-align: justify;&quot;&gt;Hacia mucho que no escribía por aquí. El ultimo post quería decir que vuelvo a verme motivado para producir demos. Aunque muchos ya lo saben, me tomé un descanso porque noté que no producía lo mejor que podía, y no quería seguir creando productos sub-par. No creo que todas mis producciones sean mierda, ni de lejos, pero la ultima 4k, la forma de hacerla (la casi nula intención por crear algo de calidad), fue la razón que decidiera parar.&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;Durante el parón (y antes de él) me he visto envuelto en bastantes proyectos, algunos de ellos públicos, muchos de ellos privados, que solo han visto las pocas personas en las que confío para mostrar mis trabajos en progreso. Por eso, hoy quiero hacer un poco de resumen, con mas pantallazos que texto. Al fin y al cabo, nadie lee los blogs, para que escribir :P&lt;br /&gt;&lt;br /&gt;Me gustaría, pero no sé si conseguiré, que hubiera preguntas respecto a los proyectos. Estoy muy abierto a dar toda la información posible y ayuda. No soy muy partidario de dar código a espuertas, pues creo que coger el vicio de copiar código por sistema es malo. Aprender a hacer algo basado en una explicación concisa me parece mucho mas didáctico. Así pues, preguntad, y intentaré dar todo mi (limitado) conocimiento.&lt;br /&gt;&lt;br /&gt;Nada más, empezaré con los visores de formatos de geometría de juegos. Basicamente son cargadores del formato que usan ciertos juegos, tanto sea en sus modelos como en los mapas en si. Luego hay unas cuantas pantallas de mis colaboraciones en emuladores. Por cierto, los shots no están en orden cronológico, sino quedaba algo desestructurado, si alguien quiere saberlo lo comento.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Quake 1 / Quake 2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_7WaI1gEi66M/SPZ4hhWQMJI/AAAAAAAAAME/JhSACOGs3II/s1600-h/quake1_01.jpg&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_7WaI1gEi66M/SPZ4hhWQMJI/AAAAAAAAAME/JhSACOGs3II/s320/quake1_01.jpg&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5257522132284354706&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_7WaI1gEi66M/SPZ4hwtz9YI/AAAAAAAAAMM/i314hxG9uSM/s1600-h/quake2_01.jpg&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_7WaI1gEi66M/SPZ4hwtz9YI/AAAAAAAAAMM/i314hxG9uSM/s320/quake2_01.jpg&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5257522136409699714&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Quake 3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_7WaI1gEi66M/SPb56lNC3zI/AAAAAAAAAMc/Ql0vUPn_qUo/s1600-h/q3_viewer_01.jpg&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_7WaI1gEi66M/SPb56lNC3zI/AAAAAAAAAMc/Ql0vUPn_qUo/s320/q3_viewer_01.jpg&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5257664399816187698&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_7WaI1gEi66M/SPb56w0u2nI/AAAAAAAAAMk/Ggl1kX3UCc4/s1600-h/q3_viewer_02.jpg&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_7WaI1gEi66M/SPb56w0u2nI/AAAAAAAAAMk/Ggl1kX3UCc4/s320/q3_viewer_02.jpg&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5257664402935437938&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Portal / Half life 2&lt;/span&gt;&lt;br /&gt;(mismo engine porque es el mismo formato)&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_7WaI1gEi66M/SPZ3e4jp7qI/AAAAAAAAAK8/er9afP6wlms/s1600-h/hl2_01.jpg&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_7WaI1gEi66M/SPZ3e4jp7qI/AAAAAAAAAK8/er9afP6wlms/s320/hl2_01.jpg&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5257520987463347874&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_7WaI1gEi66M/SPZ3ezd_ToI/AAAAAAAAALE/tyGlKmUgP9A/s1600-h/hl2_02.jpg&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_7WaI1gEi66M/SPZ3ezd_ToI/AAAAAAAAALE/tyGlKmUgP9A/s320/hl2_02.jpg&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5257520986097405570&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Visor de modelos del Half Life 2&lt;/span&gt;&lt;br /&gt;(lo programé a parte y luego lo integré en el engine de arriba)&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_7WaI1gEi66M/SPZ3fOMoo3I/AAAAAAAAALM/ppWxUTNHMZg/s1600-h/hl2_mdl_01.jpg&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_7WaI1gEi66M/SPZ3fOMoo3I/AAAAAAAAALM/ppWxUTNHMZg/s320/hl2_mdl_01.jpg&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5257520993272374130&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Visor de modelos del Doom 3&lt;/span&gt;&lt;br /&gt;(también tengo hecho un cargador de mapas, pero no tengo shots a mano)&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_7WaI1gEi66M/SPb5hIjXpDI/AAAAAAAAAMU/kllR_N9IvC8/s1600-h/doom3_mdl_00.jpg&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_7WaI1gEi66M/SPb5hIjXpDI/AAAAAAAAAMU/kllR_N9IvC8/s320/doom3_mdl_00.jpg&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5257663962628465714&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Visor de modelos del Crysis&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_7WaI1gEi66M/SPZ3Dvn_E5I/AAAAAAAAAKE/eUjiu08uCq0/s1600-h/crysis_01.jpg&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_7WaI1gEi66M/SPZ3Dvn_E5I/AAAAAAAAAKE/eUjiu08uCq0/s320/crysis_01.jpg&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5257520521209123730&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_7WaI1gEi66M/SPZ3D62609I/AAAAAAAAAKM/JE-H8rlvvF4/s1600-h/crysis_02.jpg&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_7WaI1gEi66M/SPZ3D62609I/AAAAAAAAAKM/JE-H8rlvvF4/s320/crysis_02.jpg&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5257520524224549842&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Port del mi motor de Quake 3 a DS&lt;/span&gt;&lt;br /&gt;(corriendo sobre emulador, también corre en el hardware real)&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_7WaI1gEi66M/SPZ4ElS1KkI/AAAAAAAAALc/7BRL_yVuSq0/s1600-h/q3_ds_01.jpg&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_7WaI1gEi66M/SPZ4ElS1KkI/AAAAAAAAALc/7BRL_yVuSq0/s320/q3_ds_01.jpg&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5257521635127536194&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Port del mi motor de Quake 3 a PSP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_7WaI1gEi66M/SPZ4E-deKAI/AAAAAAAAALk/xQ0ALPriy-A/s1600-h/q3_psp_01.jpg&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_7WaI1gEi66M/SPZ4E-deKAI/AAAAAAAAALk/xQ0ALPriy-A/s320/q3_psp_01.jpg&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5257521641883052034&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_7WaI1gEi66M/SPZ4E2N_mmI/AAAAAAAAALs/tAajjRaYZgc/s1600-h/q3_psp_02.jpg&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_7WaI1gEi66M/SPZ4E2N_mmI/AAAAAAAAALs/tAajjRaYZgc/s320/q3_psp_02.jpg&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5257521639670651490&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Desmume (emulador de DS)&lt;/span&gt;&lt;br /&gt;(Colaboración, principalmente, trabajo en el core 3D, pero también en la CPU/2D/optimización)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_7WaI1gEi66M/SPZ3EK_JfQI/AAAAAAAAAKc/dfLKgJRbaQ8/s1600-h/desmume_02.jpg&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_7WaI1gEi66M/SPZ3EK_JfQI/AAAAAAAAAKc/dfLKgJRbaQ8/s320/desmume_02.jpg&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5257520528554032386&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_7WaI1gEi66M/SPZ3eavw44I/AAAAAAAAAKs/mpIDVjCAo6s/s1600-h/desmume_04.jpg&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_7WaI1gEi66M/SPZ3eavw44I/AAAAAAAAAKs/mpIDVjCAo6s/s320/desmume_04.jpg&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5257520979461071746&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_7WaI1gEi66M/SPZ3ETPSS7I/AAAAAAAAAKk/6f6gKZtpb-M/s1600-h/desmume_03.jpg&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_7WaI1gEi66M/SPZ3ETPSS7I/AAAAAAAAAKk/6f6gKZtpb-M/s320/desmume_03.jpg&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5257520530769202098&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_7WaI1gEi66M/SPZ3EJue_JI/AAAAAAAAAKU/Vy3Y0vNs4mM/s1600-h/desmume_01.jpg&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_7WaI1gEi66M/SPZ3EJue_JI/AAAAAAAAAKU/Vy3Y0vNs4mM/s320/desmume_01.jpg&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5257520528215702674&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;jpcsp (emulador de PSP)&lt;/span&gt;&lt;br /&gt;(Colaboración, principalmente trabajo en el core 3D)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_7WaI1gEi66M/SPZ4EhmqUlI/AAAAAAAAALU/o-yV6lr8sJ4/s1600-h/jpcsp_01.jpg&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_7WaI1gEi66M/SPZ4EhmqUlI/AAAAAAAAALU/o-yV6lr8sJ4/s320/jpcsp_01.jpg&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5257521634136969810&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Y esto es todo lo &quot;importante&quot; a mencionar. Contando que estuve activo en la demoscene hasta Julio del 2007, tampoco está tan mal. Por supuesto, podría haber hecho más, pero mucho tiempo se dedicó al emulador de DS, cuyo desarrollo fue muy complejo.&lt;br /&gt;&lt;br /&gt;A parte, a ratos voy trabajando, como todo coder gráfico, en un engine 3D, del cual me guardaré shots para otra ocasión.&lt;br /&gt;&lt;br /&gt;Nada más que contar ni mostrar por hoy!&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/11160914-3900075311617286960?l=shashclp.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 15 May 2009 10:59:02 +0000</pubDate>
	<author>noreply@blogger.com (shash)</author>
</item>
<item>
	<title>Luanatic: Welcome to Codepixel’s planet</title>
	<guid>http://www.pplux.com/?p=224</guid>
	<link>http://www.pplux.com/2009/05/11/welcome-to-codepixels-planet/</link>
	<description>&lt;p&gt;Just to start a new tag “codepixel” &lt;img src=&quot;http://www.pplux.com/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;The whole planet &lt;a href=&quot;http://planet.codepixel.com/&quot;&gt;here&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Mon, 11 May 2009 07:02:46 +0000</pubDate>
</item>
<item>
	<title>Jes&amp;uacute;s de santos: Compile-Time Strings</title>
	<guid>http://entland.homelinux.com/blog/?p=346</guid>
	<link>http://feedproxy.google.com/~r/Entblog/~3/nN2oHYXBFP0/</link>
	<description>It would be nice if we had such a feature in the C language, wouldn’t it? The term ‘compile-time string’ is referred here as strings that are converted to unique integer identifiers...&lt;img src=&quot;http://feeds.feedburner.com/~r/Entblog/~4/nN2oHYXBFP0&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Tue, 28 Apr 2009 22:19:40 +0000</pubDate>
</item>
<item>
	<title>Orangemachine: Modelado de Personajes – Character Setup</title>
	<guid>http://orangemachine.wordpress.com/?p=95</guid>
	<link>http://orangemachine.wordpress.com/2009/02/02/modelado-de-personajes-character-setup/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;En este proyecto hemos seguido el &lt;em&gt;pipeline &lt;/em&gt;para la creación y animación de personajes. El objetivo era crear un &lt;em&gt;modelo, con esqueleto, músculos, pelo, ropa y animación facial&lt;/em&gt;. Como resultado hemos creado una animación de 20 segundos.&lt;span id=&quot;more-95&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;width: 310px;&quot; id=&quot;attachment_136&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://vimeo.com/3053646&quot; title=&quot;Play the Orange Dancer Video!&quot;&gt;&lt;img src=&quot;http://orangemachine.files.wordpress.com/2009/02/play_orange_dancer_alive.jpg?w=300&amp;amp;h=168&quot; title=&quot;Play the video&quot; height=&quot;168&quot; width=&quot;300&quot; alt=&quot;Play the video&quot; class=&quot;size-medium wp-image-136&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Play the video (external link)&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;Estoy bastante contento con el resultado. He aprendido muchas técnicas y trucos, y lo más importante, el trabajo que lleva hacer un personaje &lt;img src=&quot;http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif&quot; alt=&quot;:D&quot; class=&quot;wp-smiley&quot; /&gt; .&lt;/p&gt;
&lt;p&gt;Uno de los pasos más costosos fue ajustar los pesos que influyen en los vértices cuando el esqueleto se mueve. Leyendo en el foro de CG Society, los profesionales dan de 4 a 6 pasadas para obtener un buen resultado.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Agradecimientos&lt;/strong&gt;&lt;br /&gt;
Caroline Larboulette and Olivier.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Algunos screenshot durante el desarrollo y producción:&lt;/p&gt;&lt;/blockquote&gt;

&lt;a href=&quot;http://orangemachine.wordpress.com/2009/02/02/modelado-de-personajes-character-setup/skeleton-orange-model-15/&quot; title=&quot;skeleton-orange-model-15&quot;&gt;&lt;img src=&quot;http://orangemachine.files.wordpress.com/2009/02/skeleton-orange-model-15.jpg?w=150&amp;amp;h=112&quot; title=&quot;skeleton-orange-model-15&quot; height=&quot;112&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://orangemachine.wordpress.com/2009/02/02/modelado-de-personajes-character-setup/skeleton-orange-model-20/&quot; title=&quot;skeleton-orange-model-20&quot;&gt;&lt;img src=&quot;http://orangemachine.files.wordpress.com/2009/02/skeleton-orange-model-20.jpg?w=150&amp;amp;h=112&quot; title=&quot;skeleton-orange-model-20&quot; height=&quot;112&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://orangemachine.wordpress.com/2009/02/02/modelado-de-personajes-character-setup/skeleton-orange-model-28/&quot; title=&quot;skeleton-orange-model-28&quot;&gt;&lt;img src=&quot;http://orangemachine.files.wordpress.com/2009/02/skeleton-orange-model-28.jpg?w=150&amp;amp;h=112&quot; title=&quot;skeleton-orange-model-28&quot; height=&quot;112&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://orangemachine.wordpress.com/2009/02/02/modelado-de-personajes-character-setup/skeleton-orange-model-34/&quot; title=&quot;skeleton-orange-model-34&quot;&gt;&lt;img src=&quot;http://orangemachine.files.wordpress.com/2009/02/skeleton-orange-model-34.jpg?w=150&amp;amp;h=112&quot; title=&quot;skeleton-orange-model-34&quot; height=&quot;112&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://orangemachine.wordpress.com/2009/02/02/modelado-de-personajes-character-setup/skeleton-orange-model-35/&quot; title=&quot;skeleton-orange-model-35&quot;&gt;&lt;img src=&quot;http://orangemachine.files.wordpress.com/2009/02/skeleton-orange-model-35.jpg?w=150&amp;amp;h=112&quot; title=&quot;skeleton-orange-model-35&quot; height=&quot;112&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://orangemachine.wordpress.com/2009/02/02/modelado-de-personajes-character-setup/skeleton-orange-model-49/&quot; title=&quot;skeleton-orange-model-49&quot;&gt;&lt;img src=&quot;http://orangemachine.files.wordpress.com/2009/02/skeleton-orange-model-49.jpg?w=150&amp;amp;h=112&quot; title=&quot;skeleton-orange-model-49&quot; height=&quot;112&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://orangemachine.wordpress.com/2009/02/02/modelado-de-personajes-character-setup/skeleton-orange-model-46/&quot; title=&quot;skeleton-orange-model-46&quot;&gt;&lt;img src=&quot;http://orangemachine.files.wordpress.com/2009/02/skeleton-orange-model-46.jpg?w=150&amp;amp;h=112&quot; title=&quot;skeleton-orange-model-46&quot; height=&quot;112&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://orangemachine.wordpress.com/2009/02/02/modelado-de-personajes-character-setup/orange-model-2/&quot; title=&quot;orange-model-2&quot;&gt;&lt;img src=&quot;http://orangemachine.files.wordpress.com/2009/02/orange-model-2.jpg?w=150&amp;amp;h=84&quot; title=&quot;orange-model-2&quot; height=&quot;84&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://orangemachine.wordpress.com/2009/02/02/modelado-de-personajes-character-setup/orange-model-1/&quot; title=&quot;orange-model-1&quot;&gt;&lt;img src=&quot;http://orangemachine.files.wordpress.com/2009/02/orange-model-1.jpg?w=150&amp;amp;h=84&quot; title=&quot;orange-model-1&quot; height=&quot;84&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://orangemachine.wordpress.com/2009/02/02/modelado-de-personajes-character-setup/orange-model-3/&quot; title=&quot;orange-model-3&quot;&gt;&lt;img src=&quot;http://orangemachine.files.wordpress.com/2009/02/orange-model-3.jpg?w=150&amp;amp;h=84&quot; title=&quot;orange-model-3&quot; height=&quot;84&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://orangemachine.wordpress.com/2009/02/02/modelado-de-personajes-character-setup/orange-model-4/&quot; title=&quot;orange-model-4&quot;&gt;&lt;img src=&quot;http://orangemachine.files.wordpress.com/2009/02/orange-model-4.jpg?w=150&amp;amp;h=84&quot; title=&quot;orange-model-4&quot; height=&quot;84&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://orangemachine.wordpress.com/2009/02/02/modelado-de-personajes-character-setup/orange-model-5/&quot; title=&quot;orange-model-5&quot;&gt;&lt;img src=&quot;http://orangemachine.files.wordpress.com/2009/02/orange-model-5.jpg?w=150&amp;amp;h=84&quot; title=&quot;orange-model-5&quot; height=&quot;84&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;

  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/orangemachine.wordpress.com/95/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/orangemachine.wordpress.com/95/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/orangemachine.wordpress.com/95/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/orangemachine.wordpress.com/95/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/orangemachine.wordpress.com/95/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/orangemachine.wordpress.com/95/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/orangemachine.wordpress.com/95/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/orangemachine.wordpress.com/95/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/orangemachine.wordpress.com/95/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/orangemachine.wordpress.com/95/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=orangemachine.wordpress.com&amp;amp;blog=3467538&amp;amp;post=95&amp;amp;subd=orangemachine&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 02 Feb 2009 15:40:00 +0000</pubDate>
</item>
<item>
	<title>Viento fuerte: Simulación de olas</title>
	<guid>http://vientofuerte.wordpress.com/?p=256</guid>
	<link>http://vientofuerte.wordpress.com/2009/01/09/simulacion-de-olas/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p align=&quot;justify&quot;&gt;
   En este proyecto se resuelve la ecuación de transporte convectivo con difusión en 2 dimensiones, reproduciendo una onda que se propaga a través de un dominio rectangular a la vez que se va amortiguando,haciendo uso de un malla bidimensional generada mediante diferencias finitas.&lt;br /&gt;
   Se han parametrizado todos los valores de configuración, como la velocidad de refresco, el factor senoidal, las condiciones de contorno o la longitud del dominio, con el fin de facilitar su uso en tiempo de ejecución y que de esa manera sea más sencillo evaluar las condiciones de estabilidad (atendiendo sobre todo a los términos de Courant y D*).
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;text-align: center; display: block;&quot;&gt;&lt;a href=&quot;http://vientofuerte.wordpress.com/2009/01/09/simulacion-de-olas/&quot;&gt;&lt;img src=&quot;http://img.youtube.com/vi/ODpd38nN-Ps/2.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;

&lt;a href=&quot;http://vientofuerte.wordpress.com/2009/01/09/simulacion-de-olas/aa_6/&quot; title=&quot;aa_6&quot;&gt;&lt;img src=&quot;http://vientofuerte.files.wordpress.com/2009/01/aa_6.jpg?w=150&amp;amp;h=112&quot; title=&quot;aa_6&quot; height=&quot;112&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://vientofuerte.wordpress.com/2009/01/09/simulacion-de-olas/aa_1/&quot; title=&quot;aa_1&quot;&gt;&lt;img src=&quot;http://vientofuerte.files.wordpress.com/2009/01/aa_1.jpg?w=150&amp;amp;h=112&quot; title=&quot;aa_1&quot; height=&quot;112&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://vientofuerte.wordpress.com/2009/01/09/simulacion-de-olas/aa_2/&quot; title=&quot;aa_2&quot;&gt;&lt;img src=&quot;http://vientofuerte.files.wordpress.com/2009/01/aa_2.jpg?w=150&amp;amp;h=112&quot; title=&quot;aa_2&quot; height=&quot;112&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://vientofuerte.wordpress.com/2009/01/09/simulacion-de-olas/aa_3/&quot; title=&quot;aa_3&quot;&gt;&lt;img src=&quot;http://vientofuerte.files.wordpress.com/2009/01/aa_3.jpg?w=150&amp;amp;h=112&quot; title=&quot;aa_3&quot; height=&quot;112&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://vientofuerte.wordpress.com/2009/01/09/simulacion-de-olas/aa_4/&quot; title=&quot;aa_4&quot;&gt;&lt;img src=&quot;http://vientofuerte.files.wordpress.com/2009/01/aa_4.jpg?w=150&amp;amp;h=112&quot; title=&quot;aa_4&quot; height=&quot;112&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://vientofuerte.wordpress.com/2009/01/09/simulacion-de-olas/aa_5/&quot; title=&quot;aa_5&quot;&gt;&lt;img src=&quot;http://vientofuerte.files.wordpress.com/2009/01/aa_5.jpg?w=150&amp;amp;h=112&quot; title=&quot;aa_5&quot; height=&quot;112&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/vientofuerte.wordpress.com/256/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/vientofuerte.wordpress.com/256/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/vientofuerte.wordpress.com/256/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/vientofuerte.wordpress.com/256/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/vientofuerte.wordpress.com/256/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/vientofuerte.wordpress.com/256/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/vientofuerte.wordpress.com/256/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/vientofuerte.wordpress.com/256/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/vientofuerte.wordpress.com/256/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/vientofuerte.wordpress.com/256/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=vientofuerte.wordpress.com&amp;amp;blog=5447520&amp;amp;post=256&amp;amp;subd=vientofuerte&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 09 Jan 2009 02:20:07 +0000</pubDate>
</item>
<item>
	<title>Viento fuerte: APO HomeWork 3</title>
	<guid>http://vientofuerte.wordpress.com/?p=252</guid>
	<link>http://vientofuerte.wordpress.com/2009/01/09/apo-homework-3/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p align=&quot;justify&quot;&gt;
Aquí tocaba jugar un poco con animación Skelética (bones, smooth deformation, rigging …) y para endulzar un poco el video, he utilizado un plugin de generación de fuego en el que estaba trabajando.
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;text-align: center; display: block;&quot;&gt;&lt;a href=&quot;http://vientofuerte.wordpress.com/2009/01/09/apo-homework-3/&quot;&gt;&lt;img src=&quot;http://img.youtube.com/vi/eQ7_pAaJtNk/2.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/vientofuerte.wordpress.com/252/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/vientofuerte.wordpress.com/252/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/vientofuerte.wordpress.com/252/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/vientofuerte.wordpress.com/252/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/vientofuerte.wordpress.com/252/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/vientofuerte.wordpress.com/252/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/vientofuerte.wordpress.com/252/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/vientofuerte.wordpress.com/252/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/vientofuerte.wordpress.com/252/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/vientofuerte.wordpress.com/252/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=vientofuerte.wordpress.com&amp;amp;blog=5447520&amp;amp;post=252&amp;amp;subd=vientofuerte&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 09 Jan 2009 02:15:24 +0000</pubDate>
</item>
<item>
	<title>Viento fuerte: APO HomeWork 2</title>
	<guid>http://vientofuerte.wordpress.com/?p=247</guid>
	<link>http://vientofuerte.wordpress.com/2009/01/09/apo-homework-2/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p align=&quot;justify&quot;&gt;
Mediante este trabajo se aplican los algoritmos vistos en clase sobre deformaciones, se han aplicado entre otros volumens de revolución, twist, taper y free form deformation. Además he jugado un poquito con sistemas de partículas y naturalmente keyframes para fabricar la animación.&lt;br /&gt;
&lt;strong&gt;Influencias:&lt;/strong&gt;Clipper de fresa (refresco riquísimo de mi tierra) Dead Note, serie anime altamente recomendable, de donde se ha extraido parte de la BSO.-&amp;gt; (Clipper de fresa + Dead Note) = Clipper Note &lt;img src=&quot;http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; .&lt;/p&gt;
&lt;p&gt;
&lt;span style=&quot;text-align: center; display: block;&quot;&gt;&lt;a href=&quot;http://vientofuerte.wordpress.com/2009/01/09/apo-homework-2/&quot;&gt;&lt;img src=&quot;http://img.youtube.com/vi/_XOBE-TXQUQ/2.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/vientofuerte.wordpress.com/247/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/vientofuerte.wordpress.com/247/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/vientofuerte.wordpress.com/247/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/vientofuerte.wordpress.com/247/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/vientofuerte.wordpress.com/247/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/vientofuerte.wordpress.com/247/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/vientofuerte.wordpress.com/247/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/vientofuerte.wordpress.com/247/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/vientofuerte.wordpress.com/247/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/vientofuerte.wordpress.com/247/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=vientofuerte.wordpress.com&amp;amp;blog=5447520&amp;amp;post=247&amp;amp;subd=vientofuerte&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 09 Jan 2009 02:09:50 +0000</pubDate>
</item>
<item>
	<title>Viento fuerte: Trazador de rayos</title>
	<guid>http://vientofuerte.wordpress.com/?p=129</guid>
	<link>http://vientofuerte.wordpress.com/2009/01/09/trazador-de-rayos/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p align=&quot;justify&quot;&gt;Este proyecto es una toma de contacto con los métodos de iluminación global, para la que se ha desarrollado un trazador de rayos muy simplificado, en lenguaje Java, partiendo de un pequeño framework con las funcionalidades básicas que no son de trazado de rayos (importación de   ficheros, generación de imágens …), con el fin de centrar los esfuerzos en lo que es en si desarrollar un raytracer.&lt;br /&gt;
Estas son algunas de las “features” que posee nuestro trazador de rayos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Algoritmicas
&lt;ul&gt;
&lt;li&gt;Trazador de rayos básico&lt;/li&gt;
&lt;li&gt;SuperSampling&lt;/li&gt;
&lt;li&gt;Sombras&lt;/li&gt;
&lt;li&gt;Reflexiones&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Geométricas
&lt;ul&gt;
&lt;li&gt;Esferas&lt;/li&gt;
&lt;li&gt;Triángulos&lt;/li&gt;
&lt;li&gt;Toroides&lt;/li&gt;
&lt;li&gt;Cubos alineados a los ejes&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Materiales
&lt;ul&gt;
&lt;li&gt;Lambertiano (mate)&lt;/li&gt;
&lt;li&gt;Phong&lt;/li&gt;
&lt;li&gt;ShinyPhong&lt;/li&gt;
&lt;li&gt;Transparente&lt;/li&gt;
&lt;li&gt;Refractario&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Luces
&lt;ul&gt;
&lt;li&gt;Luces puntuales: Permitiendo atenuación con la distancia&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Optimizaciones
&lt;ul&gt;
&lt;li&gt;Uso de bounding-boxes alineados a los ejes&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;a href=&quot;http://vientofuerte.wordpress.com/2009/01/09/trazador-de-rayos/raytracer_1/&quot; title=&quot;raytracer_1&quot;&gt;&lt;img src=&quot;http://vientofuerte.files.wordpress.com/2008/12/raytracer_1.png?w=150&amp;amp;h=150&quot; title=&quot;raytracer_1&quot; height=&quot;150&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://vientofuerte.wordpress.com/2009/01/09/trazador-de-rayos/raytracer_2/&quot; title=&quot;raytracer_2&quot;&gt;&lt;img src=&quot;http://vientofuerte.files.wordpress.com/2008/12/raytracer_2.png?w=150&amp;amp;h=150&quot; title=&quot;raytracer_2&quot; height=&quot;150&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://vientofuerte.wordpress.com/2009/01/09/trazador-de-rayos/raytracer_3/&quot; title=&quot;raytracer_3&quot;&gt;&lt;img src=&quot;http://vientofuerte.files.wordpress.com/2008/12/raytracer_3.png?w=150&amp;amp;h=150&quot; title=&quot;raytracer_3&quot; height=&quot;150&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://vientofuerte.wordpress.com/2009/01/09/trazador-de-rayos/raytracer_4/&quot; title=&quot;raytracer_4&quot;&gt;&lt;img src=&quot;http://vientofuerte.files.wordpress.com/2008/12/raytracer_4.png?w=150&amp;amp;h=150&quot; title=&quot;raytracer_4&quot; height=&quot;150&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://vientofuerte.wordpress.com/2009/01/09/trazador-de-rayos/raytracer_5/&quot; title=&quot;raytracer_5&quot;&gt;&lt;img src=&quot;http://vientofuerte.files.wordpress.com/2008/12/raytracer_5.png?w=150&amp;amp;h=150&quot; title=&quot;raytracer_5&quot; height=&quot;150&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://vientofuerte.wordpress.com/2009/01/09/trazador-de-rayos/raytracer_6/&quot; title=&quot;raytracer_6&quot;&gt;&lt;img src=&quot;http://vientofuerte.files.wordpress.com/2008/12/raytracer_6.png?w=150&amp;amp;h=150&quot; title=&quot;raytracer_6&quot; height=&quot;150&quot; width=&quot;150&quot; alt=&quot;&quot; class=&quot;attachment-thumbnail&quot; /&gt;&lt;/a&gt;

&lt;p&gt;El team para este proyecto hemos sido: Pablo Quesada Barriuso, Ricardo Suárez Mesa y &lt;a href=&quot;http://vientofuerte.wordpress.com/about/&quot;&gt;un servidor&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Agradecimentos a JJ: “Cuando todo falla, lo mejor es volver al origen”.&lt;/p&gt;
  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/vientofuerte.wordpress.com/129/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/vientofuerte.wordpress.com/129/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/vientofuerte.wordpress.com/129/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/vientofuerte.wordpress.com/129/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/vientofuerte.wordpress.com/129/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/vientofuerte.wordpress.com/129/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/vientofuerte.wordpress.com/129/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/vientofuerte.wordpress.com/129/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/vientofuerte.wordpress.com/129/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/vientofuerte.wordpress.com/129/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=vientofuerte.wordpress.com&amp;amp;blog=5447520&amp;amp;post=129&amp;amp;subd=vientofuerte&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 09 Jan 2009 01:53:28 +0000</pubDate>
</item>
<item>
	<title>Orangemachine: Animación Avanzada – Simulación de Olas</title>
	<guid>http://orangemachine.wordpress.com/?p=74</guid>
	<link>http://orangemachine.wordpress.com/2008/11/22/aa-simulacion-de-olas/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;Siguiendo con la serie de trabajos realizados en el Máster de Informática Gráfica, el siguiente ejemplo consiste en resolver la ecuación de transporte convectivo con difusión en dos dimensiones. De esta manera intentaremos reproducir una onda que se propaga a través de un dominio rectangular y que a su vez se va amortiguando&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-74&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;text-align: center; display: block;&quot;&gt;&lt;a href=&quot;http://orangemachine.wordpress.com/2008/11/22/aa-simulacion-de-olas/&quot;&gt;&lt;img src=&quot;http://img.youtube.com/vi/ua31k6d5a0c/2.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;En general el esquema es estable para la parte de convección cuando 0 &amp;lt; Courant &amp;lt;= 1, y para la parte de difusión cuando 0 &amp;lt;= D* &amp;lt;= 0.5. Hay que recordar que cualquier método introduce una difusión “artificial” debido al propio método, y que no tiene explicación física.&lt;/p&gt;
&lt;p&gt;En este estudio, los valores apropiados para que el sistema sea estable han sido C = 0.50 y D* = 0.25.&lt;/p&gt;
&lt;h2&gt;Downloads&lt;/h2&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;- &lt;a href=&quot;http://www.box.net/shared/b8uhhu661d&quot; title=&quot;AA Simulacion-Olas&quot;&gt;AA – Simulación Olas&lt;/a&gt; &lt;em&gt;(rar)&lt;/em&gt;.&lt;/p&gt;
&lt;h2&gt;Entorno de desarrollo&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;Framework:&lt;/em&gt; Eclipse CDT &amp;amp; Qt Integration&lt;br /&gt;
&lt;em&gt;Code:&lt;/em&gt; C++, Qt 4.4.3, LibQGLViewer 2.3.1&lt;/p&gt;&lt;/blockquote&gt;
  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/orangemachine.wordpress.com/74/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/orangemachine.wordpress.com/74/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/orangemachine.wordpress.com/74/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/orangemachine.wordpress.com/74/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/orangemachine.wordpress.com/74/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/orangemachine.wordpress.com/74/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/orangemachine.wordpress.com/74/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/orangemachine.wordpress.com/74/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/orangemachine.wordpress.com/74/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/orangemachine.wordpress.com/74/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=orangemachine.wordpress.com&amp;amp;blog=3467538&amp;amp;post=74&amp;amp;subd=orangemachine&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 22 Nov 2008 20:19:38 +0000</pubDate>
</item>
<item>
	<title>Vanilla Iq: Leizex</title>
	<guid>http://iquilezles.org/prods/index.htm#leizex</guid>
	<link>http://iquilezles.org/prods/index.htm#leizex</link>
	<description>4k graphics for fun</description>
	<pubDate>Sun, 05 Oct 2008 06:00:00 +0000</pubDate>
</item>
<item>
	<title>Vanilla Iq: Organix</title>
	<guid>http://iquilezles.org/prods/index.htm#organix</guid>
	<link>http://iquilezles.org/prods/index.htm#organix</link>
	<description>4k graphics for Function</description>
	<pubDate>Thu, 25 Sep 2008 06:00:00 +0000</pubDate>
</item>

</channel>
</rss>
