Unity3d基础教程7-灯光(灯光阴影参数设置及lightmapping制作)

来源:互联网 发布:杨辉三角java 编辑:程序博客网 时间:2024/05/15 05:46

转载地址: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 :顶点光照。

0 0
原创粉丝点击