Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: tamudo en 08 de Diciembre de 2007, 02:37:35 PM

Título: Introducción a Ogre3D
Publicado por: tamudo en 08 de Diciembre de 2007, 02:37:35 PM
hola a todos! Voy a hacer un documento de iniciación a OGRE3D (http://tamudo84.blogspot.com/2007/12/introduccin-ogre-3d.html) y aprender de paso todo lo que pueda en el camino. Para ello estoy pateando google, foros y blogs para documentarme. Y ahora recurro a vosotros, que os sigo en la clandestinidad desde hace años. Seguro que más de alguno de vosotros ha trasteado con el ogro y tiene muchas cosas que aportar, toda guía y ayuda será muy agradecida.

Mi intención es recopilar tutoriales de instalación en distintos entornos y manuales de iniciación. Así como hablar de proyectos finalizados que han hecho uso de esta librería gráfica. Aquí (http://tamudo84.googlepages.com/ResumentrabajoOgre-GonzaloTirado.pdf) podeis ver un poco el esquema de lo que quiero hacer. Si tenéis interés os iré informando cómo va evolucionando el tema. Nos vemos!
Título: Introducción a Ogre3D
Publicado por: tamudo en 30 de Diciembre de 2007, 02:42:54 AM
Vaya por dios! parece que no ha interesado mucho el tema. A ver si poniendo el primer tutorial os animáis. Pues cómo no podría ser de otro modo, el primer tuto es de la integración con un entorno de desarrollo. En este caso el elegido es Visual C++ Express 2005, pero si me da tiempo haré alguno más con code::blocks o eclipse. Me gustaría que le echarais un ojo y me comentarais que tal os parece, si añadiríais algo más, si algo no está claro o si encontráis algún gazapo.

Integración con Visual C++ Express 2005


Paso 1: Instalar Visual C++ Express 2005

Para instalarlo el primer paso es descargar el programa. Puedes hacerlo desde aquí:

http://www.microsoft.com/spanish/msdn/vstudio/express/default.mspx .  

Aunque Visual C++ 2005 en su versión Express es gratuito su uso, debes registrar tu copia de forma gratuita si quieres seguir usándola pasados 30 días. Además es necesario actualizarlo con el Service Pack 1 (VS80sp1-KB926748-X86-INTL.exe) que puedes descargar desde aquí:

http://www.microsoft.com/downloads/details.aspx?FamilyId=7B0B0339-613A-46E6-AB4D-080D4D4A8C4E&displaylang=es


Paso 2: Instalar Microsoft Platform SDK.

El siguiente paso es instalar el Microsoft Platform SDK, que es el kit de desarrollo de aplicaciones para Windows. Se puede descargar desde aquí:

http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en


Paso 3: Actualiza los directorios de Visual C++

Puedes encontrar las listas de directorios de Visual C++ siguiendo la siguiente ruta de menus: Herramientas -> Opciones -> Proyectos y soluciones -> Directorios de VC++. Allí debes añadir los siguientes:

Archivos ejecutables:       C:\Archivos de programa\Microsoft Platform SDK\Bin
Archivos de inclusión:       C:\Archivos de programa\Microsoft Platform SDK\Include
Archivos de inclusión:       C:\Archivos de programa\Microsoft Platform SDK\Include\mfc
Archivos de biblioteca:      C:\Archivos de programa\Microsoft Platform SDK\Lib


Paso 4: Actualizar el fichero 'corewin_express.vsprops'


Edita el fichero corewin_express.vsprops (Se encuentra en C:\Archivos de programa\Microsoft Visual Studio 8\VC\VCProjectDefaults) y sustituye la siguiente cadena de texto

AdditionalDependencies="kernel32.lib"

 por

AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib"

Paso 5: Habilitar el asistente de creación de aplicaciones

En Visual C++ Express el asistente de aplicaciones Windows Win32 está deshabilitado. Para habilitarlo necesitas editar el archivo 'AppSettings.htm' ( C:\Archivos de programa\Microsoft Visual Studio 8\VC\VCWizards\AppWiz\Generic\Application\html\3082\ ). Con el editor de texto debes de comentar las líneas de la 441 a la 444, poniendo // al principio de las líneas:

   // WIN_APP.disabled = true;
   // WIN_APP_LABEL.disabled = true;
   // DLL_APP.disabled = true;
   // DLL_APP_LABEL.disabled = true;


Paso 6: Instalar el Directx SDK

Para instalarlo primero descárgatelo de la siguiente dirección:

http://www.microsoft.com/downloads/details.aspx?FamilyId=4B78A58A-E672-4B83-A28E-72B5E93BD60A&displaylang=en

Los directorios del Directx SDK deben estar en lo alto de las listas de librería e inclusión respectivamente, sino pueden producirse errores durante la compilación. Al tener instalado ya Visual Studio esto debería hacerse automáticamente, pero nunca está de más comprobarlo:

Archivos de biblioteca:      C:\Archivos de programa\Microsoft DirectX SDK\Lib\x86
Archivos de inclusión:       C:\Archivos de programa\Microsoft DirectX SDK\Include


Paso 7: Instalar el OGRE SDK

Para instalarlo basta con descargar el OGRE SDK preparado para Visual C 2005

http://downloads.sourceforge.net/ogre/OgreSDKSetup1.4.5_VC80.exe


Paso 8: Instalar el Asistente de creación de aplicaciones OGRE

Descarga el siguiente archivo y descomprime el contenido:

http://downloads.sourceforge.net/ogreconglo/ogresdkwizard80_Eihort_v1_4_2.zip

Para instalarlo sólo hay que hacer doble clic sobre el archivo 'VC8_Express_Setup', se ejecutará el script y saldrá un mensaje que confirmará que todo ha ido correcto.


Paso 9: Comprobar la correcta integración


Para comprobar que todo está correcto basta con utilizar el asistente que acabamos de instalar. En Visual C++, Archivo -> Nuevo -> Proyecto -> OGRE SDK Aplication y compilarlo.

-------------------------------------------------------------------------------------------

Para los que lo prefiráis: VERSION PDF (http://tamudo84.googlepages.com/IntroduccinaOGRE-IntegracinconVisual.pdf)
Título: Introducción a Ogre3D
Publicado por: davirro en 30 de Diciembre de 2007, 02:59:30 AM
a mi me interesa muucho porque dentro de poco empezaré con el ogre, nos vemos
Título: Introducción a Ogre3D
Publicado por: tamudo en 03 de Enero de 2008, 09:19:09 PM
Cita de: "davirro"a mi me interesa muucho porque dentro de poco empezaré con el ogre, nos vemos
Me alegra mucho tu interés, aunque parece que eres el unico...
Título: Introducción a Ogre3D
Publicado por: tamudo en 03 de Enero de 2008, 11:32:48 PM
Introducción

Un motor hace referencia a una serie de rutinas de programación que permiten el diseño, la creación y la representación del juego. La analogía con el motor de un automóvil es bastante  ilustrativa: el motor debajo del capó no es visible, pero le da la funcionalidad al automóvil que es la de transportar. La misma analogía permite explicar algunos de los aspectos que, generalmente, maneja un motor de juegos, en el que las texturas y los modelos 3D serían la carrocería, pintura e interiores.

Del mismo modo en que carrocería, pintura y exteriores no andan sin un motor, el arte y los guiones del juego no funcionan sin un motor de juegos. Un motor de juegos es el núcleo software de un videojuego o de una aplicación interactiva con gráficos en tiempo real. Éste provee las tecnologías necesarias, simplifica el desarrollo y, en algunos casos, permite el desarrollo para distintas plataformas (Mac/Linux/Windows/Consolas).

Existen muchas librerías que proporcionan las funciones básicas de un motor de juegos, como DirectX, OpenGL, Java3D, SDL, Newton, entre otros. Las librerías gráficas como OpenGL y  
DirectX usan los drivers de las tarjetas gráficas, de forma que constituyen la interfaz entre la aplicación software (juego) y el adaptador gráfico hardware. Aúnan funciones para dibujar objetos 2D/3D y los motores gráficos se suelen sustentar en ellas. Una librería gráfica, a partir de modelos en 3D, consiguen obtener un espacio bidimensional, pero un motor de juegos hace más cosas, como iluminación, anti-aliasing o mezcla de texturas. Existen varias razones por la que el uso de motores de juego es importante. Algunas de ellas son:
Los motores de juego surgen en la década de los 90 tras el éxito de Doom y Quake. Juegos como Quake 3 y Unreal ya se diseñaron separando motor y contenidos ¿Qué ilustra el éxito de estos juegos? Por un lado, una mayor rapidez del mundo de los videojuegos. Desarrollar motores agiliza el desarrollo de juegos y permite sacar secuelas más fácilmente para mantener el mercado "caliente". Además, el licenciar posteriormente los motores permite obtener unos beneficios extras muy suculentos.

La arquitectura de un motor de juegos debe proporcionar mucha abstracción. Con que las librerías utilizadas estén portadas a todos los SO, permitimos que nuestro motor o juego funcione en todas las arquitecturas necesarias. Un parámetro que se debe tener muy en cuenta al elegir un motor de juegos es su portabilidad y en qué librerías se basa. Los motores de juego suelen tener una estructura como la que sigue:

(http://tamudo84.googlepages.com/figura1.png)
Figura 1: Esquema típico de un motor de juegos

El motor gráfico o de render es el que proporciona funciones de renderizado 2D, 3D y de sprites. Se suele apoyar en librerías/APIs gráficas como OpenGL o DirectX. Define una capa de abstracción entre el HW/SO y el juego en sí. Además, se encarga de la visibilidad (BSP y buffers), el mapeado, el antialiasing, la gestión de mallas 3D, entre otras cosas.

El grafo de escena es una parte muy importante de un motor de juegos. Ésta es una estructura de datos muy utilizada en editores gráficos basados en vectores y en videojuegos. Se encarga de ordenar la representación lógica y, también a veces, espacial de una escena gráfica. Cada nodo puede tener muchos hijos, pero, un nodo sólo suele tener un padre. El efecto de algo sobre un padre es visible por todos sus hijos. Así, una operación sobre un grupo se propaga hacia todos sus nodos hijo. Esto permite manejar (escalar/mover/rotar/etc.) grupos de objetos como si fueran uno solo. En los juegos, cada nodo suele representar un objeto en la escena.
(http://tamudo84.googlepages.com/figura2.png)
Figura 2: Ejemplo de representación de varios objetos en grafo de escena

El motor de físicas es software que simula modelos de física utilizando variables del tipo velocidad, masa, etc. Su objetivo es simular y predecir los efectos bajo diversas situaciones de lo que ocurre en la vida real o en un mundo de fantasía. En los juegos se utilizan cada vez más, sobre todo en los de carreras donde factores como la fuerza centrífuga o derrapajes necesitan de ecuaciones físicas para aportar realismo.

El detector de colisiones es un algoritmo empleado para detectar cuándo dos o más objetos colisionan. Se suelen realizar mediante el cálculo de la intersección de volúmenes simples (Bounding Volumes). Se pueden utilizar distintos volúmenes para envolver el objeto y así detectar mejor las colisiones, como cubos o esferas. Se puede tomar como un componente independiente, aunque tiene mucho que ver con el grafo de escena y el motor de físicas.

El motor de inteligencia artificial es el encargado de dotar a ciertos elementos del juego un comportamiento pseudointeligente. Por regla general, lo que se aplica en los juegos son técnicas muy simples de inteligencia artificial como máquinas de estados o algoritmos de búsquedas. Sin embargo, cada vez más se utilizan nuevas técnicas para conseguir una inteligencia más "realista" como redes neuronales o algoritmos genéticos.

El motor de sonido es el encargado de reproducir la banda sonora del juego y los efectos de sonido, como disparos o explosiones, en sincronía con la acción del juego.

La gestión de redes está alcanzando una progresiva mayor importancia. Hoy por hoy, casi todos los juegos tienen una componente de red. Existen juegos exclusivamente online, de los cuales, la mayoría ofrece partidas multijugador a través de red. Es importante tener un componente que aglutine todas las utilidades de red, de forma que, el hecho de que se juegue de una forma u otra sea, en cierta medida, "transparente" para el desarrollador del juego.

Todas las partes que componen un motor de juegos tienen su importancia, pero lo más básico e imprescindible de un motor de juegos es el motor gráfico. Aunque el Grafo de Escena es también una pieza vital, el resto de componentes son más prescindibles y no aparecen en todos los motores, y cuando lo hacen, aparecen como plugins. La elección del motor de un motor u otro es algo fundamental, sobre todo si necesitamos alguno de estos componentes. Un ejemplo de motor de juegos básico es OGRE 3D, que, básicamente, aglutina únicamente funciones de tratamiento gráfico y deja a elección del usuario las otras componentes. La comunidad de OGRE es la que ofrece multitud de librerías para complementarlo y añadirle funcionalidad, las cuales se integran a la perfección con dicho motor. Pero OGRE 3D no es único, pues existen infinidad de motores. Éstos se suelen clasificar por su licencia de uso:

Los motores comerciales suelen tener la ventaja de proporcionar soporte y mayor número de herramientas de desarrollo adicionales. No obstante, coste de licencia puede suponer un gran inconveniente, puesto que suele ser mayor cuantas mejores prestaciones ofrezca el motor. Algunos de los distintos motores comerciales pueden ser:
Los aquí mostrados son los que se pueden llamar "asequibles". Me refiero con ello a los que tienen licencias de bajo coste. Ninguno de estos se han utilizado para los últimos títulos AAA, pero son utilizados frecuentemente por pequeños estudios y grupos amateurs de desarrollo.

Los motores de código libre en cambio presentan la ventaja de que no tienen ningún coste, junto a que el usuario tiene la libertad de poder modificarlos si así lo necesita. Por el contrario, tienen la desventaja de que no hay soporte técnico "oficial", aunque la comunidad suele ayudar, y puede sufrir en determinadas ocasiones falta de herramientas que ayuden al desarrollo. Además, hay que tener en cuenta que muchos de estos motores están regidos por unas licencias de uso limitadas y pueden surgir inconvenientes si el juego que se va desarrollar presenta fines comerciales. Algunos de los motores open source más populares son:
Como hemos visto OGRE 3D no es el único motor, e, igualmente, lo mismo no es el que más conviene, ya que cada uno de ellos ofrece diferentes funcionalidades y licencias de uso. Antes de aventurarse con un proyecto es conveniente analizar con profundidad cual es el que más se ajusta a nuestras necesidades, ya que una buena elección puede evitar numerosos quebraderos de cabeza.

------------------------------------------------------------------------------------

Para los que lo prefiráis: VERSION PDF (http://tamudo84.googlepages.com/IntroduccinaOgre-Introduccin.pdf)

Por cierto, no funciona el BBCode para alinear y centrar textos?
Título: Introducción a Ogre3D
Publicado por: [EX3] en 04 de Enero de 2008, 09:49:15 AM
Un consejo. Mi recomendacion seria que te montaras una web o un blog donde subir estos articulos ya que aqui en el foro con el tiempo se perderan "como lagrimas en la lluvia" y seria como tirar trabajo a la basura. En el blog podras incluso organizarlo por categorias. De esta forma siempre estaria a mano de todos y sin tener que hacer submarinismo por el foro :)

Cita de: "tamudo"Por cierto, no funciona el BBCode para alinear y centrar textos?
phpBB por defecto no tiene etiquetas para alineacion de textos.

Salu2...
Título: Introducción a Ogre3D
Publicado por: tamudo en 04 de Enero de 2008, 11:56:53 AM
Cita de: "[EX3"]Un consejo. Mi recomendacion seria que te montaras una web o un blog donde subir estos articulos ya que aqui en el foro con el tiempo se perderan "como lagrimas en la lluvia" y seria como tirar trabajo a la basura. En el blog podras incluso organizarlo por categorias. De esta forma siempre estaria a mano de todos y sin tener que hacer submarinismo por el foro :)
Pues esa era mi intención. Pero se me ocurrió de ponerlo antes por aquí ya que muchos soys ya expertos en estos temas y quizás teníais algun comentario que hacerme sobre el artículo, algún feedback o aporte interesante que pudiera incluir,algún gazapo o un fallo en alguno de los pasos del tutorial.

Sinceramente, mi blog es nuevo y apenas lo lee nadie y ya que tengo que hacerlo (y quiero, que el tema lo he elegido yo! xD) pues qué el mayor número de gente se aproveche de mi trabajo y les pueda ser útil. Pero bueno, seguiré tu consejo e iré pasando los artículos a mi blog. Por cierto muchas gracias por tu comentario.

Cita de: "[EX3"]
phpBB por defecto no tiene etiquetas para alineacion de textos.
ammm, es que encontre esto (http://www.cn2.com/bbcode_help.php) pero al probar los comandos, en la vista previa funcionaban nada más los que vienen en el editor del foro
Título: Introducción a Ogre3D
Publicado por: [EX3] en 04 de Enero de 2008, 01:07:54 PM
Cita de: "tamudo"Sinceramente, mi blog es nuevo y apenas lo lee nadie y ya que tengo que hacerlo (y quiero, que el tema lo he elegido yo! xD) pues qué el mayor número de gente se aproveche de mi trabajo y les pueda ser útil. Pero bueno, seguiré tu consejo e iré pasando los artículos a mi blog.
Podrias publicar tu blog en el Planet Stratos (http://www.inmensia.com/planet/stratos-ad/) e ir comentandolo inclusive en algunos foros y demas, no se como lo haran los demas pero se que esto de los blogs va mucho en linea del "boca en boca" para dar a conocer nuevos blogs. Otra seria que en la firma aparte del nombre del blog pusieras alguna frase corta que describiera o detallara lo de los tutoriales, asi la gente captaria su atencion.

Salu2...

P.D.: Veo que eres de los mios, "blade-runiano" (http://tamudo84.blogspot.com/2007/12/como-lgrimas-en-la-lluvia.html) :)
Título: Introducción a Ogre3D
Publicado por: Juan Mellado en 04 de Enero de 2008, 05:37:38 PM
El enlace correcto a la página que hace referencia [EX3] es este: Planet Stratos (http://www.inmensia.com/planet/stratos-ad/)

Saludos
Título: Introducción a Ogre3D
Publicado por: [EX3] en 05 de Enero de 2008, 01:58:56 AM
Cita de: "Juan Mellado"El enlace correcto a la página que hace referencia [EX3] es este: Planet Stratos (http://www.inmensia.com/planet/stratos-ad/)
Gracias, a estas alturas aun me cuelo con el comando de Firefox para copiar las urls de los enlaces graficos :lol:

Salu2...
Título: Introducción a Ogre3D
Publicado por: [Fonet] en 05 de Enero de 2008, 01:38:23 PM
Me interesa mucho estos tutoriales, y estaría muy bien que estubieran en tu blog en pdf, yo ya me los estoy pasando a PDF.

Estoy seguro que mucha gente se los descargaria para cuando decidiera comenzar con OGRE.

Salu2 y ánimos

EDITO:
EJEM... no habia visto que ya los ofreces en PDF... perdon  :roll:
Título: Introducción a Ogre3D
Publicado por: Mars Attacks en 05 de Enero de 2008, 03:42:54 PM
Un buen documento introductorio :)
Título: Introducción a Ogre3D
Publicado por: tamudo en 07 de Enero de 2008, 05:15:38 PM
Cita de: "[Fonet"]Me interesa mucho estos tutoriales, y estaría muy bien que estubieran en tu blog en pdf, yo ya me los estoy pasando a PDF.

Estoy seguro que mucha gente se los descargaria para cuando decidiera comenzar con OGRE.
Cita de: "Mars Attacks"Un buen documento introductorio :)
Me alegro de qué os haya gustado  :D, muchas gracias por los comentarios. Por cierto Fonet, dicho y hecho (http://tamudo84.blogspot.com/2008/01/introduccin-ogre.html). Poco a poco iré colgando lo que vaya haciendo. Voy un poco retrasado, pues a día de hoy debería tener terminado casi entero y todavía me faltan algunas cosas por tocar.

Cita de: "[EX3"]Podrias publicar tu blog en el Planet Stratos e ir comentandolo inclusive en algunos foros y demas, no se como lo haran los demas pero se que esto de los blogs va mucho en linea del "boca en boca" para dar a conocer nuevos blogs. Otra seria que en la firma aparte del nombre del blog pusieras alguna frase corta que describiera o detallara lo de los tutoriales, asi la gente captaria su atencion.

Ya conocía el planet. De hecho, lo sigo regularmente y mucho de lo que se publica me interesa bastante. Pues no tengo ningún problema en publicar en el planet stratos! pero, ¿qué tengo que hacer? Me tengo que poner en contacto con Juan Mellado? parece que es él el que tiene alojado el planet. Bueno, pues ya me comentáis.

Un saludo
Título: Introducción a Ogre3D
Publicado por: Juan Mellado en 08 de Enero de 2008, 08:07:10 PM
Cita de: "tamudo"
Ya conocía el planet. De hecho, lo sigo regularmente y mucho de lo que se publica me interesa bastante. Pues no tengo ningún problema en publicar en el planet stratos! pero, ¿qué tengo que hacer? Me tengo que poner en contacto con Juan Mellado? parece que es él el que tiene alojado el planet. Bueno, pues ya me comentáis.

Ya estás dentro, he incluido la categoría "videojuegos" de tu blog dentro del Planet.

¡Gracias por colaborar!

Saludos.
Título: Introducción a Ogre3D
Publicado por: tamudo en 08 de Enero de 2008, 08:40:24 PM
Cita de: "Juan Mellado"Ya estás dentro, he incluido la categoría "videojuegos" de tu blog dentro del Planet.

¡Gracias por colaborar!

Saludos.

Hey! ya me he visto en el planet  8). Por cierto, me acabo de dar cuenta que tengo 3 post que se llaman prácticamente igual! vaya despiste! toi empanao xD

Otra cosa, tengo una duda, si actualizo los post por alguna errata o algo, se vuelven a publicar en el planet?. Es por andar con más precaución o menos antes de publicar. Además los post largos que le pongo el tipico "Continuar leyendo" los tengo que hacer a mano actualizando el post. Aunque si le pongo la etiqueta videojuegos despues de actualizarlo... bueno, si veis que salen post duplicados o algo me lo decís (estaré yo atento tb). Bueno, espero aportar cosas interesantes.

Un saludo
Título: Introducción a Ogre3D
Publicado por: tamudo en 09 de Enero de 2008, 01:05:27 PM
Tengo listo el siguiente artículo de introducción a OGRE, pero hay una parte que puede que algunos términos no los halla castellanizado bien, sobre todo nombres de algunas técnicas gráficas. La lista de caracteristicas técnicas la he sacado de aquí (http://www.devmaster.net/engines/engine_details.php?id=2). Si encontrais alguna cosa rara me lo comentais, os estaré muy agradecido. Sino veis nada pos lo publicaré tal cual en el blog.

-----------------------------------------------------------------------------------------


Caracteristicas generales



Renderizado



Gestión de escena



Texturizado



Iluminación


Sombras



Shaders



Animación



Mallas



Curvas y superficies



Efectos especiales


Scripting



Física



----------------------------------------------------------------------------------

El artículo ya ta casi listo, me queda revisar nada más esta parte, por favor echarle un ojo y me comentais.

Un saludo
Título: Introducción a Ogre3D
Publicado por: tamudo en 24 de Enero de 2008, 01:00:04 AM
Sólo deciros que ya acabe con OGRE! He cumplido mi proposito que era aprender y que mi trabajo le sirviera a otros. Me ha gustado mucho la experiencia, y quizás algún día la retome. Más adelante os hablaré un poco del MATVI (http://deimos.lcc.uma.es/MATVI08/), que fue el "congreso" para el que realicé el trabajo. Bueno aquí os dejo la dire del compendio de artículos:

http://tamudo84.blogspot.com/2008/01/introduccin-ogre.html

Los que seguís el planet stratos ya os habré dado ya suficiente la brasa. Perdón porque he tenido que actualizar varias veces muchos de los post. Y es que soy bastante tiquismiquis y como vea un fallo no puedo dejarlo: o lo corrijo o me corroe por dentro. Para los que se molesten en verlo de nuevo, decirles que ahora los artículos están encadenados y tienen al final de los mismos los típicos enlaces de "Artículo siguiente" y "Artículo anterior" para una fácil navegación.

Eso es todo. No os dare más el coñazo con el tema de OGRE...    al menos de momento  :twisted:
Título: Introducción a Ogre3D
Publicado por: Tarzan en 24 de Enero de 2008, 09:45:51 AM
Hola tamudo,


Te agradezco que hayas publicado esta ayuda de una forma tan ordenada... Me ha venido genial tener los links de ciertas herramientas y las anotaciones sobre la configuración son excelentes.

He seguido las instrucciones al pie de la letra, o eso creo.
Tengo instalado el Visual c++ express 2005 con el service Pack 1.
Me he descargado el sdk de Microsoft Platform, el sdk de las directX y el Ogre3D.
Lo he instalado todo y me he descargado finalmente el plugin que indicas para habilitar la opción de crear un Proyecto de Ogre3D con el VisualC++ 2005.

He registrado el Visual y modificado los archivos de configuración como explicas. También he añadido rutas de includes y ficheros binarios a los Directorios en el menú de herramientas.

Sin embargo, cuando creo un proyecto nuevo (Ogre3D Application) me genera un código automático y, si le doy a compilar me lanza un error:

windows.h such file or directory.

Es como si no encontrar ese archivo .h, pero he comprobado que está en el directorio INCLUDE del sdk Platform de Microsoft que he instalado y AÑADIDO a las rutas de Directorios en: Herramientas->Opciones->Soluciones y Proyectos->Directorios

¿Qué puedo estar haciendo mal para que no encuentre esa librería si está en la ruta de directorios añadida?
Título: Introducción a Ogre3D
Publicado por: tamudo en 24 de Enero de 2008, 04:02:24 PM
Tarzan, lo de problemas de compilación con el windows.h suele ser por no actualizar bien los ficheros para que se acople visual studio express con el Platform SDK.

En la wiki (http://www.ogre3d.org/wiki/index.php/Installing_An_SDK#MS_Visual_C.2B.2B) de OGRE recomiendan hacer una serie de pasos para que no de problemas con lo de "windows.h"

Cita de: "OGRE wiki"NOTE: If you are using Visual C++ Express (vc 8.0) for the first time, make sure you do all 5 steps here (http://msdn2.microsoft.com/en-us/express/aa700755.aspx) prior to using the Ogre SDK for vc8.0. Visual C++ Express does not come with the windows headers and libraries so the second step in that MSDN link is to download the Microsoft Platfrom SDK (PSDK) which has what Express does not. If you don't install the PSDK and do steps 3, 4, and 5 then you will get compiler errors like can't find 'windows.h' etc. If you get error messages about not finding 'winres.h' then add C:\Program Files\Microsoft Platform SDK\Include\mfc to the list of include directories at Tools|Options|Projects and Solutions|Iclude Files. Yes, the PSDK is a motherload of a download but hey its free :)

Es decir tienes que hacer estos 5 pasos (http://msdn2.microsoft.com/en-us/express/aa700755.aspx) para que funcione correctamente. Yo los incluí en el tutorial, pero alomejor te lo has saltado sin darte cuenta. Para no hacerte sentir mal, tengo que decirte que a mi también me saltó el mismo error cuando lo instale por primera vez antes de preparar el tutorial y tuve que revisar la instalación. Bueno espero que con esta aclaración te funcione correctamente.
Título: Introducción a Ogre3D
Publicado por: Tarzan en 26 de Enero de 2008, 11:40:44 AM
Hola Tamudo,

He seguido los 5 pasos al pie de la letra y sigo teniendo problemas al compilar la aplicación. El compilador no encuentra el fichero windows.h.
Te explico un par de cosas en las que dudo que estén bien:

Por una parte, he comentado como decía en tu Post las 4 líneas del fichero AppSettings.htm (líneas 441-444) con los caracteres // al principio de cada línea. Imagino que estos serán los caracteres correctos para comentar esas líneas y no <!-- --> por ser un fichero html, verdad?

Y por otra parte, lo que pienso que no he hecho bien es el tema de los directorios. Herramientas->Opciones->Proyectos y Soluciones->Directorios.... Aquí tengo las siguientes líneas y en este orden:

C:\Utilidades\Programacion\SDK903\Include
C:\Utilidades\Programacion\SDK903\Lib
Estas dos son para las librerías DirectX que, como decías en tu Post, deben estar al Principio.

C:\Utilidades\Programacion\Microsoft SDK\Include
C:\Utilidades\Programacion\Microsoft SDK\Lib
C:\Utilidades\Programacion\Microsoft SDK\Include\mfc
C:\Utilidades\Programacion\Microsoft SDK\Bin
Estas son las que añadí para que capturara las librerías del SDK de Microsoft. He comprobado que dentro de la carpeta include se encuentra el fichero windows.h del cual, el compilador se queja.

$(VCInstallDir)bin
$(VCInstallDir)PlatformSDK\bin
$(VCInstallDir)Common7\Tools\bin
$(VCInstallDir)Common7\Tools
$(VCInstallDir)Common7\ide
$(ProgramFiles)\HTML Help Workshop
$(FrameworkSDKDir)bin
$(FrameworkDir)$(FrameworkVersion)
$(VSInstallDir)
$(PATH)

Estos se crearon de forma automática al instalar el Visual c++ 2005 y no los he tocado. No sé si están bien o si debo modificarlos, si sobran o qué.... El caso es que pienso que algo está mal en estas especificaciones de Directorios porque no encuentra el windows.h que se encuentra en:
C:\Utilidades\Programacion\Microsoft SDK\Include

La ruta de instalación del Visual c++ 2005 Express es:
C:\Utilidades\Programacion\MVC++ 8

¿Ves algo erróneo?... Sabes qué puedo estar haciendo mal...

Gracias por todo.

Saludos.
Título: Introducción a Ogre3D
Publicado por: Juan Mellado en 26 de Enero de 2008, 03:55:01 PM
Tarzan, por lo que pones en tu último post, creo que no estás poniendo los directorios para los "includes" en la opción correcta del Visual. Los valores que has puesto, los que dices que "se crearon automáticamente al instalar el Visual" corresponden a los directorios donde se buscan los ejecutables, no los includes.

En la opción "VC++ Directories", donde estás escribiendo los directorios, tienes un desplegable en la parte superior derecha de la ventana donde puedes elegir entre "Executable files", "Include files", "Reference files", ...

Elige "Include files" y no el valor por defecto "Executable files" que es el que creo que estás usando y por eso no te funciona.

Espero te sirva,
saludos
Título: Introducción a Ogre3D
Publicado por: tamudo en 26 de Enero de 2008, 05:22:21 PM
Puede ser lo que te dice Juan Mellado
Cita de: "Juan Mellado"En la opción "VC++ Directories", donde estás escribiendo los directorios, tienes un desplegable en la parte superior derecha de la ventana donde puedes elegir entre "Executable files", "Include files", "Reference files", ...

Elige "Include files" y no el valor por defecto "Executable files" que es el que creo que estás usando y por eso no te funciona.

Cada directorio es de un tipo, y se debe de incluir en la lista de su tipo:

Archivos ejecutables:
C:\Archivos de programa\Microsoft Platform SDK\Bin

(http://tamudo84.googlepages.com/VS_ejecutables.jpg)


Archivos de inclusión:
C:\Archivos de programa\Microsoft Platform SDK\Include
C:\Archivos de programa\Microsoft Platform SDK\Include\mfc

(http://tamudo84.googlepages.com/VS_inclusion.jpg)

Archivos de biblioteca:
C:\Archivos de programa\Microsoft Platform SDK\Lib

(http://tamudo84.googlepages.com/VS_biblioteca.jpg)

A ver si era eso y te consigue compilar el código!
Título: Introducción a Ogre3D
Publicado por: Tarzan en 27 de Enero de 2008, 11:09:22 AM
Buenos días,


Teniais razón!! lo había incluído todo en el apartado de ejecutables y por eso no lo encontraba... Lo he cambiado todo según el ejemplo de tamudo... Creo que ahora está bien porque sí encuentra los archivos pero cuando compilo el ejemplo (es simplemente el código generado por el Visual cuando creo un proyecto tipo Ogre3D), me avisa de un error con el archivo winnt.h.

Este error no es porque no lo localice sino que me dice error de sintaxis o falta el especificador de tipo ";".

------ Operación Generar iniciada: proyecto: Prueba1, configuración: Debug Win32 ------
Compilando...
Prueba1.cpp
c:\utilidades\programacion\microsoft sdk\include\winnt.h(222) : error C2146: error de sintaxis : falta ';' delante del identificador 'PVOID64'
c:\utilidades\programacion\microsoft sdk\include\winnt.h(222) : error C4430: falta el especificador de tipo; se presupone int. Nota: C++ no admite default-int
c:\utilidades\programacion\microsoft sdk\include\winnt.h(5940) : error C2146: error de sintaxis : falta ';' delante del identificador 'Buffer'
c:\utilidades\programacion\microsoft sdk\include\winnt.h(5940) : error C4430: falta el especificador de tipo; se presupone int. Nota: C++ no admite default-int
c:\utilidades\programacion\microsoft sdk\include\winnt.h(5940) : error C4430: falta el especificador de tipo; se presupone int. Nota: C++ no admite default-int
El registro de generación se guardó en el "file://c:\Utilidades\Programacion\MVC++ 8\Proyectos\Prueba1\Prueba1\obj\Debug\BuildLog.htm"
Prueba1 - 5 errores, 0 advertencias
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========

Son 5 errores de sintaxis en el fichero winnt.h de SDK de Microsoft.
Uff... ¿Cómo es posible que falle ése archivo si yo no lo he tocado?


Lo único que he hecho ha sido abrir el Visual, darle a un proyecto nuevo tipo :Ogre3D Application" y compilar. No he incluído ninguna línea ni modificado nada.

¿Hay alguna incompatibilidad con algo?


Os agradezco muchísimo vuestra ayuda...

Un saludo.
Título: Introducción a Ogre3D
Publicado por: tamudo en 27 de Enero de 2008, 03:12:22 PM
jo que cosas más raras te pasan, xDDD. Googleando un poco he encontrado esto (http://www.ogre3d.org/phpBB2/viewtopic.php?p=80146&). A ver si te sirve de ayuda.

CitarI have the same problem, and I have solved changing it to the head winnt.h

typedef void *PVOID;
typedef void *POINTER_64;
typedef void *PVOID64; // <-- :wink:

Good luck!

Se olvidan de poner puntos y comas en el platform SDK. Ya lo nunca visto xD
Título: Introducción a Ogre3D
Publicado por: Tarzan en 28 de Enero de 2008, 12:01:54 AM
Buenas Tamudo!!

Pues sí que era eso!!... Esas 3 líneas estaban mal escritas en el fichero winnt.h... Pero ¿Cómo es posible que vengan mal como quien dice "de fábrica"?... Lo nunca visto como tú bien dices...

Te escribo como estaban por si alguien que sigue los pasos de tu guía se encuentra con el mismo problema:

typedef void *PVOID;
typedef void *POINTER_64 PVOID64;

Esto el compilador de Visual C++ 2005 no lo entiende bien y se queja...

Yo escribí esto:
typedef void *PVOID;
typedef void *POINTER_64;
typedef void *PVOID64;

y la aplicación compila de maravilla... sin errores ni nada...

No sé si Microsoft no comprueba las cosas o utilizan el compilador de Borland... en cualquier caso... ya está arreglado.

Por cierto Tamudo, he observado que el ejecutable está dentro de la carpeta debug (en el interior del proyecto) y, al iniciarlo, me indica que debo copiar alguna dll del Ogre3D (ogreMain_d.dll)... Ya había leído yo que esto pasaría..jeje... Voy a buscarlas y probarlo de una vez que tengo muchas ganas de iniciar mi primera aplicación en Ogre3D..

Muchísimas gracias por todo, de verdad!!

Un saludo.
Título: Introducción a Ogre3D
Publicado por: tamudo en 28 de Enero de 2008, 01:14:02 AM
ja!  8) me alegro que te vaya ya bien! A darle duro con el ogro!
Título: Introducción a Ogre3D
Publicado por: Martinez en 28 de Enero de 2008, 08:55:26 AM
Una cosa tarzan. Hay 2 tipos de DLLs, las de debug y las de release. En debug son las que acaban _d.dll. Ejemplo:

Debug: ogreMain_d.dll
Release: ogreMain.dll

Suerte
Título: Introducción a Ogre3D
Publicado por: Carlanga92 en 24 de Febrero de 2008, 04:50:13 PM
No se si es un poco tarde para hablar en el foro este.. pero a lo mejor te llega al correo que hicieron una respuesta: weno.. mi problema es este: segui al pie de la letra la tutorial esa ( no de esa pagina .. estaba en otra pero era exactamente igual) y posiblemente sea una tonteria lo que me esta pasando pero al darle a proyecto, nuevo, ogre SDK apliccation, le pongo un nombre.. pero luego no me sale la ventana esa que deberia de salir.... simplemente me sale el proyecto pero no se abre ni na.. lo compile pero nada.. nada nada nada.. la unica cosa que no segui fue lo de instalar la version 1.4.5.. que instale la 1.4.6.. pero por todo lo demas es igual :S no entiendo, esque kiero hacer primero la prueba antes de nada
Título: Introducción a Ogre3D
Publicado por: ruso_rbp en 12 de Marzo de 2008, 07:25:36 PM
hola a todos!!! estoy un poco verde en esto.... y me ha surgido una coas que no se como hacerla.
resulta que quiero meter en mi proyecto sonido, y modificarle. no se como hacerlo. lo he intentado abrir como un fichero pero luego no se ver lo que hay dentro.
si alguien me puede ayudar lo agradeceria...
un saludo
Título: Introducción a Ogre3D
Publicado por: tamudo en 12 de Marzo de 2008, 10:56:03 PM
Ogre no trabaja con sonidos de forma nativa, tendrás que usar una librería de audio externa. Puedes probar con OpenAL, o quizás con SDL_Mixer. Los chicos de ikaro games saben un poco más de este tema

http://www.ikarogames.com/blog/archives/14-OpenAL,-primer-bache-en-el-camino.html
Título: Introducción a Ogre3D
Publicado por: ruso_rbp en 13 de Marzo de 2008, 10:35:23 AM
gracias tamundo, mirare a ver si consigo algo,jejeje...
de todas maneras te queria preguntar, ya que veo que estas muy puesto en esto, que si existe un listado con funciones de ogre para el visual studio c++.
es que estoy mirando programas ya hechos y me lio un poco.

gracias
Título: Descarga
Publicado por: SuperBBoy en 10 de Julio de 2008, 12:05:40 PM
Me podrias dejar un link para descargarlo?
Título: Introducción a Ogre3D
Publicado por: Buffon en 10 de Julio de 2008, 03:15:40 PM
Cita de: "ruso_rbp"gracias tamundo, mirare a ver si consigo algo,jejeje...
de todas maneras te queria preguntar, ya que veo que estas muy puesto en esto, que si existe un listado con funciones de ogre para el visual studio c++.
es que estoy mirando programas ya hechos y me lio un poco.

gracias

las librerías no exportan funciones para los entornos de desarrollo.

cuando tu generas una aplicación, en este caso unas DLLs, éstas exportan funcionalidades para cualquier lenguaje que pueda cargarlas, no significa que tu desde Visual c++ puedas llamar a unas funciones y yo desde linea de comandos no pueda acceder a las mismas.

Además si estás con estas dudas mejor empieza programando tu una mini aplicación hello world, luego haces una librería con ese hello world, una DLL, y luego la llamas desde una aplicación tuya.

Cuando entiendas este funcionamiento estarás algo iniciado para trabajar con librerías externas.