表面着色器光照示例
下面的這些例子是表面着色器(Surface Shaders)中的自定義光照模式(custom lighting models)。普通光照模式的表面着色器在這頁。
因爲延時光照(Deferred lighting)不能與一些自定義 per-material 光照模式(lighting model)很好的運行,在下面大部分例子中我們只在着色器的正向渲染(Forward Rendering)中編譯。
Diffuse 漫反射
Diffuse = 直射光顏色 * max(0,cos夾角(光和法線的夾角) )
Tip:cosθ = 光方向· 法線方向
我們從內置的Lambert光照模式(lighting model)開始:
Shader "Example/Diffuse Texture" {
Properties {
_MainTex ("Texture", 2D) = "white" {}
}
SubShader {
Tags { "RenderType" = "Opaque" }
CGPROGRAM
#pragma surface surf Lambert
struct Input {
float2 uv_MainTex;
};
sampler2D _MainTex;
void surf (Inp