ユニティシェーダ(2)

図1に示すように、名前シェーダを取るために、MenuItemには意味で層状に管理名に「/」セパレータを容易にするために挿入することができます。

シェーダ "NewMenu / colorMaterialShader" {}

図2に示すように、プロパティ(プロパティ)オプションの属性であり、メディアシェーダ材料、と通信しています

プロパティ

{

    名前( "表示名"、PropertyTypeは)=のDefaultValue

    ......

}

名前は、コード内で使用される表示名属性エディタパネルディスプレイは、PropertyTypeはデータ型を使用しています

 Intため、フロート、範囲(最小、最大)数値属性の両方のタイプのために、特性のこれらのタイプのカラー、ベクター複合デジタル、デフォルト値は括弧に囲まれた、これらのタイプの2D、既定のキューブ、3Dテクスチャ通常、ブレースが続く文字列は、文字列が空であるか、または組み込みテクスチャの名前で、中括弧は、属性がユニティ5.0の後に除去されているこれらのコンテンツに適用されるいくつかのテクスチャを指定します。

 

3、SubShaderはSubShader基が意味され、異なる環境に設けられ効果を達成するために、コード・ブロックのセットを実装しています。Unityはシェーダをロードする場合は、すべてのSubShaderグループ峠を通じてゼロからスタートし、成功した達成するために、ターゲットプラットフォーム(ハードウェアサポート)上で実行するための最初のコードを選択し、我々は、これはフォールバックを(使用しません。スペアタイヤああ)。

SubShader

{

    [鬼ごっこ]

    [RenderSetup]

    パス {}

    パス {}

    ......

}

いくつかのレンダリングパイプライン状態設定指示をRenderSetup、同じことが、すべてのブロックパスSubShader基、パスは混合、カリング、各パスでこれらを設定する必要があり、デプステストを区別すること等に適用します

タグは、キーと値のペアは、コントロールのレンダリングのためのように、前方レンダリング、レンダリングに配置されています

4は、パスレンダリングの具体的な目標である、渡すことができますUsePass「Shader_Name / Pass_Nameは、」他のシェーダによって(Unityは内部名が大文字に変換されて渡されます)と呼ばれています

パス

{

   [名前]

   [タグ]

   [RenderSetup]

   ...... // IMPコード

}

SubShaderのようRenderSetup

タグはまた、関連するコンテンツをレンダリングするように設定されています

5フォールバック「Shader_Nameは、」他のコードは、効果を達成するために使用することができないとき、これは最後の選択肢で示されているが、これはスペアタイヤはできません  フォールバックオフ

 

6、ユニティシェーダ、ジオメトリ、国民がユニティシェーダの管轄は、レンダリング状態のセット数を含まれているため、DirectXの感覚上のOpenGL、シェーダではなく、また、実装の詳細の多くを隠し、だけでなく、シェーダとしてセグメントに言いましたシェーダのサポートが十分ではありません。

 

7、GL / HLSL、GLSL ShaderLabを埋め込むことができ、それはENDGLSL間、必要ネストさCGPROGRAM、ENDCGとGLSLPROGRAMあります

パス

{

    ...... //レンダリング状態の内容を設定し、タグなど

    CGPROGRAM

    #pragram頂点ヴェール

    #pragramフラグメントFRAG

    ......

    ENDCG

    ...... //その他のコンテンツの一部を書きます

}

 

ユニークシェーダタイプ、サーフェスシェーダ(サーフェスシェーダ8、Unityのシェーダがある)、その主な機能は、我々は、光の利用多くの照明便宜の実装の詳細を隠蔽することです。他の二つの頂点(頂点シェーダ)および断片(フラグメントシェーダ)シェーダです。

 

おすすめ

転載: www.cnblogs.com/haihuahuang/p/12507165.html
おすすめ