2016-12-05 9 views
0

私はOpenGL、SDL2、およびLua(これまでのもの)を使用して、Linux用のゲームエンジンを作成しています。私はOpenALをオーディオ用に組み込む予定ですが、これは無関係ですエンティティ/コンポーネント/システムアーキテクチャを使用して、より多くのデータ駆動型環境でOpenGLをセットアップする方法は?

私はこれを設定するのに最善の方法を掴んでいます。多分私はそれの背後にある考えを理解していない。私のプロジェクトではShaderオブジェクトとShaderVariableオブジェクト(基本的にカスタムバリアントクラス)とShaderProgramオブジェクトを持っています。シェーダプログラムには、最大6つのシェーダが含まれています(パイプラインの各部分に対して)。 My Shaderオブジェクトはシェーダをgluintにロードし、isCompiledおよびisLinkedブール変数を持ちます。これらの中には、ShaderVariableオブジェクトのベクトルもあります。 GLSLコードがロードされると、std :: vector * m_attributesは新しいshaderVariableオブジェクト(名前と型からなる)でプッシュバックされます。まだ作成されていないシェーダ間で仕様が異なる場合は、どのようにレンダリングを設定する必要がありますか? (エンドユーザが書き込むもの)

もう1つの質問は次のとおりです。それらは頂点仕様の変数で構成されていますか?

答えて

1

自分のECSを構築する必要があると思われます。 これはかなり深いテーマです。

あなたのECS内にOOPとコンポーネントベースのモデリングを組み合わせたいと思うようにも思えます。

まず、IComponentとIEntityのようないくつかのインターフェイスをマッピングし、いくつかの基本型を構築してそこから処理します。

関連する問題