surfaceFunction - Cg 関数にはサーフェスシェーダーコードがあります。その関数には void surf (Input IN, inout SurfaceOutput o) の形式があり、Input は自分で定義した構造体です。Input には、サーフェス関数に必要な任意のテクスチャ座標と追加の自動変数が含まれます。lightModel - 使用するライティングモデル。ビルトインのものは、物理ベースの Standard と StandardSpecular です。簡易な、物理ベースでない Lambert (拡散) と BlinnPhong (スペキュラー) も同様です。自前のライティングモデルを記述する方法に関しては、サーフェスシェーダーでのカスタムライティングモデル ページを参照してください。
Standard は出力構造体 SurfaceOutputStandard を使用し、Unity のスタンダード (Metallic ワークフロー) シェーダーにマッチします。StandardSpecular は出力構造体 SurfaceOutputStandardSpecular を使用し、Unity のスタンダード (Specular 設定) シェーダーにマッチします。Lambert と BlinnPhong は物理ベースではありません (Unity 4.x に由来しています) が、これらを使用したシェーダーは、低性能ハードウェアでより高速にレンダリングできることがあります。