Unity は自身の 頂点シェーダーと Fragment シェーダーのプログラミング で、定義済み変数やヘルパー関数を利用できる、いくつかのファイルを持たせることができます。これは標準的な #include
ディレクティブで実現できます、例えば、
CGPROGRAM
// ...
#include "UnityCG.cginc"
// ...
ENDCG
Unity のシェーダー include ファイルは .cginc
拡張子がつけられていて、内蔵されているのは
HLSLSupport.cginc
- (自動でインクルード) ヘルパーマクロやクロスプラットフォームのシェーダーコンパイルの定義。UnityShaderVariables.cginc
- 一般的に使用されるグローバル変数 (自動で含まれます)。UnityCG.cginc
- 一般的に使用される ヘルパー関数。AutoLight.cginc
- ライティングやシャドウ機能、すなわち Surface Shader は内部的にこのファイルを使用します。Lighting.cginc
- 標準的な Surface Shader ライティングモデル、サーフェイスシェーダーを記述するとき自動的にインクルードされます。TerrainEngine.cginc
- Terrain (地形)や Vegetation (植生)のシェーダーのヘルパー関数。これらのファイルは Unity アプリケーションの( Windows では {unity install path}/Data/CGIncludes/UnityCG.cginc 、Mac では /Applications/Unity/Unity.app/Contents/CGIncludes/UnityCG.cginc )で見つかりますので、内容をみてヘルパーコードが具体的に何をしているか見たい場合は参照してください。
このファイルはシェーダーをコンパイルする際に 自動でインクルード されます。マルチプラットフォームのシェーダー開発を手助けするため、さまざまな 定義済みシェーダープリプロセッサーマクロ を定義します。
このファイルはシェーダーをコンパイルするとき 自動的に同梱されます 。それは、シェーダーで一般的に使用されているさまざまな ビルトインのシェーダー変数 を明確にします。
このファイルは、多くの ビルトインのヘルパー関数 と定義を利用するため、Unity シェーダーに頻繁に含まれます。
appdata_base
: 位置、法線、テクスチャ座標の、頂点シェーダー入力。appdata_tan
: 位置、法線、接線、ひとつのテクスチャ座標の、頂点シェーダー入力。appdata_full
: 位置、法線、接線、頂点カラー、ふたつのテクスチャ座標の、頂点シェーダー入力。appdata_img
: 位置、ひとつのテクスチャ座標の、頂点シェーダー入力。