回答:
まず、OpenGLのバージョンがどのように機能するかの説明にリンクすることから始めます。つまり、OpenGLは(一般に)下位互換性があるため、すべてのGL 3コードはGL 4実装で問題なく機能します。
OpenGLバージョンの4.xシリーズは、「Direct3D 11」クラスのハードウェアと呼ばれるものを表しています。そのハードウェアの機能を公開します。D3D10ハードウェアは、OpenGLの3.xバージョンで表されます。したがって、「openGL 4への移行」とは、下位のハードウェアを放棄すること、または複数のレンダリングパスを持つことを意味します。
3.3と4.2の間の実際の機能変更の詳細な内訳は、4.2仕様に記載されています。多くの機能(separate_shader_objects、shading_language_420pack、texture_storage)は4.xハードウェアに限定されないことに注意してください。これらはAPIの変更であり、拡張機能を介して3.xハードウェアでアクセスできます。
最も重要な質問はこれです:GL 4.xでは、3.xハードウェアでは不可能なことを何ができるのですか?
テッセレーションはおそらく最もよく知られている機能です。また、おそらく最も一般的に有用ではありません。それが役に立たないと言っているのではありません。テッセレーションを適切に使用すると、モデルの詳細を向上させることができます。しかし、少なくとも私にとっては、それはGL 4が実際に達成した最良のものではありません。
シェーダーサブルーチンは興味深いアイデアです。これにより、基本的に、シェーダーの異なるフラグメントを動的につなぎ合わせることができます。プログラム内の特定のバインドポイントに関数を関連付けることができます。仕様に従うのは少し難しいですが、それは良い機能です。
画像の読み込み/保存はおそらくGL 4機能の中で最も見過ごされているが、最も強力なビットだと思います。これにより、OITが達成するのとほぼ同じパフォーマンスで、順序に依存しない透過性を実装できます。画像のロード/ストアには他にも多くの用途がありますが、それを理解するには賢い人が必要になります。
GL 4にはいくつかのオッズとエンドがあります。倍精度サポートと間接レンダリングのようなものです。これらはGPGPUスタイルのものなので、ゲームではあまり役に立ちません。
ただし、一般に、GL 4は、GL 3から機能Xを実装する方法を根本的に変更するものではありません。