Unity3D】【Unity基础】unity3d中四种光源有什么区别?

2020-12-21 15:55发布

8条回答
水默
2楼 · 2020-12-21 16:21

1. 方向光:Directional Light

用于模拟太阳,模拟自然光,方向光任何地方都能照射到,就和太阳一样,但是要注意照射方向。

2. 点光源:Point Light

用于模拟电灯泡的照射效果。

3. 聚光灯:Spot Light

用于模拟聚光灯照射效果。

4. 区域光:Area Light

区域光在“实时光照”模式下是无效的,仅在“烘焙光照”模式下有用。


cccc
3楼 · 2020-12-21 17:05

1. 方向光

2. 点光源

3. 聚光灯

4. 区域光


cc收获啦
4楼 · 2020-12-21 18:05

从事5年Unity游戏开发,现任Unity讲师的我从我的教学大纲中摘抄一些知识,希望可以帮助你。

定向光源(DIRECTIONALLIGHTS)

定向光”非常适合用来模拟阳光,它的特性就像是个太阳,定向光能从无限远的距离投射光源到场景,从定向光发出来的光线是互相平行的,也不会像其他种光源会分岔,结果就是不管对象离定向光源多远,投射出来的阴影看起来都一样,这其实对户外场景的照明很有利。
定向光没有真正的光源坐标,放置在场景任何地点都不会影响光的效果,只有旋转会影响定向光的照射结果。其他有光源坐标的灯光类型,例如投射灯(Spotlights),角色阴影会因为接近或远离光源而改变,这也许在照亮室内环境时会是个问题,一般来说,避免角色太接近隐形的光源,我们会建立一个亮点来假装光源。
使用定向光不用考虑距离,不管多远它都会影响场景所有的表面(除非被剔除),当使用延迟(Deferred)著色路径时会造成一些效能损耗,要注意的是,使用这个著色路径时,光的效能代价和他影响的像素数目是成正比的,但虽然需要消耗效能,起码结果较为统一,因此比较容易调整平衡。

点光源(POINT LIGHTS)

点光源可以想象是在3D空间里一个对着所有方向发射光线的点,很适合用来制作像是灯泡, 武器发光或是从物体发射出来的爆炸效果,点光源的亮度从中心最强一直到范围属性(Range)设定的距离递减到0为止,光的强度从光源到距离成反比,这是所谓的”平方反比定律”,类似光在现实世界的行为。
点光源从它的位置对四面八方射出光线,球形的小图示代表光的”范围”,光线到达此范围是会”衰减”到0,但如果有间接光源或反射光则会继续投射。
点光源开启阴影运算是很耗效能的,因此必须谨慎使用,点光源的阴影为了要给六个不同的世界方向会运算六次,在比较差的硬件开启此功能会造成较大的效能负担。

聚光灯(SPOTLIGHTS)

聚光灯投射一个锥体在他的Z轴前方,这个锥体的宽度由投射角度(Spot Angle)属性控制着,光线会从源头到设定的范围慢慢衰减到0,同时越靠近锥体边缘也会衰减,把投射角度的值加大会让锥体宽度加大,同时也让边缘淡化的力度变大,这现象学名叫做”半影”。
聚光灯有许多用途,他们可以用来模拟路灯, 壁灯,或许多创意用法,例如模拟手电筒,因为投射区域能精确的控制,因此很适合用来模拟打在角色身上的光或是模拟舞台灯光效果等等。光线会因为离源头越远而递减,可以注意到光也会因为越靠近锥体边缘而变弱,我们称之为半影区,这会因为锥体角度变大而更明显。和点光源一样,使用预计算GI时,聚光灯不支持间接光阴影,这表示灯光会穿过几何影响到另外一面,因此放置投射灯要特别注意。

区域光(AREA LIGHTS)

区域光可以当作是摄影用的柔光灯,在Unity里面他们被定义为单面往Z轴发射光线的矩形,目前只能和烘焙GI一起使用,区域光会均匀的照亮作用区域,虽然区域光没有范围属性可以调整,但是光的强度也是会随着距离光源越远而递减。
区域光用在建立柔和的照明效果非常有用,光线在任何方向穿过光的表面时会产生不同方向的折射 - 造成在对象上产生漫反射,常见的用途是拿来当作天花板壁灯或是背光灯,为了实现这功能,我们必须从每个光照贴图像素上发射一定数量的光线,背对着区域光以确定光有能见度,这代表区域光的计算是消耗很大的,而且会延长烘焙的时间,但如果运用得宜可以增加场景光的深度,那么消耗就很值得,值得注意的是区域光只能用在烘焙,因此不影响游戏效能。

最后还有一种就是光照探头(LIGHT PROBES)

光探头允许移动对象接受由全局光照GI所计算出来复杂的反射光源,对象在著色网格的时候会判断附近光探头的位置并且把光的信息一并融合计算,这是透过找寻由光探头所产生的一个四面体,然后决定哪个四面体的落入对象的轴向,这样就能让场景内的动态对象正确地接受光信息,如果没有放置光探头,动态对象就无法接受全局光照的信息,造成动态对象比场景还要暗。


kitidog2016
5楼 · 2020-12-22 09:18

定向光”非常适合用来模拟阳光,它的特性就像是个太阳,定向光能从无限远的距离投射光源到场景,从定向光发出来的光线是互相平行的,也不会像其他种光源会分岔,结果就是不管对象离定向光源多远,投射出来的阴影看起来都一样,这其实对户外场景的照明很有利。
定向光没有真正的光源坐标,放置在场景任何地点都不会影响光的效果,只有旋转会影响定向光的照射结果。其他有光源坐标的灯光类型,例如投射灯(Spotlights),角色阴影会因为接近或远离光源而改变,这也许在照亮室内环境时会是个问题,一般来说,避免角色太接近隐形的光源,我们会建立一个亮点来假装光源。
使用定向光不用考虑距离,不管多远它都会影响场景所有的表面(除非被剔除),当使用延迟(Deferred)著色路径时会造成一些效能损耗,要注意的是,使用这个著色路径时,光的效能代价和他影响的像素数目是成正比的,但虽然需要消耗效能,起码结果较为统一,因此比较容易调整平衡。

点光源(POINT LIGHTS)

点光源可以想象是在3D空间里一个对着所有方向发射光线的点,很适合用来制作像是灯泡, 武器发光或是从物体发射出来的爆炸效果,点光源的亮度从中心最强一直到范围属性(Range)设定的距离递减到0为止,光的强度从光源到距离成反比,这是所谓的”平方反比定律”,类似光在现实世界的行为。
点光源从它的位置对四面八方射出光线,球形的小图示代表光的”范围”,光线到达此范围是会”衰减”到0,但如果有间接光源或反射光则会继续投射。
点光源开启阴影运算是很耗效能的,因此必须谨慎使用,点光源的阴影为了要给六个不同的世界方向会运算六次,在比较差的硬件开启此功能会造成较大的效能负担。

聚光灯(SPOTLIGHTS)

聚光灯投射一个锥体在他的Z轴前方,这个锥体的宽度由投射角度(Spot Angle)属性控制着,光线会从源头到设定的范围慢慢衰减到0,同时越靠近锥体边缘也会衰减,把投射角度的值加大会让锥体宽度加大,同时也让边缘淡化的力度变大,这现象学名叫做”半影”。
聚光灯有许多用途,他们可以用来模拟路灯, 壁灯,或许多创意用法,例如模拟手电筒,因为投射区域能精确的控制,因此很适合用来模拟打在角色身上的光或是模拟舞台灯光效果等等。光线会因为离源头越远而递减,可以注意到光也会因为越靠近锥体边缘而变弱,我们称之为半影区,这会因为锥体角度变大而更明显。和点光源一样,使用预计算GI时,聚光灯不支持间接光阴影,这表示灯光会穿过几何影响到另外一面,因此放置投射灯要特别注意。

区域光(AREA LIGHTS)

区域光可以当作是摄影用的柔光灯,在Unity里面他们被定义为单面往Z轴发射光线的矩形,目前只能和烘焙GI一起使用,区域光会均匀的照亮作用区域,虽然区域光没有范围属性可以调整,但是光的强度也是会随着距离光源越远而递减。
区域光用在建立柔和的照明效果非常有用,光线在任何方向穿过光的表面时会产生不同方向的折射 - 造成在对象上产生漫反射,常见的用途是拿来当作天花板壁灯或是背光灯,为了实现这功能,我们必须从每个光照贴图像素上发射一定数量的光线,背对着区域光以确定光有能见度,这代表区域光的计算是消耗很大的,而且会延长烘焙的时间,但如果运用得宜可以增加场景光的深度,那么消耗就很值得,值得注意的是区域光只能用在烘焙,因此不影响游戏效能。

最后还有一种就是光照探头(LIGHT PROBES)

光探头允许移动对象接受由全局光照GI所计算出来复杂的反射光源,对象在著色网格的时候会判断附近光探头的位置并且把光的信息一并融合计算,这是透过找寻由光探头所产生的一个四面体,然后决定哪个四面体的落入对象的轴向,这样就能让场景内的动态对象正确地接受光信息,如果没有放置光探头,动态对象就无法接受全局光照的信息,造成动态对象比场景还要暗。


20200921文 - 做更棒的自己!
6楼 · 2020-12-22 09:19

四种:点光源、平行光、聚光灯、区域光

Ross
7楼 · 2020-12-24 18:07

1. Directional Light 是方向光,模拟太阳光,无论场景中的物体在哪个位置,物体的影子都会朝向同一个方向

2. Point Light 是点淘汰,类似常用见的电灯泡的效果

3. Spot Light 是聚光灯,和探照灯发射出的光线类似

4. Area Light 是区域光,和户外整个广告牌发出的光类似,该种灯光需要用bake模式


蜗牛
8楼 · 2020-12-31 08:27

1.  方向光:Directional Light

用于模拟太阳,模拟自然光,方向光任何地方都能照射到,就和太阳一样,但是要注意照射方向。

 

2.  点光源:Point Light

用于模拟电灯泡的照射效果。

 

3.  聚光灯:Spot Light

用于模拟聚光灯照射效果。

 

4.  区域光:Area Light

区域光在“实时光照”模式下是无效的,仅在“烘焙光照”模式下有用。


天才小馒头
9楼 · 2021-01-11 10:44

定向光源(DIRECTIONALLIGHTS)


定向光”非常适合用来模拟阳光,它的特性就像是个太阳,定向光能从无限远的距离投射光源到场景,从定向光发出来的光线是互相平行的,也不会像其他种光源会分岔,结果就是不管对象离定向光源多远,投射出来的阴影看起来都一样,这其实对户外场景的照明很有利。

定向光没有真正的光源坐标,放置在场景任何地点都不会影响光的效果,只有旋转会影响定向光的照射结果。其他有光源坐标的灯光类型,例如投射灯(Spotlights),角色阴影会因为接近或远离光源而改变,这也许在照亮室内环境时会是个问题,一般来说,避免角色太接近隐形的光源,我们会建立一个亮点来假装光源。

使用定向光不用考虑距离,不管多远它都会影响场景所有的表面(除非被剔除),当使用延迟(Deferred)著色路径时会造成一些效能损耗,要注意的是,使用这个著色路径时,光的效能代价和他影响的像素数目是成正比的,但虽然需要消耗效能,起码结果较为统一,因此比较容易调整平衡。


点光源(POINT LIGHTS)


点光源可以想象是在3D空间里一个对着所有方向发射光线的点,很适合用来制作像是灯泡, 武器发光或是从物体发射出来的爆炸效果,点光源的亮度从中心最强一直到范围属性(Range)设定的距离递减到0为止,光的强度从光源到距离成反比,这是所谓的”平方反比定律”,类似光在现实世界的行为。

点光源从它的位置对四面八方射出光线,球形的小图示代表光的”范围”,光线到达此范围是会”衰减”到0,但如果有间接光源或反射光则会继续投射。

点光源开启阴影运算是很耗效能的,因此必须谨慎使用,点光源的阴影为了要给六个不同的世界方向会运算六次,在比较差的硬件开启此功能会造成较大的效能负担。


聚光灯(SPOTLIGHTS)


聚光灯投射一个锥体在他的Z轴前方,这个锥体的宽度由投射角度(Spot Angle)属性控制着,光线会从源头到设定的范围慢慢衰减到0,同时越靠近锥体边缘也会衰减,把投射角度的值加大会让锥体宽度加大,同时也让边缘淡化的力度变大,这现象学名叫做”半影”。

聚光灯有许多用途,他们可以用来模拟路灯, 壁灯,或许多创意用法,例如模拟手电筒,因为投射区域能精确的控制,因此很适合用来模拟打在角色身上的光或是模拟舞台灯光效果等等。光线会因为离源头越远而递减,可以注意到光也会因为越靠近锥体边缘而变弱,我们称之为半影区,这会因为锥体角度变大而更明显。和点光源一样,使用预计算GI时,聚光灯不支持间接光阴影,这表示灯光会穿过几何影响到另外一面,因此放置投射灯要特别注意。


区域光(AREA LIGHTS)


区域光可以当作是摄影用的柔光灯,在Unity里面他们被定义为单面往Z轴发射光线的矩形,目前只能和烘焙GI一起使用,区域光会均匀的照亮作用区域,虽然区域光没有范围属性可以调整,但是光的强度也是会随着距离光源越远而递减。

区域光用在建立柔和的照明效果非常有用,光线在任何方向穿过光的表面时会产生不同方向的折射 - 造成在对象上产生漫反射,常见的用途是拿来当作天花板壁灯或是背光灯,为了实现这功能,我们必须从每个光照贴图像素上发射一定数量的光线,背对着区域光以确定光有能见度,这代表区域光的计算是消耗很大的,而且会延长烘焙的时间,但如果运用得宜可以增加场景光的深度,那么消耗就很值得,值得注意的是区域光只能用在烘焙,因此不影响游戏效能。


最后还有一种就是光照探头(LIGHT PROBES)


光探头允许移动对象接受由全局光照GI所计算出来复杂的反射光源,对象在著色网格的时候会判断附近光探头的位置并且把光的信息一并融合计算,这是透过找寻由光探头所产生的一个四面体,然后决定哪个四面体的落入对象的轴向,这样就能让场景内的动态对象正确地接受光信息,如果没有放置光探头,动态对象就无法接受全局光照的信息,造成动态对象比场景还要暗。


相关问题推荐

  • 回答 17

    还是要学好编程基础呀如果你觉得编程很苦难 不一定要从c#开始学  学学js flash as等等  有个梯度就好多了如果要用好unity  不会编程那是不行的  学习的过程中都有个头疼的过程  记住  头越痛  代表你要接受的东西越多  坚持 你的大脑在和知识兼容中:D...

  • unity如何自学Unity3D 2022-01-06 15:24
    回答 18

    可以先思考学习的目的,是什么因素在驱动你。是完成一款作品?进入某个行业?还是探究某类问题?否则和技术相关的知识浩如烟海,很容易迷失在细枝末节上。而要找到动力源头。个人的经验,就是关注一些和自己同方向,同类型的创作者。他们输出的作品会激励你,...

  • 回答 23

    可以让模型师直接作出这样的形状,如果用纯Unity制作,就要用基本游戏对象拼接了,包括楼梯,城堡,都可以拼接出来。正常情况不会这样做,因为不够精美,都是建模师来实现,毕竟Unity不属于专业的建模软件,侧重于实现功能。...

  • 回答 2

    Shader Unlit/Test{Properties{_MainTex(MainTex,2D)=white{}_MainColor(MainColor,COLOR)=(1,1,1,1)_AddTex(AddTex,2D)=white{}_Maxset(Max,Range(0.1,1.0))=0.1}SubShader{Tags{RenderType=Transparent Queue=Tran...

  • 回答 4

    文章主要为大家详细介绍了Unity Shader实现水波纹效果,文中示例代码介绍的非常详细具体代码实现如下:Shader Custom/shuibowen{ Properties{ _MainTex(Base (RGB),2D)=white{} _distanceFactor(Distancefactor,float)=1 _timeFactor(time factor,float)=...

  • 回答 7

    策划的最基本的原则就是:改进缺点,做别人没有做到的。无论游戏策划还是其它策划都是一样!    游戏策划的第二个原则:放飞思想。也许你认为我是说策划们应该充满想象力,能想一些匪夷所思的东西!对不起。不是这意思!一个合格的策划不是为了发泄自己的...

  • 回答 7
    已采纳

    可以多玩一些其它的游戏,看一些科幻电影等,寻找灵感。

  • 回答 3
    已采纳

    游戏架构与设计不纯粹是一门科学,它不需要提出假设或探究真理,也不被逻辑或正规方法的严格标准所束缚。游戏的目的就是通过玩来获得娱乐,因此游戏设计即需要艺术家一样的创造力,也需要工程师一样的精心规划。游戏设计是一门手艺,就像好莱坞的电影摄像或服...

  • 回答 5

    void Update(){          transform.rotation = Quaternion.Euler(Vector3.zero);}可以试一下,保证物体x轴和z轴为0就可以使其一直垂直。

  • 回答 3

    界面左右移动、上下移动。。本质都是:手指滑动。。。可以参考这些:https://www.cnblogs.com/coldcode/p/5362537.htmlhttps://blog.csdn.net/totosj/article/details/80112852https://blog.csdn.net/zcc858079762/article/details/85253120...

  • 回答 6

    首先新建一个C#脚本,命名为MyFollow,然后把以下代码粘贴进去,保存:AخA 1using UnityEngine;2using System.Collections;3public class MyFollow : MonoBehaviour4{5    public float distanceAway = 5;          // distance...

  • 回答 5

    安装高通的Vuforia插件即可。

  • 回答 5

    不可以,只能一个工程打一个包。

  • 回答 2

    Edit->Project Settings->Graphics 找到Shader Stripping 中fog mode设置为custom(原来是Automatic),然后选中你想要的模式,最后重新打包就ok

  • 回答 2

    用到的插件:System.Drawing.dllSystem.Windows.Forms.dllSystem.Deployment.dll(运用基于.Net4.x的dll打包时,需要用到该dll,否则会报错)代码如下:using System;using System.Runtime.InteropServices;using UnityEngine;using UnityEngine.UI; p......

  • 回答 6

    如下图,设置为none,然后删掉滑动条就可以了。

没有解决我的问题,去提问