Altseed2では描画方法をマテリアルにより拡張できます。 例えば、画像をそのまま表示するのではなく、反転させたり合成されたりスクロールしたりして表示できます。
マテリアルを使用するためには、シェーダーを先に用意する必要があります。 シェーダーはHLSLというプログラミング言語で描画方法を記述して、そのソースコードを元に生成します。
HLSLには制約があります。
- 頂点シェーダーとピクセルシェーダー間のデータ受け渡し用の構造体の定義は完全に一致する必要があります。
- サンプラーとテクスチャは隙間なく敷き詰める必要があります。
- 頂点シェーダーでテクスチャを使用する場合、ピクセルシェーダーでも同じテクスチャとサンプラーの定義を書く必要があります。
- includeはファイルからシェーダーのソースコードを読み込んだ場合のみ有効です。
シェーダーを作成し、マテリアルに設定します。 そうすると、設定されたシェーダーをマテリアルで使用して描画します。
作成したマテリアルは様々なクラスに割り当てられます。
シェーダーは、直接Altseed2が動いているプログラミング言語の文字列をソースコードとして作成する方法と、テキストファイルを読み込んで作成する方法の2種類があります。 テキストファイルを作成する手間はありますが、includeを使用できるメリットがあります。
マテリアルにはアルファブレンドを設定できます。 描画される先と描画する画像の間で、画像同士をどのように合成するかを指定できます。 下図の画像は、標準で提供されているOpacity, Normal, Add, Subtract, Multiplyの合成結果です。 これら以外にも自由に合成方法を指定できます。
[!code-csharpMain]