关于Unity中的光照(二)
光源
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中的光照(二)的更多相关文章
- 关于Unity中的光照(七)
全局光照 GI 这里所说的反射就是,一个红色的物体,当太阳照射它的时候,它周围的物体也会变得有点红. 1:Realtime每帧都会计算光照,实时光照是不会反射的,所以它的光影显得单调;2:Baked ...
- 关于Unity中的光照(三)
法线贴图 次时代游戏用的比较多 1:法线贴图是凹凸贴图技术上 的一种应用,有时也称为Dot3(仿立体)凹凸纹理贴图;2: 法线贴图是不增加多边形的情况下,增强模型的细节;3: 法线贴图是高精度模型导出 ...
- 关于Unity中的光照(六)
反射探头 1:镜子金属等具有光滑表面的物体都会反射,而游戏中计算实时反射非常消耗CPU的资源, unity5.0新增了一个反射探头的技术,通过采样点,生成反射Cubemap,然后通过特定的着色器从Cu ...
- 关于Unity中的光照(五)
Mobile Diffuse Unity自带的一种shader,用的比较多,性能还可以.我们默认创建的unit shader基本和它一致,但是没有参与光照计算,看起来和Mobile Diffuse有区 ...
- 关于Unity中的光照(四)
渲染路径和颜色空间 1:Unity光影效果可以通过设置 渲染路径和颜色空间;2: 渲染路径: 光照到物体表面,物体着色的时候,算上光的颜色的时候有这么几种光照的着色方式,计算着色的方式 forward ...
- 关于Unity中的光照(一)
一.光源定义 光源,是一个普通节点加一个Light组件,创建的时候可以直接创建光源节点,也可以先创建一个空节点,再添加Light组件实例. 二.颜色形成 看到的物体颜色受两个很重要的因素的影响,一个是 ...
- Unity中创建二维码
在网络上发现了一个可以把字符串转换成二维码的dll,但是我们要怎么使用他呢.不废话,直接进入主题. 用到的引用 using UnityEngine;using ZXing;using ZXing.Qr ...
- 浅析Unity中的Enlighten与混合光照
0x00 前言 在Unity的5.6版本之前的5.x中,主要使用了Geomerics公司的Enlighten[1]来提供实时全局照明以及烘焙全局照明,在5.6之后Unity引入了新的Lightmapp ...
- 关于Unity中的刚体和碰撞器的相关用法(二)
在关于Unity中的刚体和碰撞器的相关用法(一)的基础上 有一个plane平面,一个ball球体,都挂了碰撞器,ball挂了刚体Rigidbody,写了一个脚本ball挂载在球体上,球体从空中落下装机 ...
随机推荐
- 深入理解Linux内核-定时测量
定时测量:由基于固定频率振荡器和计数器的几个硬件电路完成的. 记时体系概貌: 内核中与时间相关的任务: 硬件设备: 实时时钟(RTC):1.Real Time Clock ,独立于CPU和所有芯片,每 ...
- c++11实现一个简单的lexical_cast
boost中有一个lexical_cast可以用统一的方式来做基本类型之间的转换,比如字符串到数字,数字到字符串,bool和字符串及数字之间的相互转换.boost::lexical_cast的用法比较 ...
- docker使用示例
本文使用docker容器运行wordpress博客,采用了三种方法来演示,docker的使用 自建wordpress容器 采用官方的wordpress容器 采用docker compose容器管理工具 ...
- 使用PostgreSQL遇到的一个问题[column does not exist]字段不存在:
表结构: 在我上面的表结构中,明明有一个叫做"fromdeviceId"的字段,但是查询的时候却提示找不到该字段: 仔细观察错误信息,发现,我的字段明明是有一个大写字母(fromd ...
- Mac git pull失败,最新操作系统导致 SSH issues with Mac OS X High Sierra
Mac 升级到最新操作系统ssh加密方式和gitlub不一样,导致不能git pull 如:mac是md5加密方式,gitlut是aes-256-cbc加密方式 解决方法如下 A coworker ...
- 【论文笔记】Progressive Neural Networks 渐进式神经网络
Progressive NN Progressive NN是第一篇我看到的deepmind做这个问题的.思路就是说我不能忘记第一个任务的网络,同时又能使用第一个任务的网络来做第二个任务. 为了不忘记之 ...
- 字符驱动程序之——poll机制
关于这个韦老师给了一个简单的参考文档: poll机制分析 韦东山 2009.12.10 所有的系统调用,基本都可以在它的名字前加上“sys_”前缀,这就是它在内核中对应的函数.比如系统调用open.r ...
- UDP服务器
用c#开发的一个UDP服务器.可以接收UDP的连接请求.给予响应. 代码已经上传至 GitHub,功能还会不断完善. 界面很丑.我很奇怪的是很少(到现在为止,我都没有见到过),所以界面一直做的不够酷炫 ...
- django模型创建
定义模型 模型,属性,表,字段之间的关系 一个模型类在数据库中对应一张表,在模型类中定义的属性,对应该模型对照表中的一个字段 定义属性:见下文 创建模型类 元选项 在模型类中定义Meta类,用于设置元 ...
- BAT-删除文件夹
相关资料:https://www.cnblogs.com/EasonJim/p/6087636.html 可以删除空的文件夹,但是文件夹中有文件,无法删除. @echo off rd "C ...