私はOpenGL、SDL2、およびLua(これまでのもの)を使用して、Linux用のゲームエンジンを作成しています。私はOpenALをオーディオ用に組み込む予定ですが、これは無関係ですエンティティ/コンポーネント/システムアーキテクチャを使用して、より多くのデータ駆動型環境でOpenGLをセットアップする方法は?
私はこれを設定するのに最善の方法を掴んでいます。多分私はそれの背後にある考えを理解していない。私のプロジェクトではShaderオブジェクトとShaderVariableオブジェクト(基本的にカスタムバリアントクラス)とShaderProgramオブジェクトを持っています。シェーダプログラムには、最大6つのシェーダが含まれています(パイプラインの各部分に対して)。 My Shaderオブジェクトはシェーダをgluintにロードし、isCompiledおよびisLinkedブール変数を持ちます。これらの中には、ShaderVariableオブジェクトのベクトルもあります。 GLSLコードがロードされると、std :: vector * m_attributesは新しいshaderVariableオブジェクト(名前と型からなる)でプッシュバックされます。まだ作成されていないシェーダ間で仕様が異なる場合は、どのようにレンダリングを設定する必要がありますか? (エンドユーザが書き込むもの)
もう1つの質問は次のとおりです。それらは頂点仕様の変数で構成されていますか?