基础篇-光照

Light(光照)

    在真实场景中,一般存在两种类型的光照效果:直接光源和间接光源。

    直接光源:顾名思义,就是光直接来自于一个光源(灯、太阳或其他)。

    间接光源:是指光来自于另一个物体。

    在Hierarchy视图点击右键可以看到该界面:

    Directional Light:自然光,直接光源。

                Unity3D中的直接照明主要来源于各种灯光物体,而灯光物体本质上是空物体加上灯光组件。直接照明可以产生阴影,但光线不会反射、也不会折射,但可以穿透半透明材质物体。

                Type:灯光类型,所有类型的灯光都共用这个组件。

                Color:灯光颜色,所有类型的灯光都共用这个组件。

                 Mode:灯光照明模式,每种模式对应Lighting面板中一组设定,Spotlight,Point Light,Directional Light共用这个组件。

                        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:阴影贴图的类型,Spotlight,Point Light,Directional Light共用这个组件。Hard Shadow和No Shadow对性能消耗的比较小。硬或软的阴影,将是由灯光所投射的。只适用于编译桌面目标程序(PC)。软阴影更为耗资源。3D物体的MeshRenderer组件上CastShadows可对单个物体控制是否有阴影,前提是灯光开了阴影。

                        No Shadows:无阴影贴图

                        Hard Shadows:硬阴影贴图

                        Soft Shadows:光滑阴影边缘(也就是阴影模糊效果)

                                    Strength:阴影的黑暗程度,数值在0~1之间,1时阴影最明显,0时无阴影。

                                    Resolution:阴影的分辨率。

                                    Use Quality Setting:表示在游戏开始时根据玩家的选择来设置阴影质量。其他四个依次代表从低分辨率到高分辨率。阴影质量通过Edit→Project Setting→Quality来打开

                                        Shadows:在当前质量下是不渲染阴影,还是只渲染硬阴影,还是软硬阴影都渲染

                                        Shadow Resolution:在当前质量下阴影贴图分辨率,这就对应了灯光面板中的Resolution参数。

                                        Shadow Projection:阴影贴图的投影方式,Close Fit方式会优化近处的阴影质量,缺点是运动状态下可能会出现一些波动,Stable Fit方式不会有波动,但质量比较差。有的时候阴影贴图会出错,比如无缘无故多出一条亮缝之类,通常可以选择切换到Close Fit方式来解决,如果不想切换的Close Fit方式,可以适当降低灯光阴影参数中的Normal Bias参数,或者将对应场景物体设置成双面显示。

                                        Shadow Near Plane Offset:很近处不渲染阴影。

                                        Shadow Cascades:阴影贴图叠加方式,可以是单层、2层或者4层。

                                                Cascade Splits:不同层所对应场景区域的比例分配划分。

                                            Shadow Cascades是一种阴影贴图算法,比如我们选择4层叠加,那么实际上会计算4次阴影贴图,每次对应距离摄影机一定距离范围以内的场景物体,而这个距离范围的划分就通过Cascade Splits中所显示的紫、绿、黄、红四种颜色区域所占比例来区分。紫色代表最近处的区域,而红色代表最远处的区域。紫色条越窄代表其对应的那一层阴影贴图所对应的场景区域越小,这样一来该区域的阴影贴图精度就很高了。

                                     Bias:阴影偏移,通常适当增加这个值来修正一些阴影的artifact。值太小,物理表面会有自身阴影;当值太大,光源就会脱离物体。

                                    Normal Bias:法线偏移,通常适当减少这个值来修正一些阴影的artifact(不同于Bias的使用场合)

                                    Near Plane:阴影剪切平面,对于与摄影机距离小于这个距离的场景物体不产生阴影

                    Cookie:这个纹理的阿尔法(alpha)通道作为一个遮罩,使光线在不同的地方有不同的亮度。如果灯光是聚光灯或方向光,这必须是一个2D纹理。如果灯光是一个点光源,它必须是一个立方图(Cubemap)。相当于在灯光上贴黑白图,用来模拟一些阴影效果,比如贴上网格图模拟窗户栅格效果。

                    Cookie Size:缩放Cookie投影。只用于方向光。

                    Draw Halo:灯光是否显示辉光,不显示辉光的灯本身是看不见的

                    Flare:Flare可以使用一张黑白贴图来模拟灯光在镜头中的“星状辉光”效果

                    Render Mode:渲染模式

                    Culling Mask:这个用来照亮选择性的部分场景。

        Point Light(点光源):点光源模拟一个小灯泡向四周发出光线的效果,点光源在其照亮范围内随距离增加而亮度衰减

                Range:光线射出的范围,超出这个范围则不会照亮物体。除Directional外其他灯光共用。

        Spotlight(聚光灯):聚光灯模拟一个点光源仅沿着一个圆锥体方向发出光线的效果,聚光灯在其照亮范围内随距离增加而亮度衰减。

                Spot Angle:灯光射出的张角范围。灯光的聚光角度。

        Area Light(区域光):

                区域光模拟一个较大的发光表面对周围环境的照明效果,通常区域光的灯光亮度衰减很快,阴影非常柔和。unity3D的区域光仅在烘焙光照贴图时有效,并不像Maya的Area Lights一样能动态照亮场景。它只能作用于静态物体(通过在Inspector视图 > 勾选Static来设置),通过烘焙来生成光照贴图,从而减少了性能的开销。

                Width:区域光宽度。

                Height:区域光的高度。

        Reflection Probe(反射探头):Reflection Probe

            Unity3D中并没并真实的Raytrace反射,而是通过反射贴图来模拟所有的反射效果。

            如果我们在场景中放置一个非常强反射的小球,我们就能看到这个小球上实际反射的是我们的Skybox,完全不会反射场景物体。这样一来不仅影响到场景中反光物体的反射正确性,同时也会严重影响整体场景的光照准确性。

            我们可以为场景添加Reflection Probe来矫正不正确的反射贴图。

            Reflection Probe可以看做是一个带有6个摄影机的点,它会渲染该点的6个方向(前后左右上下),将渲染结果拼成一个Cubemap,并应用给一个特定方框范围内的所有物体作为反射贴图。

            对于比较复杂的环境,比如有多个区域的大房间,我们可以放置多个Reflection Probe并手动设置其影响范围。

            Reflection Probe默认不会计算动态物体,仅计算烘焙物体,我们可以修改属性让其将动态物体也包括在内,同时还可以修改属性为Every Frame使其每帧更新以准确反射动态物体的运动过程,还可以增加Lighting Setting中的Reflection Bounces提高反射次数(这样就不会出现强反射物体在另一个反射物体中是黑色的情况了)。但要注意,这些修改都会占用更多的系统资源,尤其是每帧更新反射贴图这样的设置。

        Light Probe Group(光照探头组):Light Probes

               光照烘焙对于动态物体(Dynamic Object),也就是没有被设置成Lightmap Static的物体来说都是不起作用的,如果希望动态物体也能被正确的照明,则需要创建Light Probe Group。Light Probe可以被认为是在场景中的一个小“光源”,而多个Light Probe组成的网络,就是Light Probe Group。这些小光源通过烘焙得到场景中该点的亮度信息,然后整个网络用这个信息来照明动态物体。同一时间内只会有最靠近动态物体的那些Probes会起作用,而且Light Probe离运动物体越近,其照明效果越强。我们可以根据场景光照环境特征来设置合适的Light Probe Group。为场景添加Light Probe Group可以很好的将动态物体与静态场景融合,尤其是在光照环境复杂的室内场景中,尤其需要添加Light Probe Group。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容

  • 这一篇比较偏重于功能介绍,具体的实例操作请参考其他文章:未完成 游戏场景中灯光照明的构成 现实生活中的光线是有反射...
    shimmery阅读 53,374评论 6 59
  • 前言:最近在做一个美术馆的场景,对于灯光的要求非常高,经过几天的调试和在网上查阅一些资料,总结一下。全局光照,简称...
    Tang7阅读 2,398评论 0 9
  • 1.鸟笼逻辑 人们会在偶然获得一件原本不需要的物品的基础上,继续添加更多与之相关而自己不需要的东西。鸟笼效应:假如...
    未尽书阅读 9,721评论 4 6
  • 不管怎样吐槽、抱怨,孩子的问题你必须面对,在仅有的600多天的时间里,死拉硬拽绝不放手,能往前推进一寸就是一寸,有...
    笨笨老男孩阅读 541评论 0 0
  • 江柏文:炒黄金如何控制风险? 一、技术性控制 我们在投资黄金时,特别是在做境外投资时,都会设置止赢和止损点,可以通...
    江柏文阅读 160评论 0 0