Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Librerías De Escena Opengl (scene Graph)

Iniciado por Inner, 31 de Julio de 2003, 07:21:39 PM

« anterior - próximo »

Inner

 Hola,
Estoy buscando una librería de alto nivel para controlar escenas en Opengl. Me refiero a poder cargar modelos 3d de formato estándar, manejar con facilidad varios objetos, texturas, luces y cámara, selección sencilla de objetos, etc.

La libería OpenGL es de muy bajo nivel y parece que SGI no ha tenido mucho éxito desarrolando otras APIs de más alto nivel (Open Inventor, Opengl Performer, Opengl++, Farenheit...).
He oído buenas críticas sobre el proyecto OpenSceneGraph (OSG) pero tiene muy poca documentación.
Sobre los motores 3D para juegos como Crystal Space u Ogre, he oído que no tiene muy buen rendimiento y no sé si serán muy apropiados para aplicaciones de propósito general, no sólo juegos. Busco algo que me permita desarrollar cualquier tipo de aplicaiones, sin ninguna clase de limitaciones.
Por otra parte, no sé si merece la pena estudiar la API OpenGL pues creo que estas librerías o motores suelen tapar esa API con la suya.
Por lo que veo, la ventaja que ha tomado DirectX (o concretamente Open3D) sobre OpenGL se debe sobre todo a la incapacidad de SGI o de quien sea de crear un API estándar de alto nivel (a nivel de escena).

Soy novato, esta es la información que he podido recopilar hasta ahora. Espero que me podáis orientar un poco para ayudarme a decidir qué librería o motor elijo para programar en 3D. Busco portabilidad (Windows/Linux), eficiencia (soporte hardware),software libre (y a ser posible open source) con buena documentación y actualizaciones frecuentes.

Gracias.  :)

Zaelsius

Cita de: "Inner"Por lo que veo, la ventaja que ha tomado DirectX (o concretamente Open3D) sobre OpenGL se debe sobre todo a la incapacidad de SGI o de quien sea de crear un API estándar de alto nivel (a nivel de escena).
No creo que sea esa la cuestion, pero eso es un tema aparte, ;-)

Creo que hay motores 3d muy sencillos y GPL que pueden servirte perfectamente. El rendimiento de los motores que citas es aceptable, y si quieres algo mejor entonces deberías pensar en comprar una licencia de un motor comercial barato.

Lo de hacer aplicaciones de propósito general que no sean juegos...pues que quieres que te diga, si quieres pintar cosas en 3d necesitas un motor 3d. Pero la aplicación/juego la haces tu, así que no estás limitado en ningun aspecto.

Aquí tienes un motor MUY sencillo: http://irrlicht.sourceforge.net, y que es altamente portable. Por aquí tb te aconsejarán otros, yo te cito ese pq como si dices ser "novato" te resultará muy facil hacerte una idea de como funcionan los motores. Luego segun tus necesidades elige otro motor cuyo desarrollo esté más avanzado.

¿ Estás pensando en alguno tipo determinado de aplicación ?


Capiflash

 Zaelsius , no conocia ese motor . Me ha gustado el manejo del mismo , guardare su direccion   ;)  

Ithaqua

 Open Scene Graph es un motor con una muy cuidada programación y un exquisito uso del C++. Se pueden aprender muchísimas cosas de él.
Carece (o al menos carecía) totalmente de documentación, y hay que hacer las cosas a base de mirarse las fuentes, pero ya digo que el diseño del código está bastante cuidado. Seguramente haya motores mucho más potentes y quizá más intuitivos de utilizar, pero está muy bien para aprender.
thaqua^Stravaganza
http://ithaqua.stravaganza.org

Inner

 Hola otra vez,
Gracias por las respuestas y comentarios. No paro de encontrar motores 3d, muchos de ellos tienen buena pinta. La pena es que su nivel de maduración no es muy elevado, casi ninguno, por no decir ninguno, alcanza la versión 1.0, por lo que se consideran a sí mismos como "beta". Desgraciadamente, en ese estado de desarrollo la documentación no es una prioridad y eso complica un poco las cosas. Creo que no me libro de bucear e investigar en códigos poco documentados.
Ahora mismo estoy entre Irrlicht y NeoEngine y quizá Ogre. Lo que me ha resultado bastante alentador es que la experiencia adquirida con un motor no es tiempo perdido si te pasas a otro, según he podido colegir de vuestros comentarios.  :)
Me preguntaba ZaelSiuS qué proyectos tengo. En principio sólo adquirir experiencia y capacidad para poder hacer aplicaciones 3d en un futuro. Los juegos no son mi prioridad por ahora sino más bien aplicaciones orientadas a:
* Matemáticas (Matemática gráfica): Dibujar funciones matemáticas del tipo f(x,y) y preferiblemente animaciones, f(x,y,t). También otros temas más avanzados curvas Beizer, Fractales 3d(árboles), etc.
* Ingeniería Industrial: Visores de piezas complejas, con animaciones de desglose, selección (picking) y otras manipulaciones sencillas con el ratón.
* Arquitectura: Recorrido virtual por el interior de edificios o espacios exteriores.
* Informática: Representación tridimensional de estructuras como grafos, explorador de ficheros 3d...
Hice un pequeño motor 3d en la Universidad, esa es mi experiencia en estos temas, aunque creo que eso puede servir para entender el comportamiento matemático de OpenGL pero no creo que tenga mucha importancia a nivel de escena.

Bueno, eso es todo, gracias por los comentarios y por un foro tan bueno. Hasta otra.


Mars Attacks

 
Citar* Ingeniería Industrial: Visores de piezas complejas, con animaciones de desglose, selección (picking) y otras manipulaciones sencillas con el ratón.
* Arquitectura: Recorrido virtual por el interior de edificios o espacios exteriores.

Creo que estas dos cosas podrías hacerlas con VRML y sólo tendrías que aprender a programar los scripts para los eventos, el resto es puro "exportar a VRML" de una aplicación como el 3DSMax

Citar* Informática: Representación tridimensional de estructuras como grafos, explorador de ficheros 3d...

A mí me gustó el interfaz que aparecía en "Parque Jurásico" (y que después leí en nosequé sitio que era real y de hecho el que usaban, no sé si es cierto) y también he tenido mis propias fantasías para hacer uno, pero la verdad es que pensándolo bien, para qué añadirle una tercera dimensión innecesaria a algo que necesita sencillez, rapidez y que con dos dimensiones basta.
Con decirte que al Johnny Mnemonic le cuesta casi dos minutos encontrar un archivillo de ná...

¡Un saludo!
¡Otro!

Inner

 Gracias por los comentarios, Mars Atack,
Pero sobre el VRML, siempre que he visto algo hecho con esta tecnología me ha parecido para llorar, de feo que era. Le faltaban texturas, mala iluminación, visor pequeño desde página web, etc. No espero que los resultados sean como los de un render, porque el tiempo real no permite tanto detalle, pero algo parecido a un juego 3d. No sé, quizá no haya encontrado un buen visor o escena de ejemplo apropiada. Hace poco probé el CosmoPlayer y daba dolor de ver sus ejemplos. He probado otras tecnologías como Adobe Atmosphere y tampoco me pareció mucho mejor.

Hasta otra.

Mars Attacks

 Inner, estás muy equivocado en cuanto al estado del VRML hoy en día. Con cualquier visualizador actual puedes navegar por tu escena a pantalla completa. Cualquier cosa que puedas hacer con el max puedes navegarla con el VRML.

Será el destino, pero los dos servidores en los que tengo VRMLs que podría mostrarte están off line por mantenimiento. De todas formas, por si cuando lo pruebas funcione, en http://www4.uji.es/~al024459 tengo una pequeña biblioteca virtual (que puede no gustarte) en la que verás que se ve a pantalla normal de web (se puede aumentar a pantalla completa), está bien de texturas, bien de iluminación y encima es bastante interactivo.

HaltedMode

 Buenas, el motor que te recomiendo es el Nebula de Radon Labs. Es completamente gratuito (lo puedes usar incluso en proyectos comerciales) y su calidad es asombrosa, de hecho ya se ha utilizado en un juego comercial.
En cuanto a la facilidad para programar con el no te puedo decir porque no lo he usado pero en cuanto pueda me pienso poner.

La pagina de Radon Labs: http://www.radonlabs.de Te recomiendo que mires las Screenshots en http://www.radonlabs.de/nebulascreenshots.html para que te hagas una idea de su potencial.

P.D.:Estan a punto de sacar nebula2, del cual tambien tienen puestas screenshots.

Saludos.

Inner

 Hola otra vez,
CitarInner, estás muy equivocado en cuanto al estado del VRML hoy en día
Tenías razón Mars Atack, me has devuelto la confianza en la tecnología VRML. Me he he instalado el visor Cortona y he visto algunos ejemplos (incluyendo tu página web). Por fin veo algo decente en VRML. Sin embargo, me da la impresión que VRML no ha tenido mucho éxito. Hay pocas páginas VRML y, en general, se oyen pocos comentarios a cerca de este sistema. De todos modos, a partir de ahora, intentaré documentarme y aprender un poco de VRML. Gracias.

CitarEl motor que te recomiendo es el Nebula de Radon Labs
Hace poco yo también ojee este motor. El problema es el de siempre: la documentación. En el caso concreto de Nebula Device parece que es aún más grave. Dos pruebas de lo que te digo:
* Una reseña del motor Nebula: dice que es de los motores que menos documentación tiene y que empezar a controlarlo resulta muy complicado, teniendo que estudiar a fondo el código.
* Un proyecto de juego 3D: abandonaron Nebula Device como motor 3d por su dificultad  y se han pasado a Ogre.

Uno se pregunta cómo es posible que en el desarrollo de motores 3d no se dedique al menos un 5% de los esfuerzos en la documentación. Hacen lo realmente complicado que es el motor (un trabajo titánico), y se olvidan de la sencilla tarea de la documentación, necesaria para que la gente pueda usarlo. Realmente cuesta trabajo comprenderlo.

Hasta otra.







Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.