_ObjectSpaceLightPosオブジェクト座標系でのライトの位置。場合はその他のライト。_Light2Worldライトからワールド座標系の行列。_World2Lightワールドからライト座標系の行列。_Object2Lightオブジェクトからライト座標系の行列。Cgプログラムの外では、名前の末尾に0、Cgプログラムの中では、配列として参照できる。_ModelLightColorは前者では_ModelLightColor0、後者では_ModelLightColor[0]でアクセスできる。(t/20、t、t×2、t×3)、シェーダの中でアニメーションするのに使用。-1.0、反転した射影行列で現在レンダリングしている場合は負の値。Labという枠組みで記述される。....}Properties、SubShader、FallBackで構成される。SubShaderはいくつものPASSで構成される。SubShaderを上から一つずつ見て、ハードウェアに合うSubShaderで実行される。FallBackは何らかの実行をするために呼び出されるシェーダを指定する。Properties(プロパティ)プロパティは以下のものがある。number)colorプロパティを定義。options}2Dテクスチャプロパティを定義。options}長方形(2のべき乗でない)テクスチャのプロパティを定義。options}キューブマップテクスチャのプロパティを定義。ベクトルのプロパティを定義。具体的には以下のように指定する。texgenmodeLightmapModeが指定できる。texgenmodeにはObjectLinearEyeLinearSphereMapCubeReflectCubeNormalが指定できる。texgenモードと直接に対応する。texgenモードはテクスチャ座標の設定ができる。頂点プログラムが定義されている場合は無視されるので固定機能シェーダでしか使えない。LightmapModeタグは何も行われなくなった。Shaderとかで使われてたやつで別のuv座標を使うのに使われてたのかな?Subshaders(サブシェーダー)サブシェーダーは任意個のパスとサブシェーダータグを記述する。一つのパスに対して一回レンダリングするので、処理を軽くするためにパスは最小個数におさえた方がよい。パスには様々なレンダリング設定(State)を定義することができ、パスブロックの中にStateを書くとパスブロックの中でのみStateは有効となり、パスブロックの外のサブシェーダーブロックに書くとすべてのパスに共通するStateを定義することができる。}}パス(PASS)パスにはName、パスTags(サブシェーダータグとは別)、レンダリング設定(State)、テクスチャ設定、BindChannels、ステンシルを記述できる。Nameパスに名前を付けることで、他のshaderから名前をつけたパスを参照(UsePass)できるようにする。"MyPassName"パスTagsPASSがいつどのようにしてレンダリングエンジンによりレンダリングすべきかを指定する。パイプライン(環境光、頂点ライティング、ピクセルライティング)のなかでどの役割であるかを制御したり、他のパラメータを判定するのに使用します。具体的にはLightModeタグとRequireOptionsタグにより指定する。LightModeタグLightModeタグはレンダーパイプライン(リンク)でのパスの役割を決める。サーフェスシェーダーでは自動で生成されている。サーフェスシェーダーを使わずに、自分でカスタマイズしたい場合に指定して使えばいい。常にレンダリングされ、ライティングは適用されません。使用され、環境光、メイン指向性ライト、頂点/SHライトが適用されます。ピクセルライティングが適用されます。使用され、法線や鏡面指数をレンダリングします。使用され、最終的なカラーについて、テクスチャ、ライト、および自己発光、を合成することでレンダリングします。オブジェクトがライトマップされてない場合に使用され、全ての頂点ライトが適用されます。オブジェクトがライトマップされてる場合、ライトマップがRGBMエンコードされるプラットフォームにおいて使用されます。オブジェクトがライトマップされてる場合に、ライトマップがdoub-LDRエンコードされるプラットフォームにおいて(一般にモバイル向けプラットフォームや古いデスクトップ向けGPUにて)使用されます。Casterとしてレンダリングします。Renderingのために、オブジェクトの影をScreen-Spaceバッファに集めます。RequireOptionsタグ特定の外部条件が満たされた場合のみレンダリングされることを、パスで指定することが出来る。Vegetationが有効である場合のみ、このパスをレンダリングします。}頂点ライティングのパイプラインでしようするマテリアルを定義します。Off頂点ライティングを有効、無効にします。カリングモードを設定します。テストモードを設定します。Offデプス書き込みモードを設定します。}フォグパラメータを設定します。CutoffValueアルファテストを有効にします。value頂点ライティングが無効のとき、使用するカラーを設定します。0と記載することで全てのカラーチャネルのレンダリングを無効化します。OffsetUnitsデプスのオフセットを設定します。Unity3.0以降、このコマンドは意図的に定数(すなわちシェーダパラメータではない)しか設定できないことに留意下さい。Off頂点ライティングの別の鏡面カラーを有効、無効にします。Emission頂点ライティングのときに、各頂点ごとのカラーを使用します。}マテリアルブロックはオブジェクトのマテリアルプロパティを定義するのに使用します。Color拡散カラーコンポーネント。オブジェクトのベースカラーです。Color環境光カラーコンポーネント。Numberハイライトのシャープネスで、0から1まで設定できます。0では拡散ライティングに良く似た巨大なハイライトで、1ではわずかな小粒のハイライトです。Colorオブジェクトが、どのような光にも当てられない場合のオブジェクトのカラーここではマテリアルが光に対して反応する方法を設定します。これらのプロパティのどれも必須ではなく、指定しない場合のデフォルト値は黒です(すなわちエフェクトなし)。)内における)は、オブジェクトに当たる全てのライトの分だけ、繰り返される。シェーダはそのようにしている)。コマンドでライティングを有効化する必要がある。コマンドから直接取得される。Onコマンドによりの有効化される。Offカリングは、視点と反対側に向いたポリゴンをレンダリングしない、最適化で,ポリゴンのどちら側をカリングする(描画しない)か制御する。視点と同じ側のポリゴンをレンダリングしない。オブジェクトを反転するのに使用します。カリングを無効にして、全ての面を描画します。特殊なエフェクトで使用します。最初にオブジェクトを法線マップ頂点ライティングでレンダリングした後、次にバックフェースを明るいピンクでレンダリングすると法線が反転しないといけないところがハイライトされるので法線のデバッグができる.またガラスなどの透過オブジェクトの場合、しばしばオブジェクトのバックフェースとフロントフェースを描画したい場合があり,そのときにこの方法が使える.・ZTestデプステストにより、基本的にはシーンの中で最も近いオブジェクト表面のみ描画されるようにする。これはデプステストの実行方法を決める。不透明なオブジェクトを描画する場合、オンにします。Offに切り替えます。}フォグは生成されたピクセルの色を、カメラからの距離にもとづいた一定のカラーに向けて、ブレンドします。フォグにより、ブレンドされたピクセルのアルファ値は修正せず、RGBのみ変更する。デフォルトはGlobalで、フォグがレンダリング設定で有効化されているかによりOffかExp2に変換されます。ColorValueフォグのカラーを設定します。FloatValueExp(指数)モードのフォグの密度を設定します。FloatValueLinear(線形)モードのフォグのNearおよびFarの範囲を設定します。Off、DensityおよびColorはSetting(設定)から同様に取得される。プログラム)を使用する場合、シェーダのフォグ設定は引き続き適用される。Function(固定関数)のフォグ機能がないプラットフォームでは、Unityは実行時に、リクエストされたフォグモードをサポートするために、シェーダにパッチ当てる。Off全てのピクセルをレンダリング(デフォルト)。AlphaValueアルファ値が特定の範囲にあるピクセルをレンダリングするように、アルファテストを設定する。大きい場合のみレンダリング。大きいか等しい場合のみレンダリング。小さい場合のみレンダリング。小さいか等しい場合のみレンダリング。等しい場合のみレンダリング。等しくない場合のみレンダリング。Always全てのピクセルをレンダリング。同等の機能Never全てのピクセルをレンダリングしない。AlphaValueは0と1の間の不動小数点数。標準的な括弧を使用して記述する。DestBlendModeすでに存在しているピクセルに対して、どのように合成するかをブレンディングできめる。Offブレンディングを無効にします。乗算して、2つを加算する。これでSourceあるいはDestinationのカラーをそのまま使用したい場合に使用します。これでSourceあるいはDestinationのカラーを消去したい場合に使用します。Colorの値を乗算します。Alphaの値を乗算します。Alphaの値を乗算します。Color)を乗算します。Alpha)を乗算します。Color)を乗算します。Alpha)を乗算します。Multiplicative上の様にカラーを加算するのではなく,別の処理を行う。valueオブジェクトを単色に設定します。-1はさらに見上げる角度でポリゴンを近づけます。Offこのコマンドは鏡面ライティングをシェーダパスの終わりに追加するため、鏡面ライティングはテクスチャによる影響を受けない。使用されている場合のみエフェクトが有効となる。Emissionメッシュに指定できる頂点カラーを、マテリアルで設定したカラーに優先して、使用する。マテリアルのAmbient、Diffuseの値を頂点カラーで置き換え、EmissionはマテリアルのEmissionの値を頂点カラーで置き換える。コマンドを使用して、適用する合成モードを指定できる。SetTextureコマンドはfragmentシェーダーがある場合、fragmentシェーダーで設定すればよいのでSetTextureは無効となる。PASSのなかに複数のSetTextureコマンド適応させることができ、書いた順番通りにテクスチャの割当が行われる。以下の文法でテクスチャを割り当てる。TexturePropertyNameはプロパティとして定義したテクスチャの名前を指定する。}テクスチャブロックにはテクスチャを適用する方法を記述する。constantColorの3つのコマンドを指定できる。src2src1とsrc2を乗算。結果はどちらの入力よりも暗くなります。src2src1とsrc2を加算。src2src2をsrc1より減算。src3src3とsrc1の補間をsrc2のアルファを用いて行う。アルファが1のときにsrc1、アルファが0のときにsrc3となります。src3src1をsrc2のアルファで乗算しsrc3を加算します。src3src1をsrc2のアルファで乗算しsrc3と符号付加算します。src3src1をsrc2のアルファで乗算しsrc3を減算します。textureのいずれかを指定できる。直前のSetTextureの結果。している場合は頂点カラー。カラーのsum(合計)である。パスのオプションで指定した場合、鏡面カラーは、合成計算の前ではなく、後に加算される。Doubleと指定することで結果のカラーを2倍または4倍明るく出来きる。alphaと指定することでアルファのみを取得できる。constantColorと指定することで色を反転させることができる。以下のようにアルファの計算に別の計算式を指定できる。コマンド定数カラーを定義し、combineコマンドで使用出来きます。コマンドテクスチャ座標を、コマンドで指定された行列で、変換します。以下はテクスチャ座標を回転させる例のコード。1.1、Wiiでは各SetTextureのステージの値は0から1の範囲に挟まれています。2.0の場合、範囲はそれよりも大きい場合もそうでない場合もあるので注意する必要がある場合がある。2.0)は全てSetTextureモードとテクスチャのステージを少なくとも4(大抵は8)サポートしている。別に記述する必要がある。ハードウェアにどのようにマッピングされるかを指定できる。具体的には2つの用法がある。一つ目はUnityではメッシュデータ(source)に対して2つまでuv座標を設定できる。テクスチャ毎にその2つのuv座標のどちらを使うのかを設定できる。2つ目は頂点カラーを含むメッシュの頂点からーを使うかどうかである。これは頂点シェーダーに影響しないので、頂点シェーダーを使う時はこれは無視され、頂点シェーダ内で制御する必要がある。BindChannelsは以下のように設定する。ステージに設定させます。ステージに設定させます。ステージに設定させます。}の形で設定しなければならない。sourceとtargetの一覧は以下。ソースは、次のうちのいずれかになります。頂点ごとの色ターゲットは、次のうちのいずれかになります。頂点の色ステンシルステンシルはピクセル(ピクセルマスク)毎に処理を分けることができ、ピクセルの保存、破棄ができる。ビット整数であり、値の書き込み、増減が可能。後続のドローコール(描画命令)をステンシルバッファに書き込まれている値に対してテストし、ピクセルシェーダを実行する前にピクセルが破棄されるべきか判断できる。いずれかの場合置き換えられる)。