2017-04-21 18:32:48 qq_36282052 阅读数 2802

   小白欢迎评论,共同探讨,共同进步奋斗


   单独使用的LightMapping效果很好静态烘焙,但由于只是把光影烘焙到贴图上面,所以并不会对周围的动态物体产生真正的光照效果。这次来介绍一下LightProbe,这是对LightMapping的一个补充功能,可以让动态物体在烘焙好的场景里面受到光的照射效果可以接收光照信息但没有阴影效果!

 

   接下来说一下具体的用法:

 

   首先在场景里随意搭建一个场景,和人物。我们尽量把人物远离灯光,以免对实验造成影响。

   将灯光设置为烘焙模式,将周围物体改成Lightmap静态物体然后烘焙

烘焙之后的效果是这样的,


   移动一下人物到灯光区域,明显的不场景里面的任何灯光产生影响,人物是黑的。

   接下来我们要开始做LightProbe了。首先在场景添加Light Probe Group组件


   在LightProbe选项里面,虽然有添加、选择、删除和复制探头的按钮,但是却都是灰的,按键不管用(知道的小伙伴帮忙说一下),所以我们可以多复制几个,然后拉到合适位置,如果嫌麻烦的话也可以只放一个光照探头,点中黄点进行拖拽到合适位置。(光照探头越多,回馈的效果也越好


   在烘焙之前,记得把LightProbe物体改成Lightmap静态物体选择人物,然后在网格渲染里面把Use Light Probes勾上(我用的是5.5版本的不用勾选,默认的以下模式即可)。


   烘焙后就可以把三盏灯关闭(甚至删除,不建议删除)了,将人物移动到灯光位置,这时候,我们看到人物不再是灰黑色的了,而是受到了一定的灯光的影响



   其实就是这么简单,LightProbe的用法就是在LightMapping的基础上加上了一些探头的点来记录光源的信息。探头越多,效果

就越明显。各位如果有兴趣,可以深入的研究一下,探头怎样分布,效果才是最好的。

2018-07-12 11:42:48 dan_SHI 阅读数 489

光照系统

unity3D光照系统Lighting菜单中,一共有6个选项,分别为Directional Light(平行光),Point Light(点光源),Spotlight(聚光灯),Area Light(区域光),Reflection Probe(反射探头),Light Probe Group(光照探头组)Light菜单 
其中前四个为unity中的灯光,后两个会实现一些特殊的效果,后边会讲到。

Directional Light(平行光)

平行光是unity中最常见的一种灯光,其原理与太阳光近似,不受position与scale的影响,Rotation会影响到光线照射的方向。下图显示出了平行光的照射方向。平行光 
除了transform组件,所有的Light还有Light组件Light组件 
Type(种类):在此项中可以对灯光的种类进行设置,方便快捷,如果建立灯光出错,可以在这里进行修改。

Baking(烘焙模式):有Realtime(实时烘焙),Baked(仅对静态物体烘焙),Mixed(对静态非静态物体都进行烘焙)。 
Color(颜色):选择灯光的颜色,包含RGBA四种属性,后边的小笔 
可以进行取色。

Intensity(强度):光照的强度,数值在0~8之间。 
Bounce Intensity(反射光强度):光照射到物体上反射出去的强度,数值在0~8之间。

Shadow Type(阴影种类):包含三个选项,分别是No Shadow(无阴影),Hard Shadow(低质量阴影),Soft Shadow(高质量阴影)。Hard Shadow和No Shadow对性能消耗的比较小。选择伊宁之后,会出现新的小菜单。Strength代表阴影的强度,数值在0~1之间,1时阴影最明显,0时无阴影。Resolution代表阴影的分辨率,Use Quality Setting表示在游戏开始时根据玩家的选择来设置阴影质量,其他四个依次代表从低分辨率到高分辨率。剩余的三个属性我目前也不知道什么意思,具体的作用是什么,如果有哪位大神指导,请指教~

Cookie(具体不知道该咋翻译,总不能翻译成蛋糕吧,手动滑稽~):通过设置具有Alpha通道的图片,使阴影出现相对应的图案。 
Cookie

Draw Halo(光晕):勾选之后,灯光周围会出现一圈光晕。 
美丽的光晕

Flare(耀斑):按照Asset→Import Package→Effect依次导入,再点击Flare后的小圆圈,会有三个选项出现,这三个选项都比较接近真实的物理光照,达到逼真的效果。这里要注意,Directional Light的Flare设置,是对天空盒上的太阳进行修改,其他三个Light则是对场景中的灯光组件进行更改 
这里写图片描述 
Render Mode:这个我暂时也不知道,哭脸~~

Culling Mask(剔除遮罩):通过设置物体的Layer层,使得该层的物体接受(或不接受光照)。 
这里写图片描述
这里在红色箭头指示的位置添加了No Light层,并将场景中球的Layer设置为No Light。在Directional Light的Culling Mask中,把No Light勾选掉,场景中的小球就不再接受光照。

Point Light(点光源)

点光源顾名思义,就是从一个点向四周发散光线,和蜡烛的光线类似。点光源
其Light组件与Directional Light基本相同,用法也基本相同,不同之处在于,点光源多了一个Range(范围),在图中可以清楚地看到由线条组成的一个圆,即点光源的范围。

Spotlight(聚光灯)

聚光灯是由一个点沿一个方向发射的束状光线,与生活中的手电筒类似。其Light组件与Directional Light基本相同,不同在与,他多了Range,与Spot Angle两个属性。Range代表照射光线的远近,Spot Angle代表照射的范围。 
这里写图片描述

Area Light(区域光)

区域光是这四种灯光中最奇特的一种,选择区域光之后,我们可以发现,在Type后,有Baked Only这个提示,这种灯光仅限于烘焙使用。它只能作用于静态物体,通过烘焙来生成光照贴图,从而极大的减少了性能的开销。这里的Plane设置成了静态
区域光没有阴影选项
区域光没有阴影选项,且极大的节省的性能的消耗,一般可以用在房屋壁灯或者显示器等光照效果中。


反射探头(Reflection Probe)在后边的材质(Material)中会讲到,光照探头(Light Probe Group)我会放在下一篇讲。

以上属个人见解,如有错误,请指出,会及时修改,如果有大神能帮忙补充,感激不尽!!

此文章转载于@研究者18        https://blog.csdn.net/qq_30687901/article/details/53792155

感谢这位作者的撰写

2016-12-22 23:12:57 qq_30687901 阅读数 678

光照探头组(Light Probe Group)

在上一章中,提到了烘焙(Bake)这个属性,烘焙的作用是对静态物体贴上一层光照贴图,以减少运行过程中光照系统对性能的消耗,但是我们的项目中不可能全是静态的物体,动态的物体在烘焙光照下是没有反应的,这样看着会很别扭,此时就需要用到光照探头组。
光照探头组通过对周围烘焙过的物体进行探测,来为场景中的动态物体赋上相近的光照,达到实时光照的效果,但性能比纯粹的动态光照要节省很多。
下面是光照探头组的使用实例。
这个场景中,后边的球以及Plane都设置为静态,两个点光源Baking选择为Baked,仅对静态物体烘焙。可以看到后边的球有光照,前边的非静态的球是无光照的。
这里写图片描述
添加光照探头组
这里写图片描述
从图中可以看到,新建的光照探头组,是一个只存在顶点的正方体,其定点处黄色小球即为光照探头。PS:这里我将Window→Light中的Auto勾选掉了,才会呈现这样的效果,不然unity默认是自动烘焙,会直接将场景烘焙好。

在右边的面板中,我们可以看到一些信息,其四个按钮分别是Add Probe(添加探头),Select All(全选),Delete Selected(删除选中探头),Doplicate Selected(复制选中探头),其作用即为字面上的意思。

为了使效果更加明显,这里我们多创建一些探头。
这里写图片描述

之前我取消了自动烘焙,这里需要手动点击,烘焙后可以发现,非静态的球也有了光照,点击该球发现其与该区域内的探头形成了几何锥体。(这里为了让效果更明显一些,我将点光源的光照强度由2设置成了3,只会效果明显,不存在其他影响)
这里写图片描述
这里写图片描述

有了光照探头之后,在移动非静态物体时,该物体上的光照会受到静态烘焙光照的影响,但与实时光照相比,会很大的节省资源。


这次就写这么多,由于反射探头与材质有关联,下一篇会一起写下来。如果在阅读的时候发现有什么不对的地方,还请指出,谢谢~~


2017年12月19日更新

关于反射探头,我大概实验了一下,这种东西平时我个人用的很少,公司里这个工作属于美术负责,美术人员在交接模型时,反射探针直接打包在模型的预制体中,所以这里我也就不再写了,毕竟一年过去了都(逃

反射探针这一部分,这位dalao写的就非常的详细,如果有需要请移步:
http://blog.csdn.net/yupu56/article/details/53487216

2018-03-10 15:02:25 weixin_38239050 阅读数 1150

一. Unity光照系统

烘焙(是全局光):对场景进行灯光烘焙将光照信息储存在Lightmap中,当场景运行时,Unity直接读取Lightmap中数据,只进行一次计算。

要烘焙的物体应标记为Lightmap Static。

 

Unity光照分为全局光照和局部光照

1.全局光照:简单的说就是考虑到环境中所有表面和光源相互作用的照射效果

2.局部光照:简单的说就是只考虑光源到模型表面的照射效果

 

全局光照,简称GI,分为”实时”和”预先计算好的(离线)”两种光照。

    1.实时光照(光、物体改变随时计算),首先Light的Inspector-Light-Mode属性应是Realtime或者Mixed。

        1.1当选择Realtime时,在Windows-Lighting-Settings-Lighting选项卡有Ambient Mode选项,其中包含Realtime和 Baked,他跟下面的Realtime Lighting和Mixed Lighting(包含烘焙和实时光照两种)有关。当选择Realtime时,下方的Realtime Lighting和Mixed Lighting都勾选,也只运行实时光照Realtime Lighting脚本,并不会进行烘焙。若选择Baked,则 应取消勾选Realtime Lighting,只选择Mixed Lighting(否则效果是Realtime Lighting和Mixed Lighting的叠加)。此时既进行实时光照,也进行烘焙。

        1.2当选择是Mixed时,代表既进行全局光照,又进行局部光照。我们应用场景是:让静态物体烘焙,动态物体进行局部光照。Lighting选项卡直接取消勾选Realtime Lighting,选择Mixed Lighting,Ambient Mode会自动选择Baked。

    2.预先计算好的光照(光、物体位置改变,影子不会改变)。Light的Inspector-Light-Mode属性是Baked,且Lighting的Ambient Mode选择Baked或者取消勾选Realtime Lighting,选择Mixed Lighting(不可取消Mixed Lighting,否则就无法烘焙了)。此光照不会根据光照改变而实时改变。

勾选Auto Generate会在改变影响光照的相关参数后自动渲染光照。

 

 

二. 光照探头Light Probe Group

Area Light区域光只在Bake模式下工作,运动的小球没有被标记为Lightmap Static,所以不受Bake(无论Bake还是Mixed中的Bake[仍受局部光照影响])的影响,无法显示区域光的颜色。所以需要添加光照探头。

光照探头的作用:收集附近的光照信息,对探头范围内的对象进行实时渲染。

未添加光照探头(下)

添加光照探头(下)

 

 

三. 反射探头

反射探头的Type应为Realtime,且Refresh Mode应为Every frame(每一帧),这样运行时就能实时看到反射的画面了。

位置1(下)

位置2(下)

 

unity里Mixed Lighting下面几个Lighting Mode的解释:
 

三种模式,主要区别在于烘焙出的光照图、阴影图内容,也就影响到动、静态物件在运行时的受光、投影效果,效果越好越丰富的,开销自然也越大。

1、substrative:效果最单纯,所有颜色和阴影都烘死在光照图上,运行时静态物件不参与阴影图渲染,结果是不管光源怎么变,静态物件的受光和阴影都不变。

2、shadowmask:比substrative好一点,静态物件的阴影不变,但是受光情况可以随光源变化而变

3、baked indirect:仅烘焙间接光照(也就是物体之间漫反射导致的表面明暗效果),其它东西(如阴影)全部在运行时计算,跟实时差不多了。

 

 

Unity-BattleStar光照系统小结效果图:

注意:反射探头Reflection Probe更改大小的方法是点击“Edit bounding volume”按钮,修改Scene场景出现的5个小点的位置。

 

赛隆网讨论社区:http://www.vr910.com/forum.php?mod=viewthread&tid=5957&fromuid=30507

2019-05-10 12:30:22 Marccco 阅读数 374

menu: Component > Rendering > Light Probe Group.
光照探头可以挂在任意的物体上,但是最好是新建一个空物体

会出现的问题:Ringing

Under certain circumstances, Light Probes exhibit an unwanted behaviour called “ringing”. This often happens when there are significant differences in the light surrounding a Light Probe. For example, if you have bright light on one side of a Light Probe, and no light on the other side, the light intensity can “overshoot” on the back side. This overshoot causes a light spot on the back side.(在某些情况下,光探测器表现出一种不受欢迎的行为,称为“振铃”。这种情况经常发生在光探针周围的光有明显差异的时候。例如,如果光探头的一侧有明亮的光,而另一侧没有光,则光强会在背面“超调”。这种超调会在背面产生一个光点。)
解决方法:
1.In the Light Probe Group component, enable Remove Ringing. (在光探测组组件中,启用清除振铃。)
2.在游戏中设置障碍,使玩家无法到达能够看到光点的位置。
3.Avoid baking direct light into Light Probes. Direct light tends to have sharp discontinuities (such as shadow edges), which makes it unsuitable for Light Probes. To only bake indirect light, use Mixed lighting. Use Realtime GI instead of Light Probes to light dynamic GameObjects.(避免将光直接烘烤进光探头。直接光往往有尖锐的不连续(如阴影边缘),这使得它不适合光探针。只烘烤间接光,使用混合照明。使用实时GI而不是光探针来处理动态游戏对象。)

注意:
1.光照探头的放置
为了优化光探针所存储的数据量,以及在游戏进行时所做的计算量,通常应该尽量减少光探针的放置,但是也应该放置足够的光探测器,这样从一个空间到另一个空间的光的变化就会被记录在你可以接受的水平上。
如何放置:您可能会将光探针以更紧凑的模式放置在具有复杂或高度对比度的光的区域周围,并且您可能会将它们以更分散的模式放置在光没有显著变化的区域。
例如:
公路上放置就相对稀少,而房屋放置的相对紧密
2.即使你的游戏是在2D平面上进行的(例如,汽车在路面上行驶),你的光探头也必须形成一个3D体块。因为光探头系统不能从光探头计算出可感知的四面体体积。

3.您在选择光探针位置时必须考虑到照明是在光探针之间插入的。如果你的光探头不能充分覆盖整个场景中光线的变化,就会出现问题。


出现的原因:
光探头只放在路灯附近,而没有放在黑暗区域,那么来自灯的光线就会“bleeds”黑暗的缝隙,照射在移动的物体上。这是因为光线从一个亮点插入到另一个亮点,而没有关于中间黑暗区域的信息。
解决:
如果您正在使用实时或混合光,这个问题可能不太明显,因为只有间接光通过间隙。如果你使用的是完全烘烤过的灯,这个问题就会更加明显.
解决这个问题,你应该在黑暗区域放置更多的光探头,如下图所示:

没有更多推荐了,返回首页