<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>To Game or not to Game &#187; Ogre</title>
	<atom:link href="http://www.aserrano.com/category/motores-3d/ogre/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.aserrano.com</link>
	<description>Hablando de juegos y de todo un poco</description>
	<lastBuildDate>Mon, 08 Feb 2010 17:32:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ogre 1.7:  Características y novedades</title>
		<link>http://www.aserrano.com/2009/12/31/ogre-1-7-caracteristicas/</link>
		<comments>http://www.aserrano.com/2009/12/31/ogre-1-7-caracteristicas/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 17:02:43 +0000</pubDate>
		<dc:creator>Antonio Serrano</dc:creator>
				<category><![CDATA[Ogre]]></category>
		<category><![CDATA[ogre3d]]></category>

		<guid isPermaLink="false">http://www.aserrano.com/?p=284</guid>
		<description><![CDATA[Hoy se ha publicado la lista de características de Ogre 1.7 RC1
La verdad es que la lista en cuestión viene cargada de auténticas novedades.
Disfrutarla y Feliz Año Nuevo!!
]]></description>
			<content:encoded><![CDATA[<p>Hoy se ha publicado la <a href="http://ogre.svn.sourceforge.net/viewvc/ogre/trunk/Docs/ChangeLog.html?revision=9523&#038;pathrev=9523" target="_blank">lista</a> de características de Ogre 1.7 RC1</p>
<p>La verdad es que la lista en cuestión viene cargada de auténticas novedades.</p>
<p>Disfrutarla y Feliz Año Nuevo!!</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.aserrano.com%2F2009%2F12%2F31%2Fogre-1-7-caracteristicas%2F&amp;linkname=Ogre%201.7%3A%20%20Caracter%C3%ADsticas%20y%20novedades"><img src="http://www.aserrano.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.aserrano.com/2009/12/31/ogre-1-7-caracteristicas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ogre3D 1.7: como instalarlo</title>
		<link>http://www.aserrano.com/2009/11/29/ogre3d-1-7-como-instalarlo/</link>
		<comments>http://www.aserrano.com/2009/11/29/ogre3d-1-7-como-instalarlo/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 08:26:26 +0000</pubDate>
		<dc:creator>Antonio Serrano</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Informática]]></category>
		<category><![CDATA[Motores 3D]]></category>
		<category><![CDATA[Ogre]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ogre3d]]></category>

		<guid isPermaLink="false">http://www.aserrano.com/?p=260</guid>
		<description><![CDATA[Lo primero que hay mencionar es que a día de creación de este artículo la versión 1.7 todavía está en fase de desarrollo y por tanto puede ser inestable o sufrir cambios o modificaciones.
Vamos a utilizar Ubuntu Linux 9.10 pero para cualquier sistema operativo los pasos serían similares.
Antes que nada habría que instalar todas las [...]]]></description>
			<content:encoded><![CDATA[<p>Lo primero que hay mencionar es que a día de creación de este artículo la versión 1.7 todavía está en fase de desarrollo y por tanto puede ser inestable o sufrir cambios o modificaciones.</p>
<p>Vamos a utilizar Ubuntu Linux 9.10 pero para cualquier sistema operativo los pasos serían similares.</p>
<p>Antes que nada habría que instalar todas las dependencias que nos van a hacer falta:</p>
<p><strong>cmake</strong>&#8211;> como novedad ogre 1.7 usa ahora cmake para su compilación<br />
<strong>libfreeimage3</strong>&#8211;> librería gratuita para acceder a ficheros gráficos como jpeg o png<br />
<strong>libboost</strong> &#8211;> son opcionales, aunque yo os recomiendo su uso<br />
<strong>libzzip-dev</strong>&#8211;> librería para acceder a ficheros zip. Fundamental si queremos compilar los ejemplos.<br />
<strong>subversion</strong>&#8211;> cliente subversion para poder bajar el código fuente de los repositorios ogre3d</p>
<p>Instalamos todas las dependencias con nuestro gestor de paquetes habitual, aptitude, synaptic, apt-get, etc. y bajamos el código fuente:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> directorio_donde_queramos_los_fuentes
<span style="color: #c20cb9; font-weight: bold;">svn</span> <span style="color: #c20cb9; font-weight: bold;">co</span> https:<span style="color: #000000; font-weight: bold;">//</span>svn.ogre3d.org<span style="color: #000000; font-weight: bold;">/</span>svnroot<span style="color: #000000; font-weight: bold;">/</span>ogre<span style="color: #000000; font-weight: bold;">/</span>trunk ogre</pre></div></div>

<p>Una vez descargado tenemos dos opciones.</p>
<p>La del impaciente. Vamos al directorio ogre y tecleamos lo siguiente:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">cmake <span style="color: #660033;">-G</span> <span style="color: #ff0000;">&quot;Unix Makefiles&quot;</span>
<span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #660033;">-j2</span></pre></div></div>

<p>El primer comando nos genera los ficheros makefile y el segundo los compila. Recuerda que el número -j2 indica los procesos que quieres usar. Si tienes un dual core. Puedes poner 3 ó 4 por ejemplo.</p>
<p>La siguiente opción sería usar cmake-gui.<br />
Una vez que cargue el frontal cmake, en la parte superior indicaremos el directorio donde tenemos el código fuente.<br />
En la siguiente caja indicaremos donde queremos compilarlo.<br />
Podéis poner el mismo trayecto.</p>
<p>Pinchamos sobre configure y luego sobre generate y ya podríamos compilar con &#8220;make&#8221;</p>
<p><a href="http://www.aserrano.com/2009/11/29/ogre3d-1-7-como-instalarlo/pantallazo-cmake-2-6-patch-4/" rel="attachment wp-att-268"><img src="http://www.aserrano.com/wp-content/uploads/2009/11/Pantallazo-CMake-2.6-patch-4-300x235.png" alt="CMake Gui 2.6" title="CMake Gui 2.6" width="300" height="235" class="alignnone size-medium wp-image-268" /></a></p>
<p>Las opciones del diálogo tienen su propia ayuda, pero como más destacable vamos a mencionar CMAKE_BUILD_TYPE, en la que podríamos usar los siguientes parámetros:</p>
<p>Debug  &#8211;>  Compila Ogre3D en modo depuración<br />
Release &#8211;> Compilación para ejecución óptima<br />
RelWithDebInfo  &#8211;> Compilación para ejecución óptima pero con información de depuración incluida.<br />
MinSizeRel  &#8211;> Ejecución óptima pero de mínimo tamaño.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.aserrano.com%2F2009%2F11%2F29%2Fogre3d-1-7-como-instalarlo%2F&amp;linkname=Ogre3D%201.7%3A%20como%20instalarlo"><img src="http://www.aserrano.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.aserrano.com/2009/11/29/ogre3d-1-7-como-instalarlo/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tutorial Ogre3D: Creación de un proyecto paso por paso (y IV)</title>
		<link>http://www.aserrano.com/2009/10/31/tutorial-ogre3d-creacion-de-un-proyecto-paso-por-paso-y-iv/</link>
		<comments>http://www.aserrano.com/2009/10/31/tutorial-ogre3d-creacion-de-un-proyecto-paso-por-paso-y-iv/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 08:59:01 +0000</pubDate>
		<dc:creator>Antonio Serrano</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Juegos]]></category>
		<category><![CDATA[Motores 3D]]></category>
		<category><![CDATA[Ogre]]></category>

		<guid isPermaLink="false">http://www.aserrano.com/?p=212</guid>
		<description><![CDATA[Recientemente google ha baneado mi página, me han bajado el PageRank de 2 a 0 y paulatinamente están bajando mis páginas indexadas.
Lo mejor o peor de la situación es que yo no he hecho nada, así que he decidido que no tengo ganas de seguir peleando ni escribiendo, ¿para qué? nadie lo iba a poder [...]]]></description>
			<content:encoded><![CDATA[<p>Recientemente google ha baneado mi página, me han bajado el PageRank de 2 a 0 y paulatinamente están bajando mis páginas indexadas.</p>
<p>Lo mejor o peor de la situación es que yo no he hecho nada, así que he decidido que no tengo ganas de seguir peleando ni escribiendo, ¿para qué? nadie lo iba a poder leer de todas formas:</p>
<p>Adjunto el listado del mini frame listener para terminar los artículos, si es que hay alguien que me sigue:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">class</span> MyFrameListener<span style="color: #008080;">:</span> <span style="color: #0000ff;">public</span> FrameListener <span style="color: #008000;">&#123;</span>
&nbsp;
<span style="color: #0000ff;">public</span><span style="color: #008080;">:</span>
&nbsp;
	<span style="color: #666666;">// ctor/dtor</span>
	MyFrameListener<span style="color: #008000;">&#40;</span>RenderWindow<span style="color: #000040;">*</span> win<span style="color: #008000;">&#41;</span> <span style="color: #008080;">:</span> mWindow<span style="color: #008000;">&#40;</span>win<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span>
		OIS<span style="color: #008080;">::</span><span style="color: #007788;">ParamList</span> pl<span style="color: #008080;">;</span>
		<span style="color: #0000ff;">size_t</span> windowHnd <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
		std<span style="color: #008080;">::</span><span style="color: #007788;">ostringstream</span> windowHndStr<span style="color: #008080;">;</span>
&nbsp;
		m_timeElapsed <span style="color: #000080;">=</span> <span style="color:#800080;">0.0f</span><span style="color: #008080;">;</span>
&nbsp;
		win<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>getCustomAttribute<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;WINDOW&quot;</span>, <span style="color: #000040;">&amp;</span>windowHnd<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
		windowHndStr <span style="color: #000080;">&lt;&lt;</span> windowHnd<span style="color: #008080;">;</span>
		pl.<span style="color: #007788;">insert</span><span style="color: #008000;">&#40;</span>std<span style="color: #008080;">::</span><span style="color: #007788;">make_pair</span><span style="color: #008000;">&#40;</span>std<span style="color: #008080;">::</span><span style="color: #007788;">string</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;WINDOW&quot;</span><span style="color: #008000;">&#41;</span>, windowHndStr.<span style="color: #007788;">str</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
		mInputManager <span style="color: #000080;">=</span> OIS<span style="color: #008080;">::</span><span style="color: #007788;">InputManager</span><span style="color: #008080;">::</span><span style="color: #007788;">createInputSystem</span><span style="color: #008000;">&#40;</span>pl<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
		mKeyboard
				<span style="color: #000080;">=</span> <span style="color: #0000ff;">static_cast</span><span style="color: #000080;">&lt;</span>OIS<span style="color: #008080;">::</span><span style="color: #007788;">Keyboard</span><span style="color: #000040;">*</span><span style="color: #000080;">&gt;</span> <span style="color: #008000;">&#40;</span>mInputManager<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>createInputObject<span style="color: #008000;">&#40;</span>
						OIS<span style="color: #008080;">::</span><span style="color: #007788;">OISKeyboard</span>, <span style="color: #0000ff;">false</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #008000;">&#125;</span>
	<span style="color: #0000ff;">virtual</span> ~MyFrameListener<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
	<span style="color: #008000;">&#125;</span>
&nbsp;
	<span style="color: #666666;">// We will provide some meat to this method override</span>
	<span style="color: #0000ff;">virtual</span> <span style="color: #0000ff;">bool</span> frameStarted<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> FrameEvent <span style="color: #000040;">&amp;</span>evt<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
	<span style="color: #666666;">// We do not need to provide a body for either of these methods, since</span>
	<span style="color: #666666;">// Ogre provides a default implementation that does just this. However, for</span>
	<span style="color: #666666;">// the sake of illustration, we'll provide one here.</span>
	<span style="color: #0000ff;">virtual</span> <span style="color: #0000ff;">bool</span> frameEnded<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> FrameEvent <span style="color: #000040;">&amp;</span>evt<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
		<span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span>
	<span style="color: #008000;">&#125;</span>
	<span style="color: #0000ff;">virtual</span> <span style="color: #0000ff;">bool</span> processUnbufferedKeyInput<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> FrameEvent<span style="color: #000040;">&amp;</span> evt<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
&nbsp;
		<span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>mWindow<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>isClosed<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span>
		<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>mKeyboard<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>isKeyDown<span style="color: #008000;">&#40;</span>OIS<span style="color: #008080;">::</span><span style="color: #007788;">KC_ESCAPE</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #666666;">//si pulsamos escape salimos de la aplicacion</span>
			<span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span>
&nbsp;
		<span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span>
	<span style="color: #008000;">&#125;</span>
&nbsp;
	<span style="color: #666666;">// Override frameRenderingQueued event to process that (don't care about frameEnded)</span>
	<span style="color: #0000ff;">bool</span> frameRenderingQueued<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> FrameEvent<span style="color: #000040;">&amp;</span> evt<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
		mKeyboard<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>capture<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
		<span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span> <span style="color: #000040;">!</span>mKeyboard<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>buffered<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#41;</span>
			<span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span> processUnbufferedKeyInput<span style="color: #008000;">&#40;</span>evt<span style="color: #008000;">&#41;</span> <span style="color: #000080;">==</span> <span style="color: #0000ff;">false</span> <span style="color: #008000;">&#41;</span>
				<span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span>
&nbsp;
		<span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span>
	<span style="color: #008000;">&#125;</span>
<span style="color: #0000ff;">protected</span><span style="color: #008080;">:</span>
	OIS<span style="color: #008080;">::</span><span style="color: #007788;">InputManager</span><span style="color: #000040;">*</span> mInputManager<span style="color: #008080;">;</span>
	OIS<span style="color: #008080;">::</span><span style="color: #007788;">Keyboard</span><span style="color: #000040;">*</span> mKeyboard<span style="color: #008080;">;</span>
	RenderWindow<span style="color: #000040;">*</span> mWindow<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">private</span><span style="color: #008080;">:</span>
	<span style="color: #0000ff;">float</span> m_timeElapsed<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">bool</span> MyFrameListener<span style="color: #008080;">::</span><span style="color: #007788;">frameStarted</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> FrameEvent <span style="color: #000040;">&amp;</span>evt<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
&nbsp;
	m_timeElapsed <span style="color: #000040;">+</span><span style="color: #000080;">=</span> evt.<span style="color: #007788;">timeSinceLastFrame</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #008000;">&#125;</span></pre></div></div>

<p><a href="http://www.aserrano.com/2009/10/28/ogre3d-creacion-de-un-proyecto-paso-por-paso-iii/"><br />
Ogre3D: Paso a paso III</a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.aserrano.com%2F2009%2F10%2F31%2Ftutorial-ogre3d-creacion-de-un-proyecto-paso-por-paso-y-iv%2F&amp;linkname=Tutorial%20Ogre3D%3A%20Creaci%C3%B3n%20de%20un%20proyecto%20paso%20por%20paso%20%28y%20IV%29"><img src="http://www.aserrano.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.aserrano.com/2009/10/31/tutorial-ogre3d-creacion-de-un-proyecto-paso-por-paso-y-iv/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Tutorial Ogre3D: Creación de un proyecto paso por paso (III)</title>
		<link>http://www.aserrano.com/2009/10/28/ogre3d-creacion-de-un-proyecto-paso-por-paso-iii/</link>
		<comments>http://www.aserrano.com/2009/10/28/ogre3d-creacion-de-un-proyecto-paso-por-paso-iii/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 20:32:20 +0000</pubDate>
		<dc:creator>Antonio Serrano</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Juegos]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Motores 3D]]></category>
		<category><![CDATA[Ogre]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[engine 3d]]></category>
		<category><![CDATA[ogre3d]]></category>

		<guid isPermaLink="false">http://www.aserrano.com/?p=183</guid>
		<description><![CDATA[Una vez inicializado Ogre Procederemos a la creación de la ventana y del SceneManager.
Recordemos que el gestor del escenario es un plugin especializado según el tipo de escenario y pueden ser de los siguientes tipos:

ST_GENERIC: Escenarios de propósito general
ST_EXTERIOR_CLOSE:  Escenarios de exteriores de visibilidad media
ST_EXTERIOR_FAR: Practicamente no usado
ST_EXTERIOR_REAL_FAR: Escenarios de paisajes con grandes terrenos
ST_INTERIOR: [...]]]></description>
			<content:encoded><![CDATA[<p>Una vez inicializado Ogre Procederemos a la creación de la ventana y del SceneManager.</p>
<p>Recordemos que el gestor del escenario es un plugin especializado según el tipo de escenario y pueden ser de los siguientes tipos:</p>
<ul>
<li>ST_GENERIC: Escenarios de propósito general</li>
<li>ST_EXTERIOR_CLOSE:  Escenarios de exteriores de visibilidad media</li>
<li>ST_EXTERIOR_FAR: Practicamente no usado</li>
<li>ST_EXTERIOR_REAL_FAR: Escenarios de paisajes con grandes terrenos</li>
<li>ST_INTERIOR: Escenarios de interior, por ejemplo, edificios.</li>
</ul>
<p>Veamos ya como crearlo:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">mRoot<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>initialise<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">true</span>, <span style="color: #FF0000;">&quot;Mi Ventana&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>	
&nbsp;
RenderWindow<span style="color: #000040;">*</span> window <span style="color: #000080;">=</span> mRoot<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>getAutoCreatedWindow<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
SceneManager <span style="color: #000040;">*</span>sceneMgr <span style="color: #000080;">=</span> mRoot<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>createSceneManager<span style="color: #008000;">&#40;</span>ST_GENERIC<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></div></div>

<p>A continuación crearemos la cámara que nos permitirá ver el escenario desde el ángulo y con la profundidad y distancia que queramos:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">Camera<span style="color: #000040;">*</span> cam <span style="color: #000080;">=</span> sceneMgr<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>createCamera<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Camara&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
cam<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>setNearClipDistance<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">5</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
cam<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>setFarClipDistance<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">1000</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
cam<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>setAspectRatio<span style="color: #008000;">&#40;</span>Real<span style="color: #008000;">&#40;</span><span style="color:#800080;">1.333333</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
Viewport<span style="color: #000040;">*</span> vp <span style="color: #000080;">=</span> window<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>addViewport<span style="color: #008000;">&#40;</span>cam,<span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
vp<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>setBackgroundColour<span style="color: #008000;">&#40;</span>ColourValue<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">1</span>, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></div></div>

<p>Hemos definido para la cámara los valores de distincia mínima y máxima y su relación entre el tamaño x e y de la ventana que hemos creado, 800/600.</p>
<p>Además hemos añadido un viewport a la cámara con fondo de color rojo. Podremos tener tantos como queramos pero recuerda que se ordenan mediante el parámetro z-order y sólo puede existir uno por cada valor de z-order. Los viewport definen los rectángulos donde se visualizarán el rendererizado de la cámara.</p>
<p>Crearíamos ahora el listener que se encargará del renderizado de los frames:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">MyFrameListener listener<span style="color: #008000;">&#40;</span>window<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
mRoot<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>addFrameListener<span style="color: #008000;">&#40;</span><span style="color: #000040;">&amp;</span>listener<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
mRoot<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>startRendering<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></div></div>

<p>Es importante crear el listener antes de comenzar el renderizado de la aplicación o se nos colgará.</p>
<p><a href="http://www.aserrano.com/2009/10/26/ogre3d-creacion-de-un-proyecto-paso-por-paso-ii/">Ogre3D Paso a paso II</a><br />
<a href="http://www.aserrano.com/2009/10/31/tutorial-ogre3d-creacion-de-un-proyecto-paso-por-paso-y-iv/">Ogre3D Paso a paso (y IV)</a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.aserrano.com%2F2009%2F10%2F28%2Fogre3d-creacion-de-un-proyecto-paso-por-paso-iii%2F&amp;linkname=Tutorial%20Ogre3D%3A%20Creaci%C3%B3n%20de%20un%20proyecto%20paso%20por%20paso%20%28III%29"><img src="http://www.aserrano.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.aserrano.com/2009/10/28/ogre3d-creacion-de-un-proyecto-paso-por-paso-iii/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tutorial Ogre3D: Creación de un proyecto paso por paso (II)</title>
		<link>http://www.aserrano.com/2009/10/26/ogre3d-creacion-de-un-proyecto-paso-por-paso-ii/</link>
		<comments>http://www.aserrano.com/2009/10/26/ogre3d-creacion-de-un-proyecto-paso-por-paso-ii/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 19:50:46 +0000</pubDate>
		<dc:creator>Antonio Serrano</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Motores 3D]]></category>
		<category><![CDATA[Ogre]]></category>
		<category><![CDATA[engine 3d]]></category>

		<guid isPermaLink="false">http://www.aserrano.com/?p=174</guid>
		<description><![CDATA[El primero de los tres parámetros que toma la función es el fichero de configuración de plugins.
Dicho fichero contiene los plugins que el engine 3D Ogre va a cargar en tiempo de ejecución por lo que mi recomendación es la de cargar sólo los que el proyecto vaya a usar.
Veamos el fichero de los ejemplos [...]]]></description>
			<content:encoded><![CDATA[<p>El primero de los tres parámetros que toma la función es el fichero de configuración de plugins.</p>
<p>Dicho fichero contiene los plugins que el engine 3D Ogre va a cargar en tiempo de ejecución por lo que mi recomendación es la de cargar sólo los que el proyecto vaya a usar.</p>
<p>Veamos el fichero de los ejemplos que vienen con ogre:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;"># Defines plugins to load</span>
&nbsp;
<span style="color: #339900;"># Define plugin folder</span>
PluginFolder<span style="color: #000080;">=</span>..<span style="color: #000040;">/</span>lib
&nbsp;
<span style="color: #339900;"># Define plugins</span>
<span style="color: #339900;"># Plugin=RenderSystem_Direct3D9</span>
<span style="color: #339900;"># Plugin=RenderSystem_Direct3D10</span>
 Plugin<span style="color: #000080;">=</span>RenderSystem_GL
 Plugin<span style="color: #000080;">=</span>Plugin_ParticleFX
 Plugin<span style="color: #000080;">=</span>Plugin_BSPSceneManager
 Plugin<span style="color: #000080;">=</span>Plugin_CgProgramManager
 Plugin<span style="color: #000080;">=</span>Plugin_PCZSceneManager
 Plugin<span style="color: #000080;">=</span>Plugin_OctreeZone
 Plugin<span style="color: #000080;">=</span>Plugin_OctreeSceneManager</pre></div></div>

<p>Vemos que carga el plugin que gestiona el renderizado OpenGL, el gestor de partículas, y 5 diferentes &#8220;Scene manager&#8221;, que serán los encargados de visualizar los escenarios y además cada uno está especializado en una forma de hacerlo diferente.</p>
<p>Además la línea pluginfolder indica de que directorios cargará dichos plugins que en este caso serán de la forma de una librería dinámica linux &#8220;.so&#8221;.</p>
<p>El tercer parámetro es del fichero de log de ogre muy útil para gestionar los posibles fallos de la aplicación que estamos desarrollando.</p>
<p>Si quisiesemos generar nuestro fichero de log sin usar este parámetro podríamos usar el siguiente código incluso antes de la inicialización de Ogre3D:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">LogManager<span style="color: #000040;">*</span> logmanager <span style="color: #000080;">=</span> <span style="color: #0000dd;">new</span> LogManager<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
Log<span style="color: #000040;">*</span> <span style="color: #0000dd;">log</span> <span style="color: #000080;">=</span> LogManager<span style="color: #008080;">::</span><span style="color: #007788;">getSingleton</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>.<span style="color: #007788;">createLog</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;logogre.log&quot;</span>,<span style="color: #0000ff;">true</span>,tru,<span style="color: #0000ff;">false</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
Root<span style="color: #000040;">*</span> mRoot<span style="color: #000080;">=</span><span style="color: #0000dd;">new</span> Root<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;plugins.cfg&quot;</span>,<span style="color: #FF0000;">&quot;ogre.cfg&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></div></div>

<p>&#8230;<a href="http://www.aserrano.com/2009/10/25/ogre3d-creacion-de-un-proyecto-paso-por-paso/">Ogre3D Paso a paso I</a>&#8230;<br />
&#8230;<a href="http://www.aserrano.com/2009/10/28/ogre3d-creacion-de-un-proyecto-paso-por-paso-iii/">Ogre3D Paso a paso III</a>&#8230;</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.aserrano.com%2F2009%2F10%2F26%2Fogre3d-creacion-de-un-proyecto-paso-por-paso-ii%2F&amp;linkname=Tutorial%20Ogre3D%3A%20Creaci%C3%B3n%20de%20un%20proyecto%20paso%20por%20paso%20%28II%29"><img src="http://www.aserrano.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.aserrano.com/2009/10/26/ogre3d-creacion-de-un-proyecto-paso-por-paso-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial Ogre3D: Creación de un proyecto paso por paso (I)</title>
		<link>http://www.aserrano.com/2009/10/25/ogre3d-creacion-de-un-proyecto-paso-por-paso/</link>
		<comments>http://www.aserrano.com/2009/10/25/ogre3d-creacion-de-un-proyecto-paso-por-paso/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 08:32:06 +0000</pubDate>
		<dc:creator>Antonio Serrano</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ogre]]></category>
		<category><![CDATA[engine 3d]]></category>

		<guid isPermaLink="false">http://www.aserrano.net/2009/10/25/ogre3d-creacion-de-un-proyecto-paso-por-paso/</guid>
		<description><![CDATA[<p>Aunque CodeBlocks tiene un template para crear tu propio proyecto, lo que pretendemos es ver de forma detallada y comprender un poco mejor como hacerlo. ... Ambas las he bajado y compilado para poder usarlas, pero valdrían perfectamente el SDK, para el ogre, y el codeblocks que viene integrado en ubuntu.</p>
]]></description>
			<content:encoded><![CDATA[<p>Para la creación de un proyecto <a href="http://www.ogre3d.org" target="_blank">Ogre3D</a> paso a paso vamos a usar Ubuntu y Codeblocks.</p>
<p>Aunque CodeBlocks tiene un template para crear tu propio proyecto, lo que pretendemos es ver de forma detallada y comprender un poco mejor como hacerlo.</p>
<p>Yo en mi caso he usado una versión de desarrollo de Ogre3D y una versión de desarrollo también de Codeblocks.</p>
<p>Ambas las he bajado y compilado para poder usarlas, pero valdrían perfectamente el SDK, para el ogre, y el codeblocks que viene integrado en ubuntu.</p>
<p>Desde codeblocks creamos un nuevo proyecto de consola, si queréis el clásico Hello World, eliminamos el cout e incluimos las cabeceras de Ogre y su espacio de nombres.</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &lt;Ogre.h&gt;;</span>
<span style="color: #0000ff;">using</span> <span style="color: #0000ff;">namespace</span> Ogre<span style="color: #008080;">;</span></pre></div></div>

<p>El primer paso en cualquier proyecto Ogre es la inicialización de las librerías en la forma</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">&nbsp;
Root<span style="color: #000040;">*</span> mRoot<span style="color: #000080;">=</span><span style="color: #0000dd;">new</span> Root<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
Root<span style="color: #000040;">*</span> mRoot<span style="color: #000080;">=</span><span style="color: #0000dd;">new</span> Root<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;ogre.cfg&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
Root<span style="color: #000040;">*</span> mRoot<span style="color: #000080;">=</span><span style="color: #0000dd;">new</span> Root<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;ogre.cfg&quot;</span>,<span style="color: #FF0000;">&quot;plugins.cfg&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
Root<span style="color: #000040;">*</span> mRoot<span style="color: #000080;">=</span><span style="color: #0000dd;">new</span> Root<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;ogre.cfg&quot;</span>,<span style="color: #FF0000;">&quot;plugins.cfg&quot;</span>,<span style="color: #FF0000;">&quot;ogre.log&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
Root<span style="color: #000040;">*</span> mRoot<span style="color: #000080;">=</span><span style="color: #0000dd;">new</span> Root<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;&quot;</span>,<span style="color: #FF0000;">&quot;&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></div></div>

<p>Cualquiera de las anteriores opciones serían perfectamente válidas, aunque yo en mi caso prefiero usar la de tres parámetros para tener una completa perspectiva de cuales son mis ficheros de configuración en uso.</p>
<p>Veamos ahora el contenido del fichero ogre.cfg, que en mi caso lo tengo de la forma siguiente</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">Render System<span style="color: #000080;">=</span>OpenGL Rendering Subsystem
&nbsp;
<span style="color: #008000;">&#91;</span>OpenGL Rendering Subsystem<span style="color: #008000;">&#93;</span>
Display Frequency<span style="color: #000080;">=</span><span style="color: #0000dd;">50</span> MHz
FSAA<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span>
Full Screen<span style="color: #000080;">=</span>No
RTT Preferred Mode<span style="color: #000080;">=</span>FBO
VSync<span style="color: #000080;">=</span>No
Video Mode<span style="color: #000080;">=</span><span style="color: #0000dd;">1024</span> x  <span style="color: #0000dd;">768</span>
sRGB Gamma Conversion<span style="color: #000080;">=</span>No</pre></div></div>

<p>Esta configuración siempre la podemos sobreescribir con una llamada al diálogo de configuración de ogre:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">&nbsp;
<span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">!</span>mRoot<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>restoreConfig<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
  mRoot<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>showConfigDialog<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  mRoot<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>saveConfig<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p><a href="http://www.aserrano.com/2009/10/26/ogre3d-creacion-de-un-proyecto-paso-por-paso-ii/">Ogre3D Paso a paso II</a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.aserrano.com%2F2009%2F10%2F25%2Fogre3d-creacion-de-un-proyecto-paso-por-paso%2F&amp;linkname=Tutorial%20Ogre3D%3A%20Creaci%C3%B3n%20de%20un%20proyecto%20paso%20por%20paso%20%28I%29"><img src="http://www.aserrano.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.aserrano.com/2009/10/25/ogre3d-creacion-de-un-proyecto-paso-por-paso/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Desarrollo de juegos: un poco de bibliografía</title>
		<link>http://www.aserrano.com/2007/12/26/desarrollo-de-juegos-un-poco-de-bibliografia/</link>
		<comments>http://www.aserrano.com/2007/12/26/desarrollo-de-juegos-un-poco-de-bibliografia/#comments</comments>
		<pubDate>Wed, 26 Dec 2007 17:07:02 +0000</pubDate>
		<dc:creator>Antonio Serrano</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Juegos]]></category>
		<category><![CDATA[Motores 3D]]></category>
		<category><![CDATA[Ogre]]></category>
		<category><![CDATA[Torque]]></category>

		<guid isPermaLink="false">http://www.aserrano.net/2007/12/26/desarrollo-de-juegos-un-poco-de-bibliografia/</guid>
		<description><![CDATA[Debemos tener presente que el desarrollo de juegos, dentro de lo que a programación se refiere, es de los desarrollos software más exigentes.
Si encima hablamos de desarrollo de juegos 3D entonces nos vamos a unos perfiles muy altos en los que el desarrollador debe tener conocimientos muy fuertes de matemáticas 3D y posiblemente un alto [...]]]></description>
			<content:encoded><![CDATA[<p>Debemos tener presente que el desarrollo de juegos, dentro de lo que a programación se refiere, es de los desarrollos software más exigentes.</p>
<p>Si encima hablamos de desarrollo de juegos 3D entonces nos vamos a unos perfiles muy altos en los que el desarrollador debe tener conocimientos muy fuertes de matemáticas 3D y posiblemente un alto nivel de C++ y algún que otro perfil que ahora veremos.</p>
<p>Voy a exponer los libros que me he leído o estoy leyendo, todos ellos en un perfecto inglés, lo que hace que sea otro requisito añadido a nuestro desarrollo.</p>
<p>Existir, existen muchos más, y desde luego cuantos más entendamos pues mejor&#8230;</p>
<p>Matemáticas:<strong>3D Math Primer for Graphics and Game Development (Fletcher Dunn and Ian Parberry)</strong></p>
<p>Este libro de matemáticas puras orientado a la programación 3D y con algoritmos en C++ es un must-have en vuestra biblioteca. Yo no lo he leído completo, si lo hubiese hecho estaría en la Nasa o algo así&#8230; <img src='http://www.aserrano.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> &#8230; pero desde luego lo tengo siempre encima de la mesa como referencia.</p>
<p>Bromas aparte este libro es simple de leer, me refiero al inglés, y si no sabéis lo que es un vector, una matriz o un quaternion, vais a tener complicado en lograr algo de éxito en vuestro proyecto, por lo que insisto, es un buen libro para tener en casa.</p>
<p>Inteligencia artificial: <strong>Programming AI Game by Example (Matt Buckland)</strong></p>
<p>El título lo dice todo, después de un breve capítulo introductorio de matemáticas aborda temas como el ataque de un bot, algoritmos de trayectos, es decir, como un bot encuentra el camino para darte dos sopapos, o incluso temas de scripting en LUA.</p>
<p>Otro libro a tener en casa.</p>
<p>Ogre: <strong>Pro Ogre 3D Programming (Gregory Junker)</strong></p>
<p>Un libro dedicado a la versión Eihort de Ogre que cubre todos los aspectos más destacados de este motor de renderizado 3D.</p>
<p>Este libro no es desarrollo de juegos en sí, sólo habla de todas las capacidades de Ogre y de como exprimirlas.</p>
<p>Como bien sabéis además Ogre se programa en C++ por lo que si sabéis C++ es lo primero que deberías aprender para poder afrontar este libro.</p>
<p>Desarrollo juegos: <strong>Game programming GEMS 6 (Varios autores, editado por Michael Dickheiser)</strong></p>
<p>Toda la saga de estos libros, notad el 6, desarrollan en varios artículos y redactados por los mejores desarrolladores de juegos del mundo, cada uno los aspectos de un juego, matemáticas, sonido, inteligencia artificial, red, etc.</p>
<p>Decid que los artículos aparte de un must-have en nuestra biblioteca cubren apartados muy difíciles del desarrollo de  un juego.</p>
<p>Por tanto, ¿es recomendable?, sí, pero requiere un alto nivel que si no se tiene se debería alcanzar antes de meternos con él.</p>
<p>Torque: <strong>3D Game Programming All in One, Second Edition (Kenneth C. Finney)</strong></p>
<p>Este libro está entero dedicado a Torque y a como desarrollar un juego sólo con el scripting que lleva el motor Torque. Decir que el libro son 850 páginas y que es un buenísimo punto de partida para empezar con Torque ya que cubre absolutamente todos los aspectos del desarrollo de un juego con Torque, desde el modelado, pasando por la red, la parte cliente, etc.</p>
<p>Torque: <strong>The Game Programmer&#8217;s Guide to Torque: Under the Hood of the Torque Game Engine (GarageGames)</strong></p>
<p>Esta es la guía oficial de GarageGames, los chicos de Torque, que hacen sobre su motor.</p>
<p>Decir que más que un libro de como afrontar cosas en Torque es una guía de referencia de su motor, por lo que os recomiendo que antes que comprar este libro comenceis con el anterior.</p>
<p><a href="http://www.cplusplus.com/" title="Desarrollo en C++" target="_blank">C++</a>: Esto no es un libro, es un enlac, pero que mínimo que poneros una referencia a como podéis empezar con C++.</p>
<p>Deciros que todos estos libros han sido adquiridos en <a href="http://www.amazon.com" target="_blank">Amazon</a>, aunque también se pueden adquirir en <a href="http://www.agapea.com" target="_blank">Agapea.</a></p>
<p>Sólo me queda mi recomendación de que si queréis afrontar un proyecto tan exigente como estos debéis de estudiar un montón y aquí tenéis un buen comienzo sólo para la parte de desarrollo.</p>
<p>El tema gráfico es otro tema con el que se deben pelear los diseñadores. <img src='http://www.aserrano.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>¡¡Feliz Año nuevo a todos!!</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.aserrano.com%2F2007%2F12%2F26%2Fdesarrollo-de-juegos-un-poco-de-bibliografia%2F&amp;linkname=Desarrollo%20de%20juegos%3A%20un%20poco%20de%20bibliograf%C3%ADa"><img src="http://www.aserrano.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.aserrano.com/2007/12/26/desarrollo-de-juegos-un-poco-de-bibliografia/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Blender: exportar modelos a Ogre</title>
		<link>http://www.aserrano.com/2007/12/19/blender-exportar-modelos-a-ogre/</link>
		<comments>http://www.aserrano.com/2007/12/19/blender-exportar-modelos-a-ogre/#comments</comments>
		<pubDate>Wed, 19 Dec 2007 18:16:52 +0000</pubDate>
		<dc:creator>Antonio Serrano</dc:creator>
				<category><![CDATA[Blender]]></category>
		<category><![CDATA[Juegos]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Motores 3D]]></category>
		<category><![CDATA[Ogre]]></category>

		<guid isPermaLink="false">http://www.aserrano.net/2007/12/19/blender-exportar-modelos-a-ogre/</guid>
		<description><![CDATA[El objetivo de este artículo es aprender a exportar modelos 3D para su posterior uso con el motor de renderizado Ogre.
Blender, como bien sabéis es una herramienta de modelado 3D. Hay gente a la que le gusta mucho, y hay gente a la que no, pero hay que reconocer que una vez aprendes algunos comandos [...]]]></description>
			<content:encoded><![CDATA[<p>El objetivo de este artículo es aprender a exportar modelos 3D para su posterior uso con el motor de renderizado Ogre.</p>
<p>Blender, como bien sabéis es una herramienta de modelado 3D. Hay gente a la que le gusta mucho, y hay gente a la que no, pero hay que reconocer que una vez aprendes algunos comandos básicos, para ser una herramiente del mundo del software libre, es simplemente una pasada.</p>
<p>Yo como buen desarrollador, tengo la misma pericia dibujando y modelando que pueda tener un camello en mitad  del desierto, pero al menos me defiendo con algunos comandos básicos.</p>
<p>Lo primero que debemos tener bien configurado es blender para su funcionamiento con python.</p>
<p>Python es un lenguaje de scripting usado en muchas aplicaciones y como base para los exportadores, importadores, modelados, etc. en blender.</p>
<p>A la hora de redactar este artículo el python que debemos instalar es el 2.5 y la versión 2.45 para blender. En el momento de la ejecución de blender, en la ventana de consola debe salir la siguiente frase que indica que blender ha sido capaz de reconocer la instalación de python:</p>
<p>&#8221; Compiled with Python version 2.5.</p>
<p>Checking for installed Python&#8230; got it!&#8221;</p>
<p>Una vez verificado que tenemos blender instalado y el lenguaje python es hora de descargar la herramienta de exportación de Ogre para blender de <a href="http://www.ogre3d.org/index.php?option=com_content&amp;task=view&amp;id=413&amp;Itemid=133" title="Ogre 3D Exporters" target="_blank">aquí</a>.</p>
<p>El fichero que descarguemos lo descomprimimos en el directorio donde están los scripts python de blender, usualmente en: &#8220;C:\Archivos de programa\Blender Foundation\Blender\.blender\scripts&#8221;</p>
<p>Una vez elaboremos nuestro modelo, esta maravillosa columna con una textura de madera, para exportarla, usando el menú de blender file&#8211;&gt;export&#8211;&gt;ogre meshes, nos aparecerá el diálogo de exportación.  Rellenamos el path donde queremos exportar el modelo, en mi caso c:\temp, activamos la opción de copiar texturas, para que nos exporte también la textura y le damos a exportar.</p>
<p><a href="http://www.aserrano.net/wp-content/uploads/2007/12/blender-export.JPG" title="Blender Export a ogre"><img src="http://www.aserrano.net/wp-content/uploads/2007/12/blender-export.thumbnail.JPG" alt="Blender Export a ogre" /></a></p>
<p>Antes de que os cortéis las venas como yo casi hago, deciros que antes de exportar desde blender deberéis aplicar las transformaciones que hayáis hecho a vuestro modelo. Para ello, desde el menu objeto de blender pulsar sobre &#8220;Apply scale/rotation&#8221;, &#8220;Apply transformation&#8221;, etc. Sino hacéis esto, posiblemente se verá vuestro modelo inicial, en mi caso un cubo.</p>
<p>Si además hubiesemos tenido la precaución de configurar dentro de las preferencias de exportación, la herramienta que convierte el formato XML al formato mesh de Ogre, OgreXMLConverter.exe, nos hubiese exportado directamente dicho mesh. Como no es nuestro caso, nos queda un último paso que sería la exportación a mesh.</p>
<p>Sino tenemos instaladas las Ogre Command line tools, nos la bajamos de <a href="http://www.ogre3d.org/index.php?option=com_content&amp;task=view&amp;id=413&amp;Itemid=133" title="Ogre Command line tools" target="_blank">aquí</a> y las instalamos.</p>
<p>Abrimos una línea de comandos en nuestro windows xp, y sólo tenemos que ejecutar la herramienta OgreXmlConverter.exe contra el fichero xml para que lo convierta en formato .mesh, tal y como se ve en el dibujo.</p>
<p><a href="http://www.aserrano.net/wp-content/uploads/2007/12/linea-comandos.JPG" title="Conviertiendo el XML a mesh"><img src="http://www.aserrano.net/wp-content/uploads/2007/12/linea-comandos.thumbnail.JPG" alt="Conviertiendo el XML a mesh" /></a></p>
<p>Ya tenemos nuestro mesh, nuestro material y texturas preparado para su uso con Ogre.</p>
<p>Si tuvieramos un modelo con animaciones en blender, el proceso sería semejante, pero nos aparecerían más opciones de exportación que os dejo a todos lectores que probéis.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.aserrano.com%2F2007%2F12%2F19%2Fblender-exportar-modelos-a-ogre%2F&amp;linkname=Blender%3A%20exportar%20modelos%20a%20Ogre"><img src="http://www.aserrano.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.aserrano.com/2007/12/19/blender-exportar-modelos-a-ogre/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
