渲染路径和颜色空间
1:Unity光影效果可以通过设置 渲染路径和颜色空间;
2: 渲染路径: 光照到物体表面,物体着色的时候,算上光的颜色的时候有这么几种光照的着色方式,计算着色的方式
forward: 着色时根据对应影响的灯光,每个光源着色一次,多个光源作用时会着色多次;
优点: 快速,硬件要求低,快速的处理透明; 缺点: 每个光源都要有对应的成本,大量光源反而降低;
Deferred: 延迟渲染路径,将光的颜色着色到几何缓冲器,生成一个屏幕空间的贴图,大量realttime光源模式的时候更真实, 需要硬件水平要求高;
Legacy Vertex Lit: 顶点照明,所有的光照只会在顶点上计算,速度快,最广泛的硬件支持。
但是不支持阴影,法线贴图,灯光遮罩,高精度的高光等;
Legacy Defferred:和Defferfed类似,但是是不一样的算法;
Edit-->ProjectSetting-->Player-->Inspector-->Other Setting -->Rendering--> Rendering Path;
3: 颜色空间:色彩空间决定采用哪种算法计算照明或材质加载时候的颜色混合;
Linear颜色空间
Camma颜色空间
Edit-->ProjectSetting-->Player-->Inspector-->Other Setting -->Rendering--> ColorSpace
Cookies
使用一个带通道的纹理作用到光源上面,这时候光打下来的时候就会根据通道来进行过滤。Cookies纹理白色部分表示允许通过光,黑色的部分表示不允许通过。常用在窗口投影。
实例思路
1: 设置一下导入的纹理,在纹理属性的面板上选择Cookies
配置好Cookies对应的光源类型;
可勾选住Alpha from Grayscale选项;
2:在平行光源中只要把一张带着透明通道的纹理图或者灰度图拖动到光源上的Cookies上;
步骤
1.创建Unity工程和文件目录,保存场景
2.把cookies纹理贴图(文件夹50)复制到res文件夹下面,修改Texture Type纹理类型为Cookie,再设置对应的要受到的光照的Light Type光源类型,如太阳光Directional,
Alpha from Grayscal表示通道反选
Cookie Size表示纹理平铺的数量,越大铺的越少
最后点击Apply
3.创建一个平面plane
4.把cookies纹理贴图拖进Directional Light的Light组件下面的Cookie属性中。
5.发现光照到plane上面的时候有很多阴影,阴影都是收到cookies纹理的影响
改变Cookie Size
镜头光晕
1: 镜头光晕又叫耀斑,模拟摄像机镜头内的一种光线折射的效果;
2: 耀斑的制作: create-->Lens Flare来制作一个耀斑,一般由美术和特效人员完成;
实例
1.导入美术资源包flare.unitypackage(文件夹50),耀斑文件在Assets\PIC\Light Flares目录下的50mm Zoom.flare,它的内部纹理是在Assets\PIC\Light Flares\Sources\Textures目录下的一个psd文件,psd是美术给的,我们只要用50mm Zoom.flare就可以了
2. 耀斑的两种使用方式:
(1) 打开光源的Light组件,将耀斑文件拖入到光源的Flare选项里面,再把摄像机对准光源才会看见光晕;
(2) 在除了光源的物体中添加耀斑组件 Lens Flare,然后关联耀斑文件资源,在某个角度(物体z轴对准摄像机)也可以看见光晕;
太阳光源的光晕
点光源光晕
物体光晕
耀斑文件的制作过程(程序员没必要掌握)
1.create-->Lens Flare来制作一个耀斑文件,命名我MyFlare
2.MyFlare的Flare Texture属性是关联一个有格局的psd文件,有格局就是psd文件里面的各个纹理按照某个规则排列,也就是MyFlare的Texture Layout属性。
1 Large 4 Small 1 Large 2 Medium 8 Small
psd文件
3.设置好了Flare Texture,Texture Layout和各个Elements就可以使用了。
Culling Mask
选择哪些层受光源的影响,如果不勾选某个层,那么在这个层的物体不会受到光照的影响。
注意:
当太阳光源Directional Light的Z轴对准摄像机的时候,在Game视图里会出现一个像太阳一样的圆球,这就是它叫太阳光源的原因。