これは OpenGL に関する質問ではなく、C++ の組織に関する質問です。
(この質問のために) すべてのジオメトリをレンダリングするノードを持つ単純なシーン グラフ (n ツリー) を作成します。より具体的には、draw()
メソッド内にいくつかの OpenGL 描画コマンドがあります。
最適化の理由から、同様のオブジェクトをまとめてバッチ処理し、一度に描画したいと考えています。このため、OpenGL の「状態セット」と呼んでいるものを表現する方法が必要です。状態セットは、OpenGL バインドの集まり、または X オブジェクトで draw が呼び出される前に設定され、後で設定解除されるコマンドです。
そのため、ステート セットには、このステート セットを使用するノードの描画コマンドの前後に、少なくともset()
andがレンダリング システムによって呼び出されます。unset()
私の質問は、上記の状態セットを表現する方法ですか? 確かに多くの関数で実行できますが、セットに名前を付けて呼び出すことができるようにしたいと考えています。同様に、ノード A には の状態セットがLIGHTING_AND_SHADOW
あり、ノード B には がありますCEL_SHADING
。
このため、基本的にとメソッドstateSet
のインターフェイスである抽象クラスを呼び出し、各状態セットをそれから継承させることは良い考えのように思えます。ただし、本質的に名前を取得するには、一連のオブジェクトを作成する必要があります。もっと良い方法があるようです。set()
unset()
stateSets
また、理想的には、簡単に思い出せるすべてのリストが欲しいです。たとえば、レンダリングを開始する前に、シーン グラフ内のすべてのノードをstateSet
.
何か案は?