OpenGL vs OGRE: ¿Cuál es el mejor para principiantes? [cerrado]

10

Estoy interesado en entrar en el desarrollo de juegos y posee buenas habilidades de programación C / C ++. He probado OGRE antes, y tengo curiosidad por saber si debo aprender OGRE u OpenGL como punto de partida.

Según tengo entendido, OGRE es un contenedor para OpenGL y DirectX. Entonces, supongo que aprendo OGRE, ¿todavía necesito aprender OpenGL también para desarrollar un juego?

Además, ¿alguien puede señalarme un buen tutorial para OpenGL? Descubrí que OGRE está bien documentado (¡incluso viene con la distribución!), Pero para OpenGL, la mayoría de los tutoriales que visité no están actualizados.

Songbreaker
fuente
Si eres completamente nuevo en la programación de gráficos en 3D, trataría de tener una idea de cómo funcionan primero las API de bajo nivel (OpenGL o D3D, en realidad no importa) y luego cambiar a un motor de gráficos listo para usar. como OGRE para que pueda concentrarse en su aplicación / juego en lugar de en el diseño / desarrollo del motor de renderizado.
drxzcl
1
Primero elegiría 2D, en lugar de 3D.
El pato comunista
1
La mayoría de 2D no es solo "3D sin Y" y tiene sus propios modismos y técnicas de acceso, no estoy tan seguro de que tomar un camino lateral hacia 2D sea bueno para alguien con "buen c / c ++".
Patrick Hughes
¿Por qué esta pregunta no es constructiva?
Songbreaker

Respuestas:

13

Ogre es de hecho un contenedor para OpenGL, sin embargo, la idea de tal contenedor es que no tiene que preocuparse por las complejidades de OpenGL. Por supuesto, será útil saber un poco sobre OpenGL, pero Ogre ocultará muchos de los detalles feos para usted.

Diría que Ogre es posiblemente más fácil de aprender en comparación con OpenGL, o al menos obtendrá resultados interesantes más rápido. Por supuesto, depende totalmente de lo que le gustaría hacer para evaluar si vale la pena aprender OpenGL.

Acerca de los tutoriales de OpenGL, sí, la mayoría de ellos están bastante desactualizados, sin embargo, la especificación no ha avanzado muy rápido, por lo que muchos de esos antiguos tutoriales aún se aplican a la mayoría de OpenGL.

Algunos de mis favoritos:

Roy T.
fuente
28
POR FAVOR, POR FAVOR, deje de enviar personas a NeHe. Los tutoriales son buenos, pero increíblemente anticuados. ¡Los días de OpenGL 1.x ya pasaron, intentemos no paralizar a la próxima generación de programadores gráficos desde el principio!
drxzcl
55
Consulte "Introducción a OpenGL moderno": duriansoftware.com/joe/…
drxzcl
1
@Ranieri Estoy absolutamente, muy de acuerdo. El sitio ha permanecido igual durante años y años, y ahora que OpenGL ha cambiado drásticamente en los últimos dos años, realmente debe desalentarse. @Songbreaker, toma nota de esto y considera evitar los tutoriales de NeHe, o al menos tomarlos con un grano de sal. La tubería fija ya no existe.
Ricket
1
@ Ranieri, @ Ricket Estoy absolutamente, muy en desacuerdo. Considere la curva de aprendizaje para OpenGL 4.x para un principiante que no está completamente familiarizado con la programación de gráficos y está recogiendo el SDK en el tiempo libre, sin instrucción. ¿Cómo es la documentación para OpenGL 4.x? Vea mi publicación para más detalles.
Andrew Rasmussen
44
@Songbreaker: lo intento. Te dejaré decidir si son buenos o no.
Nicol Bolas
17

OpenGL! Sí, estoy abiertamente en desacuerdo con todos en este foro hasta ahora.

OGRE es un desastre. La curva de aprendizaje es empinada. Sí, tienen algunos tutoriales agradables, pero salir de los límites de los tutoriales y hacer lo suyo es MUY difícil. Esperaría pasar tres semanas antes de que pueda configurar OGRE y trabajar, leer los tutoriales y averiguar qué hacer a continuación. No hay nada sobre OGRE que sea MUCHO mejor o más simple que OpenGL. Si es un buen programador de C como ha afirmado, y comprende sus punteros / matrices / funciones, OpenGL será igual de fácil, si no más fácil.

Es por eso que recomiendo comenzar con OpenGL. OpenGL te obligará a aprender todos los fundamentos de los gráficos. Es mucho más interesante ya que realmente te darás cuenta de lo que están sucediendo en el fondo. Y SÍ, comience con los tutoriales de NeHe. Sí, son 1.x, que está muy desactualizado (esto es para ti, Ranieri), pero saltar a OpenGL 4.x es una curva de aprendizaje demasiado empinada.

Comience con el modo inmediato en 1.x (glBegin, glEnd), luego aprenda sobre Vertex Arrays. Si lo desea, juegue con listas de visualización solo para aprender. Luego muévete hacia los objetos de vértice buffer. Luego aprende sobre shaders. Cada una de estas transiciones es muy fácil, y hay muchos tutoriales excelentes en línea. Los VBO están en el núcleo de 4.1, por lo que para cuando llegas allí, ya no estás aprendiendo material obsoleto, y es mucho más fácil llegar allí comenzando con el material 1.x.

Además, si alguna vez quieres una carrera de desarrollo de juegos, nadie te contratará porque puedes hacer que un cubo gire en algunas bibliotecas disponibles. Te contratarán porque entiendes lo que está sucediendo en el nivel más bajo posible y puedes tomar decisiones de diseño basadas en ese valioso conocimiento.

Referencias: Estaba donde estabas. Pasé un mes en OGRE, una semana probando Irrlicht, una semana probando Horde3d, dos días jugando con DirectX y un mes jugando con OpenGL. Después de un mes con OGRE, apenas podía ir más allá del alcance de los tutoriales. Después de un mes con OpenGL, tuve un personaje corriendo por un mundo minecraftiano, renderizando 260,000 cubos texturizados por cuadro con más de 700 cuadros por segundo.

Andrew Rasmussen
fuente
No estoy de acuerdo con sus declaraciones y tampoco creo que la experiencia que está exponiendo tenga algún significado. Tanto Ogre como OGL requieren que tengas conocimientos básicos sobre cómo hablar con la tarjeta gráfica, lo que no significa que tengas que saber OGL o DX, pero básicamente debes saber qué pueden hacer. En este punto, Ogre agrega una capa que un principiante tardará meses en configurar correctamente y que no puede ver con un ejemplo que configuró en un mes. Siempre es bueno conocer OGL, pero despedir a Ogre por tu experiencia no significa nada.
Klaim
1
No, OGRE realmente no requiere que sepas cómo hablar con la tarjeta gráfica, de eso se trata. Además, OGRE no es solo un envoltorio alrededor de una API de gráficos, también es un administrador de escena, cargador de modelos, etc.
Jarrett
5

¿Respuesta corta? OGRO.

Respuesta larga? OGRE es un envoltorio sobre OpenGL, por lo que debe hacer mucho menos trabajo. No tiene que preocuparse tanto por enviar datos a la GPU o por enlazar sombreadores, o ordenar vértices a un nivel bajo. Es mucho más rápido usar OGRE que usar OpenGL para la producción, y es probable que su código también sea (muy marginalmente) más rápido.

Si está interesado en el desarrollo del motor, use GL. De lo contrario, use OGRE. Y probablemente comenzaría con OGRE de todos modos.

El pato comunista
fuente
3

Conocer el hardware de gráficos por computadora no es necesario para el desarrollo de juegos. Es necesario convertirse en programador de gráficos o formar parte del equipo de desarrollo de render en una empresa de juegos (Nota personal: que es la mejor diversión en el desarrollo del juego completo :)).

Si no desea convertirse en ingeniero de renderizado, no es necesario que aprenda openGL o DX para desarrollar juegos.

Notabene
fuente
2

Yo diría que ninguno de los dos es lo mejor para un principiante, pero "mejor" es un término relativo que depende de lo que se busca obtener. Por ejemplo, si lo que quiere es aprender programación de gráficos en 3D para obtener habilidades que podría usar para obtener un trabajo como programador de gráficos en 3D para una compañía de juegos, entonces esas opciones tienen sentido. Con este objetivo, también puede mirar DirectX.

Sin embargo, si tiene alguna otra meta en mente, le recomendaría buscar otras opciones. Para empezar, si bien a partir de su pregunta uno supondría que desea participar en el desarrollo del juego como programador, en realidad no especificó eso. Tanto escribir un motor gráfico en OpenGL como construir sobre Ogre son definitivamente para programadores de núcleo duro.

jhocking
fuente