光源

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. IOS 设备备份文件详解 (一)

    IOS设备如果没有越狱的话想获取一些敏感的信息还是有写复杂的,比如获取上网信息,短信,通话记录等等这些,但是有一个通用的方法可以获取到这些信息,那就是IOS 设备的备份功能.文章不涉及如何备份以及恢复 ...

  2. TaskAsyncHelper

    public static class TaskAsyncHelper { /// <summary> /// 将一个方法function异步运行,在执行完毕时执行回调callback / ...

  3. Robolectric使用教程

    转载请标明出处:http://blog.csdn.net/shensky711/article/details/53561172 本文出自: [HansChen的博客] 概述 怎样使用 为项目加入依赖 ...

  4. 使用canvas制作简单表格

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  5. mysql 通过echo的方式写入数据库 中文乱码解决方案

    echo "set names utf8;insert into xxx (path, sn, time, flag) values ('$wav', '$sn', '$secs', 'op ...

  6. SQL Server 数据库自建表

    sysobjects是系统自建的表,里面存储了在数据库内创建的每个对象(约束.默认值.日志.规则.存储过程等). 列名 数据类型 描述 name sysname 对象名 id int 对象标识号 xt ...

  7. css按钮口诀 - CSS BUG顺口溜

    在进行CSS网页布局时遇到BUG,请认真阅读以下内容,非常容易记忆的,不知道哪位高人把CSS BUG编成了顺口溜了!看看好不好记住呢? 一.IE边框若显若无,须注意,定是高度设置已忘记: 二.浮动产生 ...

  8. Mapreduce 进阶

    场景描述 订单需要封装成为一个bean 传入reduce,然后实现排序取出top1,或者分组求和 首先要实现排序就要实现comparable接口 要实现分组top1,那么"相同的bean&q ...

  9. 【Lua】环境安装与HelloWorld

    emmmm...看了W3C和菜鸟教程的环境安装,感觉还是省略了一些东西的. 记录一下在Windows上怎么开始编写Lua的学习过程. 环境安装 直接在Lua官网上找到最新版的下载地址,根据说明下载Lu ...

  10. mongo源码学习(四)服务入口点ServiceEntryPoint

    在上一篇博客mongo源码学习(三)请求接收传输层中,稍微分析了一下TransportLayer的作用,这篇来看下ServiceEntryPoint是怎么做的. 首先ServiceEntryPoint ...