ShaderLab: Name
ShaderLab : Texture Combiners

ShaderLab :旧ライティング

マテリアルとライティングパラメーターは、ビルトイン頂点ライティングを制御するために使われます。頂点ライティングは、各頂点ごとに計算されている標準的な Direct3D/OpenGL のライティングモデルです。Lighting on はそれを点灯します。ライティングは Material ブロック、 ColorMaterialSeparateSpecular コマンドの影響を受けます。

  • 注意: 頂点シェーダーのプログラムが使われたとき、マテリアル/ライティングコマンドは効果ありません。その場合、すべての計算は完全にシェーダーに記載されています。旧頂点ライティングの代わりに、プログラマブルシェーダーを使用することをお勧めします。あなたはここで説明するコマンドのいずれも使用していないため、代わりにあなたがあなた自身、すべてのライティング、テクスチャリング、自分自身で何かを行う場所 頂点とフラグメントプログラムを定義します。*

頂点カラーリングと&ライティングは、レンダリングされたジオメトリのために計算された最初の効果です。これは、頂点レベルで動作し、テクスチャが適用される前に使用される基本の色を計算します。

構文

トップレベルのコマンドは、固定機能ライティングを使うかどうか、および、いくつかの設定オプションを使用するかどうかを制御します。メインのセットアップは Material Block 、以下に詳細を詳述します。

カラー

    Color color

オブジェクトのソリッドカラーを設定します。色は括弧内の 4 つの RGBA 値、または角カッコの中の色のプロパティー名のいずれかです。

マテリアル

    Material {Material Block}

マテリアルブロックは、物体の材料特性を定義するために使用されます。

ライティング

    Lighting On | Off

マテリアルブロックで定義された設定で、任意の効果を持つようにするには、Lighting ON コマンドを使用してライティングを有効にする必要があります。ライティングがオフになっている場合は、色が Color コマンドから直接取得されます。

セパレートスペキュラ

    SeparateSpecular On | Off

このコマンドは、スペキュラーライティングがシェーダーパスの最後に追加されるので、スペキュラーライティングはテクスチャリングの影響を受けません。Lighting ON が使用されている場合にのみ効果があります。

カラーマテリアル

    ColorMaterial AmbientAndDiffuse | Emission

マテリアルにて設定された色の代わりに頂点ごとの色を使用します。 AmbientAndDiffuse は、マテリアルの Ambient および Diffuse 値を置き換えます。 Emission はマテリアルの Emission 値を置き換えます。

マテリアルブロック

これは、マテリアルが光にどのように反応するかの設定が含まれます。これらの特性のいずれかを省略することができます。その場合には、それらは(つまり、何の効果もありません)黒にデフォルト設定します。

Diffuse color: 広がった色構成要素。これはオブジェクトのベースカラーです。

Ambient color: アンビエント色要素。アンビエント光がオブジェクトに照射したときの色で、ライティングウィンドウで設定します。

Specular color: オブジェクトのスペキュラハイライトの色です。

Shininess number: 0 と 1 の間のハイライトのシャープネス値。0 で拡散照明のようなたくさんの巨大なハイライトを得、1 で小さな斑点を得ます。

Emission color: 光が当たっていないオブジェクトの色。

オブジェクトを照らすライトのフルカラーは、次のとおりです。

Ambient * Lighting Window のアンビエント強度設定 + (Light Color \ * Diffuse + Light Color * Specular ) + Emission

(括弧内)式の光の部分は、オブジェクトを照らすすべての光に対して繰り返されます。

大抵の場合、Diffuse と Ambient は同じ色にしておきたいでしょう( Unity の組み込みシェーダーはすべて、そうなります)。

常に純粋な赤でオブジェクトをレンダリングする。

Shader "Solid Red" {
    SubShader {
        Pass { Color (1,0,0,0) }
    }
}

カラーオブジェクトを白、頂点ライティングを使用する基本的なシェーダー。

Shader "VertexLit White" {
    SubShader {
        Pass {
            Material {
                Diffuse (1,1,1,1)
                Ambient (1,1,1,1)
            }
            Lighting On
        }
    }
}

マテリアルインスペクターに表示プロパティーとしてマテリアルの色を追加した拡張バージョン。

Shader "VertexLit Simple" {
    Properties {
        _Color ("Main Color", COLOR) = (1,1,1,1)
    }
    SubShader {
        Pass {
            Material {
                Diffuse [_Color]
                Ambient [_Color]
            }
            Lighting On
        }
    }
}

そして最後に、本格的に頂点を照らすシェーダー( SetTextureリファレンス·ページを参照してください)​​。

Shader "VertexLit" {
    Properties {
        _Color ("Main Color", Color) = (1,1,1,0)
        _SpecColor ("Spec Color", Color) = (1,1,1,1)
        _Emission ("Emmisive Color", Color) = (0,0,0,0)
        _Shininess ("Shininess", Range (0.01, 1)) = 0.7
        _MainTex ("Base (RGB)", 2D) = "white" {}
    }
    SubShader {
        Pass {
            Material {
                Diffuse [_Color]
                Ambient [_Color]
                Shininess [_Shininess]
                Specular [_SpecColor]
                Emission [_Emission]
            }
            Lighting On
            SeparateSpecular On
            SetTexture [_MainTex] {
                Combine texture * primary DOUBLE, texture * primary
            }
        }
    }
}
ShaderLab: Name
ShaderLab : Texture Combiners