Começarei com um link para uma explicação de como as versões do OpenGL funcionam . Em resumo, o OpenGL (geralmente) é compatível com versões anteriores, portanto, todo o código GL 3 funciona bem nas implementações do GL 4.
A série 4.x de versões do OpenGL representa o que você pode chamar de hardware da classe "Direct3D 11". Expõe a funcionalidade desse hardware. O hardware D3D10 é representado pelas versões 3.x do OpenGL. Portanto, "mudar para o openGL 4" significa abandonar o hardware mais baixo ou ter várias vias de renderização.
Um detalhamento detalhado das mudanças reais de recursos entre 3.3 e 4.2 pode ser encontrado na especificação 4.2 . Observe que muitos recursos (separar_shader_objects, shading_language_420pack, texture_storage) não estão restritos ao hardware 4.x; elas são alterações de API e você pode acessá-las no hardware 3.x por meio de extensões.
A questão mais saliente é a seguinte: o que o GL 4.x me permite fazer que não posso com o hardware 3.x?
O mosaico é provavelmente a característica mais conhecida. Também é provavelmente o menos geralmente útil. Isso não quer dizer que seja inútil; o uso adequado do mosaico pode aprimorar os detalhes nos modelos. Mas para mim, pelo menos, não é realmente a melhor coisa que o GL 4 tem a oferecer.
As sub-rotinas de sombreador são uma ideia interessante. Isso basicamente permite reunir dinamicamente diferentes fragmentos de shaders. Você pode mais ou menos anexar uma função a um ponto de ligação específico em um programa. A especificação é um pouco difícil de seguir, mas é uma boa funcionalidade.
Eu diria que o carregamento / armazenamento de imagens é provavelmente o pouco mais esquecido e ainda mais poderoso recurso da GL 4. Com isso, você tem a capacidade de implementar transparência independente de pedido com desempenho tão bom quanto a OIT. Provavelmente existem muitos outros usos para carregar / armazenar imagens, mas serão necessárias pessoas mais inteligentes para descobri-las.
Existem algumas probabilidades e fins no GL 4. Coisas como suporte de precisão dupla e renderização indireta. São mais coisas no estilo GPGPU, então provavelmente não será muito útil em um jogo.
Mas, geralmente, o GL 4 não muda radicalmente como você implementa o recurso X do GL 3.