在unity中如何利unity不用灯光光来烘托场景气氛

在戏剧和电影中照明效果被长期用于表现不存在于场景中的物体。丛林探险家可能被覆盖在假想树冠的阴影中监狱场景经常显示从铁栅栏窗透进来的光,即使窗户和牆壁并不真实存在于场景中虽然非常有气氛,但是阴影的创建非常之简单只需要在光源和目标对象之间放置某种形状的遮罩。这个遮罩简称为剪影或 CookieUnity 灯光支持以纹理的形式添加 Cookie,从而有效地增强场景气氛

译注:剪影比 Cookie 更直观易懂,不过译者认为更合适的翻译是『灯咣纹理』因此,下文统一使用『灯光问题』


平行光纹理,模拟从窗户透进来的光

灯光纹理只是一张普通的纹理不过只和 alpha/transparency 通道有关系。当导入一张灯光纹理时Unity 提供了将图像的亮度转换为 alpha 的选项,因此通常将灯光纹理简单地设计为一张灰度纹理你可以使用任意图像编輯器生成一张灯光纹理,并保存到项目的 Assets 文件夹下


导入灯光纹理到 Unity 中时,在项目视图中选中它并在检视视图中把贴图类型设置为 Cookie。你還应该开启 Alpha From Grayscale除非你已经设计好了图像的 alpha 通道。

选项 Light Type 会影响投射纹理的方式因为点光源向所有方向发射光,所以纹理贴图必须是 Cubemap 类型洳上图所示,聚光灯使用的纹理类型应该被设置为 Spotlight而平行光实际上可以使用 Spotlight 或 Directional 类型。使用了 Directional 纹理的平行光将在整个场景上重复平铺纹理如果使用 Spotlight 类型,则只会在『光束』直线路径上显示一次;唯有在这种情况下平行光的位置才显得如此重要。


在平行光模式下『平铺』窗口纹理

导入纹理后在检视视图中,把它拖动到灯光的 Cookie 属性以应用它。

聚光灯和点光源按照圆锥体或球体的尺寸简单地缩放灯光纹理平行光额外提供了一个 Cookie Size 选项,允许你缩放纹理;类型为聚光灯和平行光的灯光纹理都支持缩放

灯光纹理通常用于改变灯光的形状,使の与场景中绘制的某些细节相匹配例如,黑暗的隧道可能具有沿着天花板的条形灯如果使用标准的聚光灯模拟,光束将呈现为意想不箌的圆形但是可以使unity不用灯光光纹理约束光线,使之呈现为细长的矩形正在使用监视器屏幕的角色,脸部可能会被投射绿色荧光但昰这种荧光应该被限制为小盒子形状。

注意灯光纹理不需要完全是黑白的,它可以包含任意灰度级这可以用于模拟光线路径上的尘埃囷污垢。例如如果游戏场景位于长期废弃的房间内,可以在窗户和灯光上使用带有噪点的、肮脏的灯光纹理来营造气氛。类似的汽車前灯玻璃通常含有脊线(不平整),产生还有较亮和较暗区域的焦散图案;使unity不用灯光光纹理可以很好地模拟这种效果

译注:『焦散』是指当光线穿过一个透明物体时,由于对象表面的不平整使得光线折射并没有平行发生,出现漫折射投影表面出现光子分散。——

中各种灯光技术当你准备照亮┅个场景时,应注意下面几个问题:

一、场景中的三种环境类型

场景灯光通常分为三种类型:自然光、人工光以及二者的结合。

具有代表性的自然光是太阳光当使用自然光时,有其它几个问题需要考虑:现在是一天中的什么时间;天是晴空万里还是阴云密布;还有在環境中有多少光反射到四周?

人工光几乎可以是任何形式电灯、炉火或者二者一起照亮的任何类型的环境都可以认为是人工的。人工光鈳能是三种类型的光源中最普通的你还需要考虑光线来自哪里,光线的质量如何如果有几个光源,要弄清除哪一个是主光源确定是否使用彩色光线也是重要的。几乎所有的光源都有一个彩色的色彩而不是纯白色。

最后一种灯光类型是自然光和人工光的组合在明亮嘚室外拍摄电影时,摄影师和灯光师有时也使用反射镜或者辅助灯来缓和刺目的阴影

 二、创作来源的参考资料。

在创作逼真的场景时应当养成从实际照片和电影中取材的习惯。好的参考资料可以提供一些线索让你知道特定物体和环境在一天内不同时间或者在特定条件下看起来是怎样的。

通过认真分析一张照片中高光和阴影的位置通常可以重新构造对图像起作用的光线的基本位置和强度。通过使用現有的原始资料来重建灯光布置也可以学到很多知识。

在考虑了上面的问题后现在应当为一个场景创建灯光了。虽然光源的数量、类型和他们单独的属性将因场景不同而异但是,有三种基本类型的光源:关键光、补充光和背景光它们在一起协调运作。

在一个场景中其主要光源通常称为关键光。关键光不一定只是一个光源但它一定是照明的主要光源。同样关键光未必像点光源一样固定于一个地方。

虽然点光源通常放在四分之三的位置上(从物体的正面转45度并从中心线向上转45度,这一位置很多时候被当作定势使用)但根据具體场景的需要,也可来自物体的下面或后面或者其他任何位置。关键光通常是首先放置的光源并且使用它在场景中创建初步的灯光效果。

虽然最初的放置为照亮物体提供了一个好的方法但是,得到的结果确实是单调而无趣的图像阴影通常很粗糙且十分明显。同样場景看起来总是太暗,因为没有自然的环境光来加亮阴影区域这种情况在特定的场景中是很有用的,例如夜晚场景但是,对大多数画媔来说就显得有些不合适了。

补充光用来填充场景的黑暗和阴影区域关键光在场景中是最引人注意的光源,但补充光的光线可以提供景深和逼真的感觉

比较重要的补充光来自天然漫反射,这种类型的灯光通常称为环境光这种类型的光线之所以重要,部分原因是它提高了整个场景的亮度不幸的是,大多数渲染器的环境光统一地应用于整个场景减低了场景的整体黑暗程度,它淘汰掉了一些可能的特性不能对照亮的物体上的任何光亮和阴影进行造型,这是使场景看起来不逼真的主要原因

模拟环境光的更好的方法是,在场景中把低強度的聚光灯或泛光灯放置在合理的位置上这种类型的辅助光应当减少阴影区域,并向不能被关键光直接照射的下边和角落补充一些光線

除了场景中的天然散射光或者环境光之外,补充光用来照亮太暗的区域或者强调场景的一些部位它们可以放置在关键光相对的位置,用以柔化阴影

背景光通常作为“边缘光”,通过照亮对象的边缘将目标对象从背景中分开它经常放置在四分之三关键光的正对面,咜对物体的边缘起作用引起很小的反射高光区。如果3D场景中的模型由很多小的圆角边缘组成这种高光可能会增加场景的可信性。

实际咣源是那些在场景中实际出现的照明来源台灯、汽车前灯、闪电和野外燃烧的火焰都是潜在的光源。

在为场景设置灯光以后还有一些其他因素需要考虑。

六、有些物体是否需要从光源中排除

从一些光源中排除一个物体,在渲染的时候便可以节约时间。

这个原则对于淛作阴影也是正确的场景中的每一个光源都用来制作阴影,这种情况是很少见的制作阴影可能是十分昂贵的(尤其是光线跟踪阴影的凊况下),并且有时对最终图像是有害的

  七、用贴图效果而不用实际光源能够模拟任何灯光吗?

建筑物光源、照亮的显示器和其他獨立的小组合光源有时可以用贴图创建,而不使用实际光源

八、是否可以使用一些技巧使场景更真实?

比如为光源添加颜色或贴图,可能可以很简单的使场景取得较好的气氛

Unity已经成为游戏程序员中越来越受歡迎的这是因为Unity直接支持多种平台,如移动、桌面和控制台环境此外,对于低收入开发者或工作室来说它是免费使用的。

Unity支持多种技术和组件一些关键部件是灯光和照明技术。在Unity中你可以通过模拟复杂的灯光行为或者通过简单的灯光模型来照亮场景。

本教程将重點讲解如何在Unity 5使用照明工程照明类型和属性,以及如何使用它们来创建丰富的照明效果

首先,确保你有最新版本的Unity在本教程中,我們使用的版本5.5.0f3确保您使用的是最新的Unity版本,否则您可能会在教程中使用物理连接后出现

下一步,下载LightingIn-Starter文件解压并在Unity中打开项目。Demo场景应该能够自动打开如果不行,可以从Assets文件夹中打开

在现实世界中,你有两种类型的照明效果:直接和间接照明直接照明,顾名思義是直接从光源照射的灯光(灯,太阳或其他)另一方面,间接照明是来自另一物体的光

在场景中的Action中你就可以看到直接照明,正洳你能注意到的一样场景中有一个直接光源叫做Directional Light

直接光源主要用于太阳以及月亮等户外光源,他们影响场景中所有物体的表面他们也昰开销最小的图形处理器

你可以在检视面板中选择Directional Light并查看其属性。你会注意到一些有趣的属性比如类型,颜色以及敏感度等等你可以妀变颜色和旋转属性并实时查看结果。通过改变这些值你可以直接改变你的定向光。

这时候你的3D场景中没有任何的非定向光。你可以通过将球体移动至贴近红色或者绿色的墙来检查发现球体颜色没有改变,说明场景中没有非定向光

使用非定向光的方法之一就是使用靜态对象。请记住静态对象的使用可以提高游戏渲染的性能,但也会降低游戏质量所以你必须在游戏中找到最佳的平衡。

在场景中添加一个方块将它放置到球体的旁边,并命名为Cube

选中这个Cube并在细节面板中启用静态属性

当启用静态属性时,Unity将自动为该对象创建一个光照贴图并应用正确的光照模型。现在你可以将相机移动到Cube并发现非定向光开始起作用了绿色或者是红色的光现在蔓延到了立方体上。

洳果你改变定向光的方向你会发现Unity将会自动更新光照贴图。

被施加到立方体上的间接照明不适用于球体因为球体不是静态的。你可以通过使球体静态(检视>静态)来解决这个问题

这个时候,你可以添加和配置定向以及非定向光到静态对象然而,3D大多都是由动态对象組成因此,我们如何将这些效果应用到那些动态对象呢我们接下来将具体说明

当你的场景中包含非静态的物体,你需要使用特定的照奣技术正确地照亮他们,使他们看起来不像从场景中断开

通过使用光探针及其位置可以在场景中采样点。每个光探针可以采样特定区域然后计算该特定区域的照明。这些计算足够快可用于游戏期间。光探针的使用避免了移动物体的照明和场景中的静态光映射对象之間的连接断开

球体是一个动态物体因此,与它看起来的相反它没有被正确地照亮。如果你把定向灯关闭你会注意到,唯一影响球的照明是环境光要正确地照亮球体,你需要使用光探测器

下一步是将探头放在正确的位置你现在要将他们放在盒子的每个角落

最好的办法是改变一个视图(单击在场景右上角的立方体)。然后选择每个光探测节点并将其拖到每个框角

重复上述步骤,直到你在所有的角落Φ***了光探头

有些场景需要额外的探针正确地照亮物体为了添加更多的探针,您可以选择一个探头然后在检视面板中,单击重复选萣按钮

复制之后,您需要将新节点放置在正确的位置(复制的一个节点将与所选的位置处于同一位置)

如果你仔细查看界面的督察你會注意到,您还可以添加自定义探针(添加探针)删除探针(删除选定),或选择所有的探针从组(选择所有)

在运动中观察光探头,选择球体并为它添加一个刚体(添加组件>刚体)。然后给对撞机分配一个材质。您可以使用橡胶材料

现在,把球体放在盒子的顶蔀并按下播放键现在你可以看到球体的适当光照了。要观察差异禁用光照探头,并且再次播放

点光源是游戏中最常见的光源它们通瑺用于爆炸和灯泡。因为它们在各个方向发光所以它们在图形处理器上有一个平均成本。然而计算阴影时使用点光源更昂贵。

通过选擇对象>光>点光源加一点光源然后,将点光源放在靠近顶部的盒子内

选择点光源,并查看检视面板中的参数

第一个参数是类型这里可鉯设置要使用的光类型。您可以选择点方向,点或区域。每个提供了特定的光效果您可以选择任何选项,并看到结果的实时然而,对于本教程您将使用点选项。这将创建一个灯泡效果(光照所有方向相同)

第二个参数是Baking。您可以将其设置为实时、烘焙或混合將值作为默认值。范围参数定义光从点光源的中心发射多远颜色参数定义发出的光的颜色

Intensity定义了光的亮度,并且Bounce Intensity定义了间接光强度倍数 Shadow Type定义了阴影属性和阴影类型。你可以设置它 No Shadows, Hard Shadows,或者是Soft Shadows记住,电光源的阴影对于引擎来说开销是最大的所以要小心选择此选项。

如果选擇Hard Shadows 或Soft Shadows你会看到球体和点光源产生的阴影。当你改变强度值时阴影也会减轻或加重。该分辨率允许您定义阴影的详细级别最后, Bias 和Normal Bias让您在配置偏移时被使用来比较像素位置在光空间与阴影贴图

cookie是一个可选的参数,它代表一个纹理的alpha通道用来确定不同位置的光的亮度。因为这是一个点光源必须使用一个立方体贴图纹理

Draw Halo选项只在光源周围呈现光晕。耀斑定义了一个在光的位置呈现的耀斑的引用当调試3D场景和可能的瓶颈时,耀斑和Draw Halo可能是有用的

Render Mode定义了当渲染器渲染场景时照明是多么重要更重要的是,渲染将更密集渲染模式可以设置为自动的,重要的或不重要的。最后剔除遮罩用于选择或排除,由点光源影响的对象组

点光源从特定区域的光源发射光。它们只照亮一个特定区域内的物体一个由三维圆锥体分隔的区域。基本上他们的工作就像汽车的前灯。你可以想象他们是完美的手电筒,汽车大灯或灯柱。他们在图形处理器中也是开销很大的

现在让我们把点光变成聚光灯。选择您创建较早的点光源并将其类型更改为聚咣灯下一步,旋转的光线以便它可以照亮地板的盒子。重命名为聚光灯

正如你可能已经注意到的,在检视面板中聚光灯的参数和點光源的参数是很相似的。但是有一个新的参数叫做Spot Angle

无论直接和间接照明,聚光灯工作完全像点光源你有同样的局限性和优势。因此在游戏中设置灯光平衡时必须小心。

注意你可以总是使用阴影和烘烤以平衡外观和性能

区域光是在一个平面的矩形区域的所有方向上發出的光。这个矩形是定义在宽度和高度属性区域光仅在光贴图烘焙时可用,这意味着它们在运行时不会对对象产生影响

选择点光源並将其类型更改为区域,并将其名称改为区域光下一步,把灯放在盒子里然后在检查员里面改变宽度和高度,以盖住盒子里面的整个區域

真正的新参数是宽度和高度。两者都用来设置矩形光区的大小

如果你按播放,你会看到该地区的光是投在其范围内的所有对象的咣矩形的大小由宽度和高度属性决定。光被投射的一侧是平面的法线与光的正z方向相同。光从矩形的整个表面发射出去正因为如此,阴影和阴影从受影响的对象往往是比点光源或定向光源要柔和得多

区域光的照明计算相当处理器密集型,所以它们在运行时不可用呮能被烘烤成光贴图。

这结束教程关于照明Unity 5你了解了几种照明效果和配置。有了这方面的知识您现在可以应用几个照明效果到您的游戲或应用程序。

参考资料

 

随机推荐