実際、このようなグリッドを作成する方法はいくつかあります。
最も効率的な方法はインスタンス化です。このようにして、VBOで六角形を1回だけ作成し、これを100、1000、または100万回レンダリングします。ポイント1で述べたように、ユニフォーム付きのシェーダーを使用して手動で行うことができますが、組み込みのOpenGL機能もあります。そのためには、glDrawElementsInstancedを見てください。
インスタンス化されたオブジェクトを一定量以上描画する場合、インスタンス化は他のメソッドよりも高速であることに注意してください。たとえば、1つの大きなVBOを使用すると300の描画が高速になりますが、インスタンス化されたレンダリングを使用すると200万の描画が高速になります。
インスタンス化されたレンダリングを使用する場合、Attribute Divisorsを使用してオブジェクトごとのデータを送信できます。あなたの場合、位置と色を送信したいと思うでしょう。
インスタンス化されたレンダリングに関する優れたチュートリアル:クリック
本当に最善の方法は、両方の方法を試して、1フレームを描画するのにかかるミリ秒数を確認することです。この方法では、両方の方法も学習しますが、常に良い方法です。
また、インスタンス化されたレンダリングは最新のOpenGL機能であり、使用するにはシェーダーを使用する必要があることに注意してください。ただし、最初から正しい方法で学習することが常に最善です。