光源

1: 光照的本质:就是光的颜色和物体纹理的颜色的混合;
2: 光源类型: 点光源,定向光源,聚光灯, 区域光源;
 区域光的范围会在场景中用黄色的光显示出来;
 z轴是光的方向; 光的强度会随距离衰减;
 只能配合烘培GI使用;
3: 发光材质
 发光材质也算是一种光源,通过给物体添加特殊的着色器,调节其自发光参数可以得到一个柔和的灯光效果。发光材质可以让物体表面发光,
 发光材质只能作用在被标记为static, 或LightStatic的物体上。光源的强度以2的次方速度衰减;

实例

1.创建Unity工程和文件目录,保存场景

2.创建一个平面plane,两个cube作为墙壁,一个cube放在中间

3.配置场景视图到一片漆黑

 第一步:把Hierarchy视图里面的Directinal Light的眼睛关闭,这样场景中就没有光源了,但是还是有微弱的光,是天空盒的环境光

 第二步:Window---->Lighting---->SkyBox---->材质选择FrameDebuggerRenderTarget

4.这个时候就全黑了,打开Directinal Light的眼睛,记得要把Camera的Clear Flags替换Skybox为Dont Clear,不然Game视图无法显示摄像机拍到的内容

5.我们可以自己创建一个点光源create---->Light---->Point Light看效果和调光的强度,Intensity越大光越亮。

6.我们可以自己创建一个聚光灯create---->Light---->Spotlight看效果和调光的强度,Intensity越大光越亮。

7.我们可以自己创建一个区域光源create---->Light---->Arealight,区域光源什么效果都没有,必须配合烘焙使用。要想让其他的物体被这个光源所影响,就要设置其他的物体右上角为static或者Lightmap Static,烘焙需要时间(右下角进度条)

8.我们可以自己创建一个发光材质create---->Material---->Emission为红色,Global Illumi设置为Baked,把材质关联到cube,cube在黑暗中显示出红色,要想让其他的物体被这个光源所影响,就要设置其他的物体右上角为static或者Lightmap Static,烘焙需要时间(右下角进度条)

Light组件的参数

1: Type: 灯光当前的类型;
2: Directional: 光源为平行光
3: Point: 光源为点光源;
4: Spot: 光源为聚光灯;
5: Baking: 全局光照模式 Realtime/Baked/Mix模式;Mix表示静态物体使用Baked烘焙(只对标记成static的物体有效),动态物体使用Realtime实时计算,其他两种都是极端的显示,不管对方的(Baked模式时不是static的全黑)。


6: Range: 灯光所影响的最大访问,平行光不需要;
7: Color: 灯光发出光线的颜色;
8: Intensity: 灯光发射的明亮程度,0为关闭,1为最亮;
9: Bounes Intensity: 控制全局光照中光线的反弹强度。
10: Shadow Type: 灯光投影的阴影类型;
11: Cookie: 使用一个带有Alpha的纹理来制作一个遮罩,使光线在不同的地方有不同的亮度,当光源为点光源是必须为立方图纹理;
12: Draw Halo: 绘制光晕,如果勾选,光源会带有球形光晕;可以调整,后面再说。
13: Flare: (可选) 灯光耀斑,在光源位置绘制;
14: RenderMode: 灯光的渲染模式;
15: Auto自动渲染模式,更具灯光亮度和当前设置的质量在运行时确定;
16: Important: 灯光会按照逐个像素渲染,用于重要的灯光特效;
17: Not Important: 灯光一最快的速度渲染;
18: Culling Mask: 选择某些层不受光源影响;层在右上角可以编辑。

光照贴图

把光照的效果做成贴图贴在物体上面,省计算机资源。

1: 光照贴图的烘培
将不同的物体,和光源预先烘焙出来,生成一个光照贴图。
  (1) 讲要做光照烘培的物体配置成Light static模式;
  (2) 将光源的Light组件上的Baking选为Baked;
  (3) 打开烘培窗口;Window-->Lighting
  (4) 确认无误后,在Lighting窗口中的Scene面板中选择Build进行烘培, 将Auto(自动烘培)关闭;
2: 光照贴图:
光照烘培出来的贴图,贴到模型物体上,减少运算负担,对静态物体有很好的效果;保存在scenes/game_scene文件夹下

光照烘培的参数详解

Window---->Lighting

Object

1: Light过滤按钮:
type: 设定灯光的类型,可以将灯光设置成平行光,点光源,区域光,聚光灯;
Baking: 光源的烘培模式;
Realtime: 对场景的物体都采取实时光照;
Baked: 对静态物体采用烘培光照,对非静态物体不起作用;
Mixed:对静态物体使用烘培光照,对非静态物体使用实时光照;
Bounce Intensity: 调节间接光的强度(从一个物体反射到另外一个物体上的光)
2: Render过滤按钮:
Lightmap static: 游戏对象是否为static /Lightmap static,如果是游戏对象参与到GI计算光照;
Scale In Lightmap: 该值影响了用于选中对象的lightmap的像素数目,默认值为1.0,每个对象所占的光照图像素的比例,可以通过它来优化光照,不重要对象减少比例,重要物体来获得更多的光照图像素来优化场景;
Preserve UV: 保护光照图UV,若模型没在3DMax等建模软件中展示UV,必须勾选住;
AutoUV Max Distance: 手动设置UV最大距离;
AutoUV Max Angle: 手动设置UV最大角度;
Important GI: 让自发光物体的照射范围更大;
Advance Parameters: 设置光照的质量;

Scene

1: 环境光照选项(整个环境的光,有点像滤镜)
Skybox: 场景中使用的天空盒;
Sun: 场景中的太阳光,可以为其指定一个固定的平行光源;
Ambient Source: 环境光的来源;
Ambient Intensity: 环境光的强度;

Ambient Color: 环境光的颜色;
Ambient GI: 指定环境光的光照模式是实时光照还是烘培,若两种GI模式都没有开启,该选项没有效果;
Reflection Source: 反射源,可以指定反射源氏天空盒或一个自定义的立体纹理图;
Reflection Instensity: 反射强度,可以设置来自天空盒或立体纹理图的反射强度;
Reflection Bounce: 反射计算的次数;
2: Bake GI参数:
Bake Resolution: 烘培的分辨率: 若该值为10,代表每一个单位分布10个纹理像素;
Blake Padding: 在LightMap中不同物体烘培图的间距;
Compressed: 是否压缩光照贴图;
Ambient Occlusion: 烘培光照图产生一定数量的环境阻光,环境阻光计算每一点被一定距离内的其他物体或一定距离内自身物体的挡住的遮挡程度(用来模拟物体表面环境光以及阴影的覆盖比例,达到全局光照的效果);
Final Gather: 控制从最终聚焦点发射出的光线的数量,较高数值可以达到更好的效果;
3: Other 设置可以设置光晕的效果;

总结

1.光源有3种光照模式,RealTime,Baked,Mixed

2.物体也可以发光,需要发光材质

3.物体分2种,static和非static

4.烘焙时光源的光照模式必须是Baked或者Mixed,要烘焙的物体必须是static的

5.环境光也是一种光源,也可以用来烘焙

关于Unity中的光照(二)的更多相关文章

  1. 关于Unity中的光照(七)

    全局光照 GI 这里所说的反射就是,一个红色的物体,当太阳照射它的时候,它周围的物体也会变得有点红. 1:Realtime每帧都会计算光照,实时光照是不会反射的,所以它的光影显得单调;2:Baked ...

  2. 关于Unity中的光照(三)

    法线贴图 次时代游戏用的比较多 1:法线贴图是凹凸贴图技术上 的一种应用,有时也称为Dot3(仿立体)凹凸纹理贴图;2: 法线贴图是不增加多边形的情况下,增强模型的细节;3: 法线贴图是高精度模型导出 ...

  3. 关于Unity中的光照(六)

    反射探头 1:镜子金属等具有光滑表面的物体都会反射,而游戏中计算实时反射非常消耗CPU的资源, unity5.0新增了一个反射探头的技术,通过采样点,生成反射Cubemap,然后通过特定的着色器从Cu ...

  4. 关于Unity中的光照(五)

    Mobile Diffuse Unity自带的一种shader,用的比较多,性能还可以.我们默认创建的unit shader基本和它一致,但是没有参与光照计算,看起来和Mobile Diffuse有区 ...

  5. 关于Unity中的光照(四)

    渲染路径和颜色空间 1:Unity光影效果可以通过设置 渲染路径和颜色空间;2: 渲染路径: 光照到物体表面,物体着色的时候,算上光的颜色的时候有这么几种光照的着色方式,计算着色的方式 forward ...

  6. 关于Unity中的光照(一)

    一.光源定义 光源,是一个普通节点加一个Light组件,创建的时候可以直接创建光源节点,也可以先创建一个空节点,再添加Light组件实例. 二.颜色形成 看到的物体颜色受两个很重要的因素的影响,一个是 ...

  7. Unity中创建二维码

    在网络上发现了一个可以把字符串转换成二维码的dll,但是我们要怎么使用他呢.不废话,直接进入主题. 用到的引用 using UnityEngine;using ZXing;using ZXing.Qr ...

  8. 浅析Unity中的Enlighten与混合光照

    0x00 前言 在Unity的5.6版本之前的5.x中,主要使用了Geomerics公司的Enlighten[1]来提供实时全局照明以及烘焙全局照明,在5.6之后Unity引入了新的Lightmapp ...

  9. 关于Unity中的刚体和碰撞器的相关用法(二)

    在关于Unity中的刚体和碰撞器的相关用法(一)的基础上 有一个plane平面,一个ball球体,都挂了碰撞器,ball挂了刚体Rigidbody,写了一个脚本ball挂载在球体上,球体从空中落下装机 ...

随机推荐

  1. unzip:unzip解压文件到指定目录

    1.把文件解压到当前目录下 unzip test.zip 2.如果要把文件解压到指定的目录下,需要用到-d参数. unzip -d /temp test.zip 3.解压的时候,有时候不想覆盖已经存在 ...

  2. my stackoverflow

    https://stackoverflow.com/questions/48017641/how-to-monitor-elastic-stack-without-x-pack https://sta ...

  3. Linux之Kill进程的N种方法

    常规篇: 首先,用ps查看进程,方法如下: $ ps -ef …… smx       1822     1  0 11:38 ?        00:00:49 gnome-terminal smx ...

  4. 11g等待事件之library cache: mutex X

    11g等待事件之library cache: mutex X 作者: dbafree 日期: 2012 年 07 月 01 日发表评论 (0)查看评论   library cache: mutex X ...

  5. js设置cookie(原生js)

    cookie 与 session 是网页开发中常用的信息存储方式.Cookie是在客户端开辟的一块可存储用户信息的地方:Session是在服务器内存中开辟的一块存储用户信息的地方. JavaScrip ...

  6. Linux下字符集的安装

    目前环境中经常会遇到编码转化的问题,UTF-8跟GB2312也有问题.只得在Linux上安装GB2312(在Linux操作系统上又称zh_CN.GB2312)的字符集,具体请看下文. Linux下几个 ...

  7. repo常用指令

    下载 repo 的地址: http://android.git.kernel.org/repo ,可以用 wget http://android.git.kernel.org/repo 或者 curl ...

  8. django模型创建

    定义模型 模型,属性,表,字段之间的关系 一个模型类在数据库中对应一张表,在模型类中定义的属性,对应该模型对照表中的一个字段 定义属性:见下文 创建模型类 元选项 在模型类中定义Meta类,用于设置元 ...

  9. css中span元素的width属性无效果原因及多种解决方案

    先运行下程序看下: <span style='width:300px;'>123</span> 输出:123 可以看到 span会自动根据包含的内容来变化宽度 这是因为:对于内 ...

  10. Node.js学习笔记(1)--一个最简单的服务器请求

    说明(2017-5-2 10:27:03): 1. 需要安装node,http://nodejs.cn/download/ 2. 安装完后,在cmd里输入node -v可以查看版本. 3. 代码foo ...