GLSLシェーダプログラム
ShaderLab文法:プロパティ

ShaderLab文法:シェーダ

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Shaderはシェーダファイルのルートコマンドです。全てのファイルは必ずひとつのシェーダのみ定義しないといけません。このシェーダを使用するマテリアルをもつオブジェクトがレンダリングされる方法を示します。

文法

    Shader "name" { [Properties] Subshaders [Fallback] }

シェーダを定義します。マテリアルインスペクタに表示されるか name 以下でリストに記述されます。シェーダは任意のオプションとして,マテリアル設定として表示される Properties の一覧として定義できます。この後は,サブシェーダの一覧,任意でFallback,を記述します。

詳細

プロパティ

シェーダはproperties のリストをもつことが出来ます。シェーダで定義されたプロパティはUnityのマテリアルインスペクタで表示されます。通常のプロパティは,オブジェクトのカラー,テクスチャ,あるいはシェーダにより使用される任意の値です。

サブシェーダとFallback

各シェーダはsub-shaders のリストから構成されます。少なくともひとつが必須です。シェーダをロードするとき,Unityはサブシェーダのリストから,エンドユーザのマシンでサポートされる最初のサブシェーダを選択します。もしサポートされるサブシェーダがない場合,Unityはfallback shader の使用を試みます。

各々のグラフィックスカードは異なるスペックを持ちます。このためゲーム開発者は,ゲームを最新のハードウェアで最高のビジュアルを提供したいけれども,全体の3%しか使用してないハードでのみ利用可能にはしたくない,という永遠の課題に悩まされます。サブシェーダはこのときに活躍します。ひとつのサブシェーダでは夢見るような洒落たグラフィックス効果を持たせ,古いグラフィックスカード向けのサブシェーダを追加します。これらのサブシェーダではエフェクトをより遅く実行するか,詳細を実装しないように選択することが出来ます。 例

考えられるもっともシンプルなシェーダの例です:

// colored vertex lighting
Shader "Simple colored lighting" {
    // a single color property
    Properties {
        _Color ("Main Color", Color) = (1,.5,.5,1)
    }
    // define one subshader
    SubShader {
        Pass {
            Material {
                Diffuse [_Color]
            }
            Lighting On
        }
    }
}

このシェーダではcolorプロパティとして_Color (マテリアルインスペクトで_Main Color_ として表示)を,デフォルト値(1, 0.5, 0.5, 1) として,定義します。次にひとつのサブシェーダを定義します。サブシェーダはひとつのPass から構成され,頂点ライティングを有効にして,自身の基本マテリアルを設定します。

GLSLシェーダプログラム
ShaderLab文法:プロパティ