转载地址:http://www.narkii.com/club/thread-284051-1.html
今天我们来看一下unity场景正的另外一个重要组成部分—灯光。灯光为一个场景提供光照支持,并决定一个场景的颜色和氛围。 打开unity3d导入在3dmax中制作好的场景。 我们发现在Game视图中的场景非常灰暗,下面我们为场景添加一盏灯光。 添加方法如图: Unity一共给我们提供了四种灯光可供选择 1:Directional lights:平行光,对场景的照明不受灯光位置的影响。 2:Point Light:点光源,从一个位置向所有方向发射相同强度的光。 3:Spot lights:射线光源,从一个点向一个方向发光。 4: Area Light:面光源,在场景中是看不到效果的。只有烘焙后才可以看到效果。 首先添加一盏平行光。 查看效果。 添加前 添加(平行光)后 我们试着添加另外两种灯光,看下效果。 添加(点光源)后 添加(射线光源)后 根据不同需要,选择不同的光源类型。 下面看下灯光的属性怎么调节,首先选中一盏灯光。在inspector视图中看到如下属性,如图: 上面为属性的详细介绍,可参考http://game.ceeger.com/Components/class-Light.html。 需要注意的是灯光阴影的调节。我们发现只有平行光可以添加阴影,点和射线光都添加不了阴影。 如图: 意思是不能在 foward rending这种渲染模式下产生阴影。我们要想让他们产生阴影,只需要改变一下渲染模式即可。方法如下:Edit>>roject Setting>>layer 在inspector视图中看到如下界面: 将上图红笔画出的位置改为:即可。 当然一个复杂的游戏场景不可能只用一个光源。如果要得到一个逼真的光照环境需要很多不同的灯光相互配合。我们知道灯光会消耗很大的资源。如果一个游戏我们打了很多盏灯。游戏就会运行缓慢。Unity3d给我们提供一种很好的方式来解决这个问题。就是讲灯光信息烘焙到物体表面。以贴图的形式进行存储,这样既保证了场景的效果,又节约了资源。 那么在游戏制作中这种灯光贴图是怎么得到的呢。现在一般用到两种方式,1:在3dmax等模型制作软件中对场景进行烘焙。将烘焙好的模型以及贴图导入到unity3d。2:用unity3d自身的烘焙系统对场景进行烘焙。 第一种方法过程比较复杂,当然效果是非常好的,在以后的教程中在进行讲解。今天我们主要看下第二种方式如何制作。 首先打开unity场景,添加灯光并进行调节,直到满意为止。 如图: 当然我这里制作演示使用。如果是项目使用还需要继续调节细节。 调节完成后点击菜单栏的Window – Lightmapping 得到如图所示的Lightmapping窗口。 选择主光源,在Object面板下将Shadow samples(阴影采样)设为100,将Shadow Angle(阴影范围)设为1.2。在Bake(烘培)面板设置Bounces(反弹)为1,Sky Light Intensity天光强度为0.5。 选择需要烘焙的物体,将Static勾选,将物体设置为静态。 然后点击Back Scene烘焙场景。 在屏幕右下角可一看到烘焙进度 点击Lightmapping窗口中的cancel可以取消烘焙。 烘焙完成后删除场景中的灯光即可。烘焙的详细参数可以参考 (http://game.ceeger.com/Manual/LightmappingInDepth.html) 最后就是要把摄像机的渲染方式改为Vertex Lit :顶点光照。 |