Unity のシェーダーは、次の 3 つの方法のいずれかで記述できます。
ニーズに応じた適切なタイプを選ぶには、マテリアルとシェーダーとテクスチャを参照してください。
選択したタイプに関係なく、シェーダーコードの実際の本体は、ShaderLab と呼ばれる言語で常にラップされます。これは、シェーダー構造を整理するのに使用されます。以下のような感じになります。
Shader "MyShader" {
Properties {
_MyTexture ("My Texture", 2D) = "white" { }
// カラーやベクトルなどのその他のプロパティーもここに記述。
}
SubShader {
// - サーフェスシェーダー や
// - 頂点およびプログラムシェーダー や
// - 固定関数シェーダー
// などの肝心な部分をここに記述。
}
SubShader {
// ここに、上の SubShader の簡単なバージョンを記述。
// 古いグラフィックスカードで実行できるように。
}
}
最初に下記のセクションで ShaderLab シンタックス の基本的なコンセプトを読んでから、他のセクションでサーフェースシェーダー、頂点シェーダー、フラグメントシェーダーを読むことをお勧めします。固定関数シェーダーは ShaderLab のみを用いて記述されているため、ShaderLab のリファレンスに詳細が記載されています。
下の参照には、さまざまな種類のシェーダー例が豊富に含まれています。特にサーフェスシェーダーに関して、さらに多くの例を取得するには、リソースセクション から Unity のビルトインシェーダーのソースを入手できます。Unity の ポストプロセスエフェクト を使用すると、シェーダーで多くの役に立つエフェクトを作成できます。
シェーダーリファレンスを読んでから、マテリアルとシェーダーとテクスチャ を参照してください。