2011-01-27 21 views
9

¿Qué debo aprender? OpenGL 4.1 u OpenGL ES 2.0?OpenGL u OpenGL ES

Desarrollaré aplicaciones de escritorio con Qt, pero también podría comenzar a desarrollar aplicaciones móviles en unos meses. No sé nada de 3D, 3D matemática, etc. y prefiero gastar 100 dólares en un buen libro que 1 semana cavando sitios web y pasando por prueba y error.

Un problema que veo con OpenGL 4.1 es, hasta donde yo sé, que no hay ningún libro (los más recientes son para OpenGL 3.3 o 4.0), mientras que hay libros sobre OpenGL ES 2.0.

Por otro lado, desde mi punto de vista ingenuo, OpenGL 4.1 parece como OpenGL ES 2.0 + adiciones, por lo que parece que sería más fácil/mejor aprender primero OpenGL ES 2.0, y luego ir por el lenguaje de sombreado, etc

Por favor, no me diga a utilizar NeHe (por lo general, está de acuerdo en que está lleno de malas prácticas/viejas), el tutorial Durian, etc.

Gracias

+1

OpenGL 4 y OpenGL 3 son ambos OpenGL modernos y no la antigua función fija OpenGL. Entonces, si aprende OpenGL 3, puede codificar absolutamente con OpenGL 4, los conceptos principales que debe aprender son 'Objetos de búfer de vértices, Objetos de matriz de vértices (es decir, VBO y VAO)' qué son esos y cómo usarlos. –

Respuesta

8

Sí, definitivamente comenzar con OpenGL eS 2.0. De hecho, yo diría que comience con WebGL (que es casi como OpenGL ES 2.0). La wiki pública sobre here es un buen lugar para comenzar. Lo bueno de WebGL es que no tienes que lidiar con cosas como compilar/vincular y evitas muchos códigos repetitivos para configurar muchas cosas. Entonces te enfocas en el dibujo real (que realmente es el divertido :)). Si tiene un libro de OpenGL ES 2.0, eso aún debería correlacionarse bien con WebGL.

Además, hay un montón de demostraciones en el repository que puede ejecutar inmediatamente (y haga clic en "Ver código fuente" de su navegador para saltar directamente al código). Comience con los simples como: prueba de textura de imagen, cuadro de color, cuadro con textura

Esos ejemplos, junto con su libro OpenGL ES 2.0, deben comenzar de inmediato. ¡Que te diviertas!

EDIT: probablemente debería también señalar que si haces decide ir a la ruta 4,1 OpenGL, es probable que no es necesario esperar a un 4,1 libro de OpenGL. Un libro OpenGL 3.3 o 4.0 sería muy útil.

+0

también tenga en cuenta que en este momento webGL solo está disponible en versiones beta de la mayoría de los navegadores. Entonces, si necesita implementar aplicaciones pronto, deberá crear una versión de escritorio. sin embargo, si solo está * aprendiendo *, es una excelente manera de comenzar con –

2

Las versiones de OpenGL generalmente agregan nuevas funcionalidades a las versiones anteriores, por lo que diría que aprender OpenGL 4.1 es, de hecho, aprender OpenGL 3.0, ya que la base es la misma, especialmente si está comenzando a programar en 3D.

OpenGL ES 2.0 es una especie de subconjunto de OpenGL 3.x.

Con estos "hechos" en mente, diría que aprender OpenGL 3+ u OpenGL ES 2+ es casi lo mismo, con diferencias en los detalles.

Tenga en cuenta que, dependiendo de su plataforma de escritorio (sistema operativo, tarjeta gráfica), es posible que no tenga acceso a una implementación de OpenGL 3.

Una implementación de OpenGL ES 2 en el escritorio también puede no estar disponible.

La sugerencia de Shezan Baig para comenzar con WebGL puede ayudarlo con esto, ya que delega el init de OpenGL. problema para el navegador, algunos incluso implement WebGL over DirectX para mejorar su disponibilidad.

Mi sugerencia es que, mientras aprende, se concentre en principios, algoritmos y matemáticas en 3D. Estos son los más difíciles de hacer bien.Los 'detalles' de implementación no varían mucho con OpenGL (ES o no) o DirectX, o lo que sea.

Más precisamente, sugeriría que se inicia en el lenguaje de programación que está más familiarizado. Me gustaría ir con OpenGL 1.x/2.x en este lenguaje: estas versiones 'antiguas' de GL contienen muchas funciones de ayuda (glBegin/glVertex/glEnd; glMultMatrix; etc.) que están 'en desuso' en 3.x + . Utilizándolos, serás más "productivo" para probar algoritmos.

Hay muchas cosas en la programación en 3D, puede encontrar libros de referencia que se han convertido en freely available y seleccionar qué información es interesante para su caso de uso.

+0

¿Qué sugiere para comenzar con "principios, algoritmos y matemática 3D"? – zxspectrum

+0

Editado la respuesta para incluir algunas sugerencias – rotoglup

0

Sí uso GLES2.

1) Es portátil.

2) Incluso para PC, siga la forma de GLES2 de hacer las cosas. (A menos que su avanzado y necesita características GL3/4).

3) Desea utilizar el período de sombreadores y GLES2 es bueno para aprender de la manera correcta.

Tenga en cuenta que OpenGL chupa las ventanas. Los conductores son generalmente basura. Tome la netbook, admite hlsl 2.0 pero no admite sombreadores GLSL y solo ejecuta GL-1.3

+1

El punto "los conductores son basura" no es cierto en general. Lo que "apesta" son los controladores de Intel, y los netbooks, en general, se suministran con las GPU de Intel. Por otro lado, AMD y NVidia tienen buenos conductores. Y generalmente esto es cierto sin tener en cuenta el sistema operativo. –

+0

No, por mi experiencia, los controladores de OpenGL en Windows normalmente son malos en comparación con D3D (cuando se trata de características y, a veces, de rendimiento en el momento del comentario). El único caso que esto no es cierto es Nvidia. También tenga en cuenta que la publicación es de 2011 y representa las GPU para esa época y más. En el contexto de ahora las cosas pueden haber cambiado. – zezba9000