ディレクティブはこの辺↓を用意。あとは次のようにしてエフェクトファイルをコンパイルし、エフェクトを作成する。ファイルデータが既にメモリ上にある場合についてはこちら↓。stringを作り直していますが、どうもUnicode(UTF16)文字列のbyte[]配列はコンパイル対象にならないみたい。正しくコンパイルしました。コンパイル後のシェーダファイルからエフェクトを作成する方法はコチラ↓。最後に、メモリ上にあるコンパイル済みシェーダからエフェクトを作成する方法を示します。ロードの基本はこれになるのではないでしょうか?ところで、コンパイル後のシェーダをファイルに保存するには...なんて、細かいことは次のページを読めば誰でも簡単に解決できます。Classエフェクトを作るには057話のページで紹介したように、DLLをリンクとして追加する必要がある。頂点バッファにどのようなレイアウトで頂点データが格納されているのかを伝える作業です。先ほど示したエフェクトファイルだと...これが頂点レイアウトです。これをデバイスに伝えるには次のコードを書くことになります。名前空間ディレクティブはここで示したとおり。作成時のセマンティクスとバイトオフセットに注目してください。常に同じ入力レイアウトを扱うのならばここはマジックコード化してかまいませんが実際にモデルデータには様々な入力レイアウトが存在するわけで...以下略。自分は次のようにして自動化することを考えました。配列を構築することで、読み手は入力レイアウトを気にすることなく...以下略。これで入力レイアウトごとに読み込みコードを書きなおす必要は無くなるわけです。入力レイアウトを作成する方法を確認しました。入力レイアウトができているという事は、頂点バッファは作成済みということになります。(そうでなければ入力レイアウトを決めることはできませんから)デバイスに頂点バッファを作成する場合に必要になる情報はバッファのbyte配列とサイズだけです。配列とサイズを渡すだけです。描画に使うときは、このバッファで描画をおねがいします、と次のようにセットするだけです。画像イメージファイルからテクスチャを作成する方法は次に示すとおり。メモリ上にテクスチャデータが載っている場合は次のようにします。簡単な方法を示しただけですので、もっと細かく設定したい場合は次のページでやり方を確認してください。Classエフェクト変数の設定方法エフェクトを作成し終えたところで、そこで使用している変数を変更できなければ正しく描画できません。変数へアクセスする方法には変数名、インデックス、セマンティクスを利用する方法があります。セマンティクスを利用して、エフェクト変数を設定する方法を次に示します。このコードが行う内容をイメージするなら、システムからデバイスへ変数情報が渡される情景になります。どんな情景だよ(笑)上記設定内容の描画方法ここまで示してきたデバイスへデータを渡すコードを実行していれば、あとは描画関数を呼ぶだけです。次のコードは、あるテクニックのインデックス使用レンダリングの例です。レンダリングテストは次回以降に行いたいと思います。