光源

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. Xcode6中添加pch文件

    转自:http://www.cnblogs.com/YouXianMing/p/3989155.html 1. 新建工程: 2. 创建pch文件: 3. 在setting里面进行设置: 4. 一切尽在 ...

  2. 字符串匹配算法KMP算法

    数据结构中讲到关于字符串匹配算法时,提到朴素匹配算法,和KMP匹配算法. 朴素匹配算法就是简单的一个一个匹配字符,如果遇到不匹配字符那么就在源字符串中迭代下一个位置一个一个的匹配,这样计算起来会有很多 ...

  3. zabbix rpm 安装 新增zabbix yum 源 并更新

    需要安装的包: # rpm -qa|grep zabbix zabbix-server-2.4.3-1.el6.x86_64 zabbix-web-mysql-2.4.3-1.el6.noarch z ...

  4. 用NPOI创建Excel、合并单元格、设置单元格样式、边框的方法

    本篇文章小编为大家介绍,用NPOI创建Excel.合并单元格.设置单元格样式.边框的方法.需要的朋友参考下 今天在做项目中,遇到使用代码生成具有一定样式的Excel,找了很多资料,最后终于解决了,Ex ...

  5. JVM垃圾回收--年轻代、年老点和持久代

    关键字约定 Young generation –>新生代 Tenured / Old Generation –>老年代 Perm Area –>永久代 年轻代: 所有新生成的对象首先 ...

  6. Python爬取中国票房网所有电影片名和演员名字,爬取齐鲁网大陆所有电视剧名称

    爬取CBO中国票房网所有电影片名和演员名字 # -*- coding: utf-8 -*- # 爬取CBO中国票房网所有电影片名 import json import requests import ...

  7. 【转载】一个Sqrt函数引发的血案

    转自:http://www.cnblogs.com/pkuoliver/archive/2010/10/06/sotry-about-sqrt.html 源码下载地址:http://diducoder ...

  8. MySQL升级后1728错误解决方案

    MySQL升级后1728错误解决方案 错误 # 1728,Cannot load from mysql.proc. The table is probably corrupted 造成原因:MySQL ...

  9. Asp.net 从客户端中检测到有潜在危险的Request.Form值

    解决方法: 在Web.config文件里找到<httpRuntime>节点,然后修改requestValidationMode="2.0" 修改结果如下: <sy ...

  10. jQuery 学习笔记3 点击弹出一个div并允许拖拽移动

    这里我看了下http://qings.blog.51cto.com/4857138/998878/ 的文章,感谢他的分享. 首先我们有一个a标签和一个div,div默认是不显示的,当用户点击时改为显示 ...