Existe um bom tutorial que mostra a diferença entre o OpenGL 1. * e 2. *?
Seria muito útil saber para quais funções eu não deveria estar chamando (como glBegin (), presumo).
Existe um bom tutorial que mostra a diferença entre o OpenGL 1. * e 2. *?
Seria muito útil saber para quais funções eu não deveria estar chamando (como glBegin (), presumo).
Respostas:
A página de introdução do OpenGL.org tem uma visão geral, com muitos links para vários tutoriais.
Em resumo, o OpenGL 2.0 vive entre o mundo da função fixa (1.x) e o mundo totalmente programável (2.x +); você ainda pode usar tudo o que o OpenGL 1.x possui, enquanto adiciona shaders. No futuro (3.x +), todos os tipos de sistemas antigos de funções fixas começam a ficar obsoletos; portanto, é melhor ter um começo limpo em vez de misturar os dois mundos.
Também estou surpreso que isso não tenha sido solicitado antes .. ou pelo menos não consegui encontrá-lo em uma pesquisa rápida.
As versões do OpenGL, em geral, não são como as versões do Direct3D. Seu código antigo ainda funciona com as novas versões (com uma exceção). Portanto, o OpenGL v1.4 funcionará perfeitamente no OpenGL 2.1. As versões do OpenGL são adições, não subtrações.
O OpenGL 2.0 e 2.1 adicionam shaders, no OpenGL Shading Language. Eles também adicionam vários outros recursos, como texturas de ponto flutuante, texturas sem poder de duas e assim por diante. A lista completa está disponível na própria especificação OpenGL 2.1 . Basta olhar para as seções "Versão"; eles dirão o que mudou em relação à versão anterior.
A única exceção à regra sobre alterações de API é o OpenGL 3.1 (sim, 3.1, não 3.0). No OpenGL 3.0, várias APIs foram designadas como "obsoletas". Isso significa que o ARB, o comitê encarregado do OpenGL, pode remover essas funções de versões posteriores. Esta remoção ocorreu no OpenGL 3.1. A especificação 3.0 contém uma grande lista de itens obsoletos e a especificação 3.1 é reduzida de acordo.
Observe que você não precisa se preocupar (pelo menos no Windows e Linux. MacOSX é diferente). Você pode executar perfeitamente no modo " compatibilidade ", onde todos os recursos removidos anteriormente retornam. As implementações do OpenGL não precisam oferecer suporte a contextos de compatibilidade (e o Mac OS X Lion não. Ele suporta o núcleo 2.1 ou 3.2, a pedido), mas todos ainda o fazem. Apenas para compatibilidade retroativa com aplicativos mais antigos.
Eu acredito que existem tutoriais para o opengl 1.xe 2.x, mas provavelmente não haverá tutoriais mostrando como eles são diferentes com recursos ou facilidade de uso etc.
Talvez seja melhor procurar tutoriais para a versão específica do opengl, encontrar tutoriais semelhantes e compará-los você mesmo.