1、创建Directional Light并进行设置
2、创建plane并进行设置
3、创建Sphere并进行设置
4、创建Cube并进行设置
5、创建Spotlight并进行设置
6、选中物体-->右上角下拉菜单中选择-->Lightmap Static
window-->ligting-->setting-->Ambient Mode-->Baked--取消勾选Auto Generate
7、光照模型Mode选择 Baked,就是可以生产光照贴图
8、ligting中切换到Global maps标签,选择Generate Lighting
9、现在把光源关掉,依然可以看到灯光
10、给物体添加上自定义的shader,可以看到自定义的shader是不支持光照贴图的
11、添加光照贴图
Shader "Custom/s_baked" {
Properties{
_MainTex("MainTex", 2D) = ""{}
}
SubShader{
pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "unitycg.cginc"
sampler2D _MainTex;
//光照贴图
sampler2D unity_Lightmap;
//unity总是会帮我们传递这样一个值
float4 _MainTex_ST;
float4 unity_LightmapST;
struct v2f {
float4 pos:POSITION;
float2 uv:TEXCOORD0;
float2 uv2:TEXCOORD1;
};
v2f vert(appdata_full v) {
v2f o;
o.pos = mul(UNITY_MATRIX_MVP,v.vertex);
o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
o.uv2 = v.texcoord1.xy*unity_LightmapST.xy + unity_LightmapST.zw;
return o;
}
fixed4 frag(v2f IN) :COLOR{
float3 lm = DecodeLightmap(tex2D(unity_Lightmap,IN.uv2));
fixed4 color = tex2D(_MainTex,IN.uv);
color.rgb*=lm;
return color;
}
ENDCG
}
}
}
运行后的结果:添加了光照贴图