DAY02 | Material、Light、Camera | 1.灯光的优点,分类 2.光照系统的性能开销 3.光照系统的适用场合 4.影响图形渲染性能的因素 5.遮挡剔除、LOD、性能优化原理 6.渲染管线原理 7.全局光照系统的优点及适用场合 | 1.同场景加灯光阴影观察性能变化, 2.同场景遮挡剔除,LOD观察性能变化 | 1.《Unity4.x》第八章 光照烘焙技术 2.《Unity4.x》第十章 遮挡剔除技术 3.《Unity4.x》第12章 12.2-3小节,渲染管线 4.《3D数学基础》第15章 图形数学第1小节 | 1-2.了解两项技术操作流程 3.了解渲染原理 |
灯光的分类
1.直接照明(Direct Lighting)
Unity3D中的直接照明主要来源于各种灯光物体,而灯光物体本质上是空物体加上灯光组件。直接照明可以产生阴影,但光线不会反射、也不会折射,但可以穿透半透明材质物体。
1.1 灯光类型 聚光灯、点光源、平行光、面积光,另外还可以创建两种探针(Probe):反射探针(Reflection Probe)和光照探针组(Light Probe Group)
平行光
平行光通常用来做阳光,Unity3D新建场景后会默认在场景中放置一盏平行光。平行光不会衰减。
Type
:灯光类型,所有类型的灯光都其实共用一个组件,本质上是一样的。Color
:灯光颜色Mode
:灯光照明模式,每种模式对应Lighting面板中一组设定-
Realtime
:对应Realtime Lighting -
Mixed
:对应Mixed Lighting -
Baked
:对应Lightmapping Setting
-
Realtime Lighting是新出现的一种烘焙光照技术,它并不像传统的烘焙技术一样直接烘焙间接光照颜色和亮度信息到光照贴图上,而是烘焙物体和物体之间的关系信息,比如A面对B面有漫反射效果,B面对C面有漫反射效果等等。这样一来,只要物体之间的关系不变(也就是所有的静态物体都不移动位置),就不需要重新烘焙,从而使得我们可以在场景中随意运用动态光源(dynamic lights)。而传统的Lightmapping光照贴图方式则不支持动态光源效果(改变光源不会改变场景光照)。Realtime Lighting比Lightmapping要更耗费系统资源,所以手游上就不要考虑了。
Intensity
:灯光强度Indirect Multiplier
:在计算该灯光所产生的间接光照时的强度倍乘Shadow Type
:阴影贴图的类型No Shadows
:无阴影贴图Hard Shadows
:硬阴影贴图Soft Shadows
:光滑阴影边缘(也就是阴影模糊效果)
Baked Shadow Angle
:烘焙阴影的角度Realtime Shadows Strength
:实时阴影强度Resolution
:阴影贴图分辨率Bias
:阴影偏移,通常适当增加这个值来修正一些阴影的artifactNormal Bias
:法线偏移,通常适当减少这个值来修正一些阴影的artifact(不同于Bias
的使用场合)Near Plane
:阴影剪切平面,对于与摄影机距离小于这个距离的场景物体不产生阴影Cookie
:Cookie相当于在灯光上贴黑白图,用来模拟一些阴影效果,比如贴上网格图模拟窗户栅格效果Cookie Size
:调整Cookie贴图大小Draw Halo
:灯光是否显示辉光,不显示辉光的灯本身是看不见的Flare
:Flare可以使用一张黑白贴图来模拟灯光在镜头中的“星状辉光”效果Render Mode
:渲染模式Culling Mask
:
点光源
点光源模拟一个小灯泡向四周发出光线的效果,点光源在其照亮范围内随距离增加而亮度衰减
聚光灯
聚光灯模拟一个点光源仅沿着一个圆锥体方向发出光线的效果,聚光灯在其照亮范围内随距离增加而亮度衰减
面积光
面积光模拟一个较大的发光表面对周围环境的照明效果,通常面积光的灯光亮度衰减很快,阴影非常柔和。
Unity3D的面积光仅在烘焙光照贴图时有效,并不像Maya的Area Lights一样能动态照亮场景。
首先选中要烘焙的物体,标记为Light static.再进行baked