Déjame reformular tu pregunta. ¿Cuál es la diferencia entre renderizado de funciones fijas y Shaders?
EnabrenTane
3
Sin embargo, esa es una pregunta completamente diferente.
Jari Komppa
Respuestas:
11
La página de inicio de OpenGL.org tiene una descripción general, con muchos enlaces a varios tutoriales.
En resumen, OpenGL 2.0 vive entre la función fija (1.x) y el mundo totalmente programable (2.x +); aún puede usar todo lo que OpenGL 1.x tiene, mientras agrega sombreadores. Sin embargo, en el futuro (3.x +), todo tipo de sistemas de funciones fijas antiguos comienzan a quedar obsoletos, por lo que puede ser mejor tener un inicio limpio en lugar de mezclar ambos mundos.
También me sorprende que esto no se haya preguntado antes ... o al menos no pude encontrarlo en una búsqueda rápida.
No puedo encontrar un tutorial de versión específica. (excepto 3.0)
t123
Hay muchos enlaces desde esa página, en "Tutoriales y guías prácticas", pero básicamente puedes elegir entre OpenGL 1.xy "cualquier otra cosa".
Jari Komppa
@ tm1rbrt: No encontrará tutoriales específicos para 2.1, porque todos los tutoriales 1.x válidos siguen siendo tutoriales 2.1 válidos. La única razón por la que hay una interrupción en 3.x es porque allí se eliminaron las API. Si está buscando tutoriales basados en sombreadores de la era 2.1, los tutoriales de lighthouse3d son útiles. Sin embargo, debe tener en cuenta que el hardware 3.x ha existido desde 2006, e incluso ahora está integrado en placas base e incluso CPU. Entonces el futuro no está en el mundo 2.x; los tutoriales futuros generalmente se centrarán en 3.xy superior.
Nicol Bolas
3
Las versiones de OpenGL, en general, no son como las versiones de Direct3D. Su antiguo código aún funciona con las nuevas versiones (con una excepción). Por lo tanto, OpenGL v1.4 funcionará bien bajo OpenGL 2.1. Las versiones de OpenGL son adiciones, no restas.
OpenGL 2.0 y 2.1 agregan sombreadores, en el lenguaje de sombreado OpenGL. También agregan varias otras características, como texturas de punto flotante, texturas sin potencia de dos, etc. La lista completa está disponible en la propia especificación OpenGL 2.1 . Solo mire las secciones de "Versión"; Te dirán lo que cambió con respecto a la versión anterior.
La única excepción a la regla sobre los cambios de API es OpenGL 3.1 (sí, 3.1, no 3.0). En OpenGL 3.0, varias API se designaron como "obsoletas". Esto significa que el ARB, el comité a cargo de OpenGL, podría eliminar estas funciones de versiones posteriores. Esta eliminación ocurrió en OpenGL 3.1. La especificación 3.0 tiene una gran lista de cosas en desuso, y la especificación 3.1 se recorta en consecuencia.
Tenga en cuenta que no tiene que preocuparse (al menos en Windows y Linux. MacOSX es diferente). Puede funcionar bien en modo " compatibilidad ", donde todas las características eliminadas anteriormente regresan. Las implementaciones de OpenGL no tienen que admitir contextos de compatibilidad (y Mac OS X Lion no. Es compatible con el núcleo 2.1 o 3.2, a petición), pero todos lo hacen. Solo por compatibilidad con aplicaciones anteriores.
@Krom: No hay mucho que decir. Al igual que al pasar de 1.xa 2.x, no se eliminó nada.
Nicol Bolas
0
Creo que hay tutoriales para opengl 1.xy 2.x, pero lo más probable es que no haya tutoriales que muestren cómo son diferentes con características o facilidad de uso, etc.
Puede ser mejor buscar tutoriales para la versión específica de opengl, encontrar tutoriales similares y compararlos usted mismo.
En serio, ¿quién sigue votando al azar mis comentarios?
LizardGamer
¿Por qué los votos negativos aquí? ¿No es una gran respuesta, sino votos negativos? No estoy seguro. La pregunta realmente quiere algo no muy habitual ... Tutorial para mostrar diferencias, eso no es principalmente lo que hacen los tutoriales ...
Notabene
@LizardGamer Veo que te uniste a gamedev.SE hace unos días, así que me gustaría decir: "¡Bienvenido!". Sin embargo, realmente debería leer las preguntas frecuentes aquí: gamedev.stackexchange.com/faq Esta respuesta es un ejemplo perfecto del tipo de respuesta que NO desea dar. Trate de ser más específico y definitivamente más constructivo tanto con sus preguntas como con sus respuestas. Las preguntas frecuentes deberían ayudarlo a comprender el propósito de este sitio y el tipo de contenido que estamos buscando. ¡Buena suerte!
Amplify91
@notabene esta respuesta en realidad no responde la pregunta. La única sugerencia que da es básicamente "buscar la respuesta". Obviamente, el OP ya lo está haciendo haciendo una pregunta aquí.
Amplify91
@ Amplify91 Gracias por la única bienvenida que recibí, y ya leí las preguntas frecuentes, ¿no encuentro cómo es un ejemplo de lo que no debo preguntar? Además, responde la pregunta, ya que no he visto ningún tutorial relacionado con la comparación de versiones de opengl
Respuestas:
La página de inicio de OpenGL.org tiene una descripción general, con muchos enlaces a varios tutoriales.
En resumen, OpenGL 2.0 vive entre la función fija (1.x) y el mundo totalmente programable (2.x +); aún puede usar todo lo que OpenGL 1.x tiene, mientras agrega sombreadores. Sin embargo, en el futuro (3.x +), todo tipo de sistemas de funciones fijas antiguos comienzan a quedar obsoletos, por lo que puede ser mejor tener un inicio limpio en lugar de mezclar ambos mundos.
También me sorprende que esto no se haya preguntado antes ... o al menos no pude encontrarlo en una búsqueda rápida.
fuente
Las versiones de OpenGL, en general, no son como las versiones de Direct3D. Su antiguo código aún funciona con las nuevas versiones (con una excepción). Por lo tanto, OpenGL v1.4 funcionará bien bajo OpenGL 2.1. Las versiones de OpenGL son adiciones, no restas.
OpenGL 2.0 y 2.1 agregan sombreadores, en el lenguaje de sombreado OpenGL. También agregan varias otras características, como texturas de punto flotante, texturas sin potencia de dos, etc. La lista completa está disponible en la propia especificación OpenGL 2.1 . Solo mire las secciones de "Versión"; Te dirán lo que cambió con respecto a la versión anterior.
La única excepción a la regla sobre los cambios de API es OpenGL 3.1 (sí, 3.1, no 3.0). En OpenGL 3.0, varias API se designaron como "obsoletas". Esto significa que el ARB, el comité a cargo de OpenGL, podría eliminar estas funciones de versiones posteriores. Esta eliminación ocurrió en OpenGL 3.1. La especificación 3.0 tiene una gran lista de cosas en desuso, y la especificación 3.1 se recorta en consecuencia.
Tenga en cuenta que no tiene que preocuparse (al menos en Windows y Linux. MacOSX es diferente). Puede funcionar bien en modo " compatibilidad ", donde todas las características eliminadas anteriormente regresan. Las implementaciones de OpenGL no tienen que admitir contextos de compatibilidad (y Mac OS X Lion no. Es compatible con el núcleo 2.1 o 3.2, a petición), pero todos lo hacen. Solo por compatibilidad con aplicaciones anteriores.
fuente
Creo que hay tutoriales para opengl 1.xy 2.x, pero lo más probable es que no haya tutoriales que muestren cómo son diferentes con características o facilidad de uso, etc.
Puede ser mejor buscar tutoriales para la versión específica de opengl, encontrar tutoriales similares y compararlos usted mismo.
fuente