您的位置:首页 > 移动开发 > Unity3D

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

2014-03-28 22:50 393 查看
转载地址: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 :顶点光照。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐