Qual é a diferença entre o OpenGL 1.xe 2.x?


13

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).


1
Deixe-me reformular sua pergunta. Qual é a diferença entre renderização de função fixa e Shaders?
precisa saber é o seguinte

3
Essa é uma pergunta completamente diferente.
Jari Komppa 24/01

Respostas:


11

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.


Não consigo encontrar um tutorial específico da versão. (exceto para 3.0)
t123 20/01

Há muitos links nessa página, em "Tutoriais e guias de instruções", mas basicamente você pode escolher entre o OpenGL 1.xe "qualquer outra coisa".
Jari Komppa

@ tm1rbrt: Você não encontrará tutoriais específicos para o 2.1, porque todos os tutoriais válidos para 1.x ainda são válidos. A única razão pela qual há uma interrupção no 3.x é porque é onde as APIs foram removidas. Se você está procurando tutoriais baseados em shader da era 2.1, os tutoriais do lighthouse3d podem ser reparados. No entanto, você deve estar ciente de que o hardware 3.x existe desde 2006, e mesmo agora está incorporado em placas-mãe e até em CPUs. Portanto, o futuro não está no mundo 2.x; tutoriais futuros geralmente se concentrarão em 3.xe acima.
Nicol Bolas

3

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.


Você pode adicionar algo sobre o OpenGL 4. *?
Kromster diz apoio Monica

@ Krom: Não há muito a dizer. Assim como passar de 1.x para 2.x, nada foi removido.
Nicol Bolas

0

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.


Sério, quem continua votando aleatoriamente meus comentários?
LizardGamer #

Por que os votos negativos aqui? Resposta não ótima, mas votos negativos? Não tenho certeza. A questão quer trully algo não muito usual ... Tutorial para mostrar diferenças, que é na maior parte não o que tutoriais não ...
Notabene

@LizardGamer Vejo que você entrou no gamedev.SE há alguns dias, então gostaria de dizer "Bem-vindo!". No entanto, você realmente deve ler as perguntas frequentes aqui: gamedev.stackexchange.com/faq Esta resposta é um exemplo perfeito do tipo de resposta que você NÃO deseja dar. Tente ser mais específico e definitivamente mais construtivo com suas perguntas e suas respostas. As perguntas frequentes devem ajudá-lo a realizar o objetivo deste site e o tipo de conteúdo que estamos procurando. Boa sorte!
usar o seguinte comando

@notabene, esta resposta não responde à pergunta. A única sugestão que dá é basicamente "procurar a resposta". Obviamente, o OP já está fazendo isso fazendo uma pergunta aqui.
precisa saber é o seguinte

@ Amplify91 Obrigado pela única bem-vinda que recebi e já li o FAQ, não acho como é um exemplo do que não pedir? Além disso, ele faz responder à pergunta, já que eu não vi qualquer tutoriais relacionados ao comparar versões de OpenGL
LizardGamer
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.