Estoy seguro de que ya hay un montón de preguntas como esta, pero la actualización constante de la biblioteca OpenGL las descarta y, en un mes o dos, las respuestas serán inútiles nuevamente.
Estoy listo para comenzar a programar en OpenGL usando C ++. Tengo un compilador que funciona (DevCpp; NO me pidas que cambie a VC ++, y no me preguntes por qué). Ahora solo estoy buscando un tutorial sólido sobre cómo programar con OpenGL. Mi asistente encontró el tutorial proporcionado por NeHe Productions, pero como he descubierto, ¡está MUY FUERA DE FECHA! (aunque reuní una ventana básica para admitir un lienzo de OpenGL)
Luego me conecté en línea y encontré OpenGL SuperBible, que aparentemente usa freeglut. Pero lo que me gustaría saber es si SuperBible 5th edition está actualizada o no. La sugerencia de freeglut que encontré decía que la última versión era 2.6.0, ¡pero ahora es 2.8.0!
- ¿OpenGL SuperBible sigue siendo un lugar bueno y bastante actualizado para comenzar?
- ¿Hay un lugar mejor para aprender OpenGL?
- ¿Se me permite simplemente almacenar freeglut en el directorio de inclusión de DevCpp (tal vez en GL), o hay algún procedimiento importante?
- ¿Hay algún comentario o sugerencia que no haya pensado preguntar ya que recién estoy comenzando?
@dreta me aclaró algunas cosas, así que ahora tengo una mejor idea de qué preguntar:
Creo que me gustaría comenzar con OpenGL utilizando una biblioteca de contenedor en lugar de acceder directamente a OpenGL.
Solo creo que, para un principiante, sería más fácil para mí programar y obtener buenos resultados, aunque todavía no tengo que entender todos los detalles sucios (como mencionó @stephelton).
El problema es que no puedo encontrar ninguna biblioteca que no tenga referencias indefinidas a funciones que ya no son compatibles. Freeglut parece operativo, pero aún usa GLU.
¿Alguien sabe lo que puedo hacer?
Además, intenté compilar la primera fuente de SuperBible, pero obtuve errores ya que GLAPI no se define como un tipo, el error que se origina en la biblioteca GLU.
Me gustaría usar la SuperBible, pero no sé cómo solucionarlo.
Respuestas:
Nuestro residente Nicol Bolas mantiene un libro en línea sobre programación gráfica moderna . Utiliza OpenGL moderno, todo se presenta a un ritmo fácil de consumir, es un buen lugar para comenzar. Lo he estado usando para aprender OpenGL moderno y me ha estado haciendo maravillas en los últimos 2 meses.
Además de que hay fragmentos de conocimiento aquí y allá. El wiki de OpenGL está bastante bien mantenido. El código no es "mejores prácticas" y a veces hay ambigüedad cuando se trata de la versión OpenGL, pero fuera de esa rara ocasión, es un gran recurso.
Si desea aprender sobre GLSL, está el Tutorial básico de GLSL de lighthouse3D. Aunque este es el único conocimiento central en el que "confiaría" en el sitio, el resto tiende a estar desactualizado.
Una vez que empiece a comprender cómo se hace OpenGL moderno, le resultará fácil buscar información específica, filtrar el código desactualizado y, lo más importante, leer la especificación. Solo tienes que empezar por alguna parte.
La mayoría, si no todos, de los libros de OpenGL disponibles están desactualizados. El nuevo SuperBible es un fenómeno de algún tipo y no se lo recomendaría a nadie. La Guía de programación de OpenGL para OpenGL 4.1 sale el 16 de septiembre, desafortunadamente la séptima edición usa código obsoleto, así que solo tienes que esperar, estoy seguro.
Y por supuesto, siempre puedes hacer preguntas aquí.
fuente
Ha pasado un tiempo desde que se hizo esta pregunta, pero espero que esto ayude a las personas que tienen la misma pregunta que usted.
Comencé con OpenGL leyendo un minibook
arcsynthesis.org
. No estoy seguro de quién lo escribió. Parece que el registro del sitio ha caducado o algo así, pero debería poder encontrarlo aquí: http://web.archive.org/web/20140209181347/http://www.arcsynthesis.org/gltut/ . Utiliza OpenGL 3.3, por lo que utilizará la canalización moderna y todas las prácticas que conlleva, pero no estará expuesto a la teselación o sombreadores informáticos.Otro sitio que vale la pena mirar es https://open.gl/ . Parece estar MUY enfocado en principiantes y no cubre cosas tan profundas como el material anterior, pero podría ser un buen punto de partida para las personas que recién comienzan.
Recuerde leer el wiki de OpenGL y google sus nombres de funciones si necesita ayuda. Algunas de las páginas de la wiki son completamente inútiles, pero otras son bastante útiles, tanto como referencia como material de aprendizaje.
fuente
Estos antiguos tutoriales siguen siendo muy relevantes para los principiantes. De hecho, sugeriría comenzar allí en lugar de hacerlo con versiones recientes de OpenGL. Las versiones más recientes han descartado algunos de los métodos más fáciles de dibujar geometría (es decir, dibujo en modo inmediato).
Con las versiones recientes, debe preparar y enviar matrices de vértices y decirle a la tarjeta de video cómo se organizan sus vértices en la matriz que proporciona. Estas cosas son difíciles de depurar.
Algunas versiones (a saber, OpenGL ES 2.x) requieren que proporcione sus propias ecuaciones de iluminación (en forma de Fragment Shaders) y transforme sus propios datos de vértice para que terminen en la pantalla donde lo desee (Vertex Shaders). Esto es aún más difícil de depurar, y no es lugar para un principiante (en mi opinión).
Por lo tanto, sugeriría que vuelva a los tutoriales de NeHe (etc.) y comience allí. Pueden estar "desactualizados" pero aún funcionan. Cuando comience a comprender lo que realmente sucede en la canalización de renderizado en OpenGL y tenga una idea de algunos de los conceptos matemáticos que hacen que estas cosas funcionen, entonces estará listo para analizar algunos de los métodos más actualizados de renderizado en OpenGL.
fuente
Como han dicho otros, la mayoría de los libros están en desuso o son demasiado avanzados. No obstante, recomendaría la quinta edición de SuperBible, pero solo para obtener una visión general rápida de lo que se puede hacer en OpenGL y familiarizarse con cosas como la vista / proyección, etc.
Inmersión inmediata en el OpenGL moderno posiblemente podría abrumarte al principio, así que considera aprender a hacer algunas cosas básicas en las versiones ahora obsoletas.
También me gustaría agregar un sitio con buenos tutoriales que he encontrado últimamente http://ogldev.atspace.co.uk/
fuente
arcsynthesis.org (el sitio mencionado en la respuesta aceptada) parece estar fuera de servicio, desafortunadamente. (EDITAR: ¡está disponible en este enlace !).
Los tutoriales de Anton Gerdelan para OpenGL 4 son muy legibles y están actualizados a mediados de 2014. Los primeros son gratuitos, el resto están disponibles en Amazon, donde tienen excelentes críticas, por un pequeño precio. Hasta ahora he estado satisfecho.
Hay algunos tutoriales más gratuitos para OpenGL 3.3+ en http://www.opengl-tutorial.org/ . Se remontan a 2012, pero pueden ser un buen material complementario para otras fuentes.
fuente