Unity光照版本的话有5.6之前和5.6之后是两个不同版本
这里我用2017.2
天空盒
百度搜索天空盒选一个这样的是个拆开的box的样子的图 分辨率最好大一点不然会糊掉
导入Unity Shape改为Cube
然后直接往Secnce拖
我这个图有对不上 也比较糊
这边自动生成了个材质
Exposure是曝光 越高越亮
Rotation是旋转
打开光照面板 这个就是天空球设置的位置
把之前材质改为红色 创建一个plane和cube 然后发现 物体受到了天空盒子的影响 因为物体里默认的Shader和天空盒颜色进行相乘计算
第二个是渐变颜色 第三个固定颜色
然后颜色就成了这样
怎么才能让物体不受天空盒影响呢 那就要自己创建一个材质
创建拖到cube上
Metallic 是金属程度
Smoothness是光滑程度 0的话就是基本不反射天空盒 1是基本全反射天空盒
然后换到Lighting面板里的这个属性 这是第二个选择 可以反射别的天空球的颜色 不过没必要..
这是第一个属性Resolution是分辨率 越高反射的越侵袭
然后自己搭一个房子 会发现这个影子叠加很真实
然后把 这里设置为Color和Custom 然后把Color拉到最黑
然后就是一个古老的3D建模器了 很LOW 所以Unity为我们做了很多工作去处理效果
选中相机Ctrl Shitf+F聚焦Game视图也可以去看了
找到我们的灯光 颜色改为白色
低配模型 然后我们要一步一步加上去 才有比较真实的样子
光的种类
平行光Directional Light
Directional Light是平行光
Realtime是事实进行计算 Baked是烘焙光 打成烘焙贴图可以节省性能不过物体要是静态的
影子效果 默认是软影子Soft 耗性能比较柔滑 Hard硬影子就比前面节省一点 性能 No就是没影子
然后又可以设置影子的强度 细节效果程度
下面的Cookie是投射 Flare是耀斑
选了个图投射之后效果 这个图要有透明通道
耀斑就是你看光的方向时候就有光晕 也能换成小星星
照明层级 一般都不选UI
点光源 Point light
链接:https://pan.baidu.com/s/16_D4siI_TMYXt-nXX3JzDQ
提取码:u4ts
然后导入素材
用一个新场景干掉灯光
这样搭建一个家拖一点家具
天空盒干掉 真的很黑
然后就是创建第二种光源点光源
然后做一个足球灯 把点光源放到足球灯那里
地板太亮了把地板的Mesh失活掉 然后把别的物体Shader改为默认Shader
调整下亮度 还是能看的
聚光灯 Spotlight
因为没有灯所以用cube代替
这样类似于舞台的效果 或者做手电筒 台灯
Gamma &Linear(光照效果)
在Other Setting里有一个
默认Gamma 还有一个是Linear
我觉得还是暗的话Gamma好一点 亮的话Linear好一点 不过一般手机不支持Linear
然后我改成Liner场景就十分的棒了
环境光 Area Light
创建环境光
点开States
根据定点数进行烘焙 这个顶点数是当前相机观察物体的顶点数
复制多个局域光
把不需要移动的物体都选中勾上静态 也就是别的灯先不勾
现在开始贼卡 右下角开始烘焙
如果报错就找到模型
勾上Apply一下
就是把光照贴图的uv贴到物体的材质uv上
N久后 我有一面墙烘焙炸了
没影子怎么办
有时候发现我们光照没影子是因为
这个Shadow可能是None
如果还没有的话就打开这个
这里控制全局的阴影 Disable就是都不要阴影
这个是阴影效果是高还是低 低的话有锯齿
如果还没有
Cast Shadow 是否有阴影
Receice Shadow接受阴影 不勾选无法把别的物体影子投射到自己身上
还有透明Shader也不产生阴影
全局光照
因为实时光照是要每次重新计算 烘焙光照皂已经计算号了 所以特别省性能
这个是Lighting 面板
第一个是实时全局光照GI
第二个是烘焙全局光照GI
就是和周围物体光照的反射
做一个场景 干掉天空盒
关掉GI
没有光照的地方就特别黑
找到灯光把模式设置为Bake
然后把物体都勾上Static 静态 然后只勾上BakeGI
然后就好了很多
这个Auto最好烘焙后别勾选 不然场景有一点变化就会重新烘焙
然后√去掉 删掉灯光 场景也是亮的 但是移动阴影位置不会变
找到灯光 把模式设置为Mixed
场景内静态对象会被烘焙GI那区计算,动态的就是实时光照
预灯光设定
Unity每盏灯默认烘焙模式是Realtime realtimeGI会间接处理 如果模式改为Baked 这些灯光会透过Unity的烘焙GI系统处理直接光源 和间接光源 ,产生的光照贴图一旦贴到场景上在执行期间是不能改变的
所以这两个GI看游戏怎么是要好的效果还是性能
这两个一般只开一个 不然是双倍渲染
混合光照模式 Mixed Lighting
这个在灯光Mixed下选择模式才有意义
我们选择第三个
是优化好最快然后质量低
这个是实时光源 创建一个点光源 选择影子类型是Hard
然后再把点光源换成混合
然后发现右边的不是静态的Cube没了影子
因为Subtractive模式没有高光还有 还有对动态物体没有效果 不过开销很小
我们烘焙的贴图都在
文件夹是和你的Sence同名的文件夹下
然后切换成默认的
然后多了一个光照贴图 这个是存不同光源的RGBA通道
那么问题来了 如果我们想让玩家经过静态烘焙产生的阴影投射到自己身上怎么办
1.用之后的反射探针
2.就是这样还是这个位置
有的默认就是这个
不开就4个
开了就16个 那不就是实时光源了 光照贴图之前的就没用了
因为开启后是在一定范围内所有静态物体阴影实时计算
Distance就是距离 改成50看看
改成10 在Sence场景 相机 离这个物体距离是10时候就没有效果了
为了省性能我们可以拉一个碰撞在阴影的位置
然后写进入函数 进入时设置这个模式 出去时就改变
private void OnTriggerEnter(Collider other)
{
if (QualitySettings.shadowmaskMode==ShadowmaskMode.Shadowmask)
{
QualitySettings.shadowmaskMode = ShadowmaskMode.DistanceShadowmask;
}
else
{
QualitySettings.shadowmaskMode = ShadowmaskMode.Shadowmask;
}
}
然后是第三个模式 他是最高级的阴影 只烘焙间接光其他都是实时的
然后根据之前设定的dictance 拉远后阴影都消失了
然后之前那个Shadow都没了
总结一下
Subtractive是最低端的 速度最快 不支持多盏灯光
Shadowmask 支持多盏灯光
Baked Indirect最高端的 除了间接光其他的都是实时光
烘焙光照参数
先把BGI模式改为中等
分别是 颜色贴图 方向贴图 RGBA通道贴图
Direct贴图可以在这设置烘焙不烘焙
是凹凸细节 是把方向转为颜色存储进来
这个是Enlighten是CPU烘焙的
这个参数是烘焙多少个参数点 就是精度
调到20然后光照贴图会变小 影子变粗糙 不过我没看出来
上面的是间接光烘焙精度
这个是uv间距 是烘焙贴图里面的 如果烘焙完发现uv信息不对可以调整这个
这个是烘焙贴图大小
然后烘焙贴图就变多了
是否压缩光照贴图
这个是环境光遮蔽 主要是角落的变化
这个是不勾选
勾选
角落会有一些你的灯光 比较真实
模拟光的影响
就是墙红色影响小球 一般是都做完了在勾这个烘焙
里面的参数越高越细腻
这个是所有灯光间接光强度
这个可以解决过爆 在灯离一个物体很近那个物体就特别亮 但是又不想为了近的物体效果就去影响室内的光照 我们要调节这个
还有离得近的物体材质的Albedo 调暗一点
如何烘焙提高速度
找到物体的MeshRenderer勾上
降低这个可以提高烘焙速度但是相应的会丢失一些效果