Primeros pasos con Ogre 3D 1.0.6
Bueno el ogre es un engine para trabajar con 3D (creo que funciona ademas de para C++ para Python) libre, bueno para mas informacion el articulo de ogre 3D en la wikipedia inglesa.
Pues no se si me vuelto muy sibarita por usar librerias como Gtk o SDL pero me aconstumbrado a una buena documentacion :P, y estos del Ogre pese a que usan wiki parece que mantener documentacion de antiguas versiones, marcar las cosas deprecadas con deprecated parece que esto no va con ellos :P, porque es muy sufrido trabajar e incluso comenzar a aprender Ogre con unas librerias obsoletas como las 1.0.6 (que son las que vienen en los repositorios oficiales de Ubuntu). Y quiza algun puñado de ejemplos tontunos si que seria interesante, asique aqui va un poco mis primeros pasos.
Quiza el primer cambio es que:
SceneManager* mSceneManager = mRoot->createSceneManager(ST_GENERIC,"sceneManager");
en la version antigua es:
SceneManager* mSceneManager = mRoot->getSceneManager(ST_GENERIC);
Por lo demas no avanzado tanto como para seguir informando de como va el tema. Aunque para compilar es otro suplicio, saque la informacion mezclando lo que saque de un foro, el wiki y conceptos previos y es tal que asi:
En ubuntu y Debian hay un comando muy interesante que se llamag pkg-config y este vale para muchas cosas pero en nuestro caso se puede usar para sacar informacion de como se compila con OGRE y en mi caso sale esto:
pkg-config --libs OGRE -lOgreMain pkg-config --cflags OGRE -DEXT_HASH -I/usr/include/OGRE
Ya tenemos opciones del compilador para el ogre y una linea de compilador es tal que asi:
g++ pruebaOgre.cpp -o pruebaOgre -lOgreMain -DEXT_HASH -I/usr/include/OGRE
Y bueno aqui el codigo fuente tontuno que funciona…no hace nada solo compila pero al menos se ve algo, la ventana de eleccion del sistema de render:
#include <Ogre.h>
#include <OgreErrorDialog.h>
using namespace Ogre;
using namespace std;
int main(int, char **)
{
try
{
Root* mRoot = new Root("","","");
if (!mRoot->restoreConfig())
{
if (!mRoot->showConfigDialog())
{
return 1;
}
}
RenderWindow* mWindow = mRoot->initialise(true,"Application");
SceneManager* mSceneManager = mRoot->getSceneManager(ST_GENERIC);
Camera* mCamera = mSceneManager->createCamera("Camera");
mCamera->setPosition(Vector3(0.0f,0.0f,500.0f));
mCamera->lookAt(Vector3(0.0f,0.0f,0.0f));
mCamera->setNearClipDistance(5.0f);
mCamera->setFarClipDistance(5000.0f);
Viewport* mViewport = mWindow->addViewport(mCamera);
mViewport->setBackgroundColour(ColourValue(0.0f,0.0f,0.0f));
mCamera->setAspectRatio(Real(mViewport->getActualWidth())
/Real(mViewport->getActualHeight()));
mRoot->startRendering();
delete mRoot;
} catch (Exception& e)
{
ErrorDialog* dlg = PlatformManager::getSingleton().createErrorDialog();
dlg->display(e.getFullDescription());
delete dlg;
return 1;
}
return 0;
}
El ejemplo lo he sacado de Xadeck on Ogre: Tutorial 1 simplificando un poco (un poco bastante xD) el codigo.
Y aqui teneis el resultado, la pantalla de ogre para elegir el sistema de “rendeo”.

Y bueno hasta aqui he llegado en este dia y medio de comenzar con Ogre…aun recuerdo cuando empeze con las SDL….y aun recuerdo cuando empeze con Basic xD.
A ver si avanzo algo mas y voy comunicandolo aqui, mas o menos el siguiente paso sera enterarse un poco de la sintaxis de Ogre.
Por: MD | Consejos, Trucos y Tutoriales | Comentarios (0) | Referencias ()






Ante todo esto son pequeños apuntes de Python, os recomendaria no seguirme a mi y seguir algun tutorial decente (este de 




