请选择 进入手机版 | 继续访问电脑版

unity:灯光效果(诠释)

[复制链接]
孤单 发表于 2021-1-1 18:30:20 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
文章目次



  一、灯光 (Light)检视器 (Inspector)


Unity 中有 4 种灯:

  • 方向灯 (Directional light) :放置于无穷远处并影响场景中的一切,就像太阳一样。
  • 点灯 (Point light): 从一个位置向所有方向发射相同强度的光,就像灯胆一样。
  • 聚光灯 (Spot light): 从一个点向一个方向发光,仅照亮一个锥形范围内的对象,就像汽车的前灯一样。
  • 区域灯 (Area light):(仅适用于光照贴图烘焙 (lightmap baking))能从各方向照射一个平面的矩形截面的一侧。
灯光 (Light) 还可以用来投射阴影 (Shadows) 。
阴影 (Shadows) 为专业版功能。
可根据每种灯来调整阴影属性。

二、属性

:
属性功能方向灯 (Directional)放置于无穷远处的灯。它会影响场景中的一切。点灯 (Point)从其位置向所有方向发射相同强度的光的灯,影响其范围 (Range) 内的所有对象。聚光灯 (Spot)放置于无穷远处的灯。它会影响场景中的一切。方向灯 (Directional)照射锥形范围中所有位置的灯,该锥形是由聚光灯角度 (Spot Angle) 和范围 (Range) 界定的。此灯只影响此区域内的对象。区域灯 (Area)能从各方向照射一个平面的矩形截面的一侧的灯。矩形是由宽度 (Width) 和高度 (Height) 属性界说的。区域灯仅可于光照贴图烘焙 (lightmap baking) 期间使用,且在运行时对对象没有影响。范围从对象中心起的发射隔断。仅适用于点灯(Point /聚灯光(Spot)聚光灯角度 (Spot Angle)决定锥形的角度。仅适用于聚光灯 (Spot)。方向灯 (Directional)放置于无穷远处的灯。它会影响场景中的一切。颜色 (Color)所发射的光的颜色。Cookie此纹理的 alpha 通道用作遮蔽图,以决定光在差异位置的亮度。如果灯为聚光灯 (Spot) 或方向灯 (Directional),则此纹理必须为二维纹理。如果灯为点灯 (Point),则该项必须为立方体贴图 (Cubemap)。阴影范例 (Shadow Type)(仅限专业版)此灯将不投射或将投射硬或软阴影。软阴影(移动装置上不可用)更昂贵。阴影强度 (Strength)阴影的暗度。其值介于 0 和 1 之间。分辨率 (Resolution)阴影的细节品级。偏移 (Bias)将光照空间的像素位置与阴影贴图的值的比力时使用的偏移量。请参阅下面的阴影贴图和偏移属性。柔化 (Softness)缩放半影区(含糊样本的偏移量)。仅适用于方向灯 (Directional)。柔化淡出 (Softness Fade)基于到相机的距的阴影柔化淡出。仅适用于方向灯 (Directional)。绘制光晕 (Draw Halo)如果勾选此项,光线的球形光晕将被绘制,该光晕的半径与范围 (Range) 相等。光晕 (Flare)选择指代为将在光的位置被渲染的光斑。渲染模式 (Render Mode)此种光的重要性。这会影响光照保真度和性能,自动 (Auto)在运行时根据附近灯光的亮度和当前的质量设置确定渲染方法。1.详细信息

Unity 中有 4 种根本灯光范例:每种范例都可以定制,以满足各人的需要。
可以创建一个含有 alpha 通道的纹理,并将其分配给灯光的 Cookie变量。Cookie 会被灯光投影。Cookie 的 alpha 遮蔽图调治光量,在外貌生成亮点和斑点。这种方法非常适适用于大大增加场景的复杂性和氛围。
Unity 中的所有内置着色器都可与每一范例灯光无缝共同。然而,极点光照 (VertexLit) 色器无法显示 Cookie 或阴影 (Shadows)。
在 Unity 专业版中:所有灯光都可有选择地投射立方体贴图纹理。立方体贴图 (Cubemap) 在所有方向被投射出阴影。

具有一个 Cookie 的点灯
三、灯光范例详解

1.聚灯光


聚光灯仅向一个方向发射光,照射一个锥形区域。这种灯的光非常适适用于手电筒、汽车前灯或灯柱。它们的图形处置惩罚器资本是最昂贵的。

聚光灯
聚光灯也可以有 Cookie - 锥形光照投射下来的纹理。这很适适用于制作光照穿过窗户的效果。
纹理的边沿是玄色非常重要,也就是要启用边框多层贴图 (Border Mipmaps) 选项,而且其循环模式 (wrapping mode) 要设置为拉伸 (Clamp)。
具有一个 Cookie 的聚光灯
2.方向灯

在方向灯具有 Cookie 时,Cookie 会被投影到灯的 Z 轴的中心位置。
Cookie 的大小是由Coikie 大小 (Cookie Size) 属性控制的。在检视器 (Inspector) 中将 Cookie 纹理的循环模式设置为重复 (Repeat)。

投影云状 Cookie 纹理的方向灯
Cookie 是在大型户外场景中快速添加细节的好方法。你甚至可以在场景中逐步移动灯,制造出云在动的效果。
请注意:当使用正向渲染时,会对具有 Cookie 的方向灯禁用阴影。然而,可以通过使用 fullforwardshadows 记编写自界说着色器 (custom shader) 来启用阴影。
3.区域灯

3.1 区域灯从一个平面的矩形截面的一侧投射灯光。


灯光被投射在灯光范围内的所有对象上。矩形的大小是由“宽度”(Width) 和“高度”(Height) 属性决定的,且平面的法线(比方灯光投射到的一侧)与灯光的正 Z 方向相同。
灯光从矩形的整个外貌发出,因此受其影响的对象的阴影比受点灯或方向性灯影响的对象的阴影更柔和。
由于光照盘算需麋集使用处置惩罚器,所以区域灯在运行时无法使用,且只能烘焙到光照贴图 (lightmap) 中。
3.2性能注意事项:

灯光有两种渲染方式:极点光照像素 光照。极点光照仅盘算游戏模子极点处的光照,且将光照插入到模子的外貌上。像素灯光在屏幕的每个像素处被盘算,因此更消耗资源。一些较旧的显卡只支持极点光照
只管像素光照渲染得更慢,但它可以大概实现一些极点光照不能实现的效果。法线贴图 (normal mapping)、灯光 Cookie (light Cookie) 和实时阴影 (realtime shadow) 仅能在像素模式下渲染。
在像素模式下,聚光灯的形状和点灯高光效果也更好。在极点灯光模式下渲染时,以上三种灯的光的效果如下:

极点光照模式下点灯的光。

极点光照模式下聚光灯的光。

极点光照模式下方向灯的光。

灯光对渲染速度有非常大的影响 - 因此必须在光照质量和游戏速度之间加以权衡。
由于像素灯光比极点灯光泯灭的资源要多得多,因此 Unity 将只逐个像素渲染最亮的光。可在质量设置中为网络播放器和单机版编译目标设置像素灯光的实际数量。
您可以使用渲染模式 (Render Mode) 属性来明确地控制光是否应渲染为极点或像素灯光。
默认情况下,Unity 将基于对象受光影响的水平自动将光分类。 哪些灯光实际上被渲染为像素灯光是由具体的对象决定的。
四、阴影贴图和偏移属性

4.1阴影

是通过使用一种被称为阴影贴图 (shadow mapping) 的技能实现的。这种技能与相机使用的用于决定哪些外貌被其他外貌遮挡的深度贴图 (depth mapping) 技能相似。
场景在灯的位置被相机内部渲染来创建一个深度贴图 (depth map),该图储存灯与其照亮的每个外貌间的隔断。此类深度贴图 (depth map) 被称为阴影贴图 (shadow map)。就地景被渲染到主视图相机 (main view camera) 时,该视图中的每个像素位置被转换为光照空间,因此其隔断可与阴影贴图 (shadow map) 中的对应像素相比力。如果像素比阴影贴图中 (shadow map) 的像素远,那么另一个对象很大概会遮住照向此像素的光,因此它将得不到照明。

阴影制作正确的圆柱
被灯直接照亮的外貌有时候会出现为具有部门阴影。这是因为确实在阴影贴图 (shadow map) 指定的隔断处的像素有时候会被视为在更远的位置(这是由于对贴图使用了低分辨率图像)。
导致的效果为,当部门像素应该被照亮时,却出现为随机图案阴影,造成 **“阴影座疮” (shadow acne)”**视觉效果。

在圆柱上以小点的形式出现的阴影座疮 (shadow acne)
为制止出现阴影座疮 (shadow acne),可为阴影贴图 (shadow map) 中的隔断添加一个偏移值,继而确保边界限上的像素在应该通过比力时一定会通过比力。此偏移值是在灯光启用阴影时由与该灯光相关的“偏移”(Bias) 属性设置的。然而,不能将偏移值设置得过高,因为投射阴影的对象附近的阴影区域有时候会因此被错误地照亮。此效果被称为“彼得潘”(Peter Panning)

彼得潘 (Peter Panning) 效果使对象看起来像是升到了空中。
大概需要稍微调整灯光的偏移值,以确保阴影座疮 (shadow acne) 和彼得潘 (Peter Panning) 效果都不会出现。
通常,用肉眼比举行盘算能更简朴地丈量出正确值。
4.2 提示



  • 带 Cookie 的聚光灯可以很有效地制作出光线从窗户射进来的效果。
  • 低强度点灯非常适适用于提供 场景深度。
  • 为了得到最佳性能,请使用极点光照着色器。这种着色器只举行逐个极点光照,使低端卡的吞吐量要高得多。
  • 自动 (Auto) 灯光可将动态阴影投射到光照贴图对象 (lightmapped object) 上,而无需添加额外的照明。为到达此目标,在光照贴图 (Lightmap) 被烘焙时必须启用自动 (Auto) 灯光。否则它们会如实时灯光一样举行渲染。
总结

之前有人问博主:你上次谁人算法讲得一般,
就是这个—算法诠释
敷衍了事能听懂,那你能讲一下灯光效果吗?看看我能不能明确?
OK!OK!
友情提示:你们大概不清楚,作为一名不露脸的颜值博主,在元旦期间,居然计划一个人度过!!!

是的,你们没有听错。
其主要原因是:学习。(绝对不会是因为什么没人陪之类的!)


来源:https://blog.csdn.net/weixin_50642897/article/details/111940867
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )