Unity3D学习笔记(七)光与影

来源:互联网 发布:淘宝倩女幽魂多开器 编辑:程序博客网 时间:2024/04/30 10:47

还记得大明湖畔的容嬷嬷吗?噢不对,还记得第二章里在游戏世界里添加的太阳光吗?虽然作为上帝创造了光,照亮了世界,但为了平衡世界还缺少一样东西,没错,它就是——影子!仔细观察一下游戏场景,发现的确所有东西都没有影子呢。那么本章就再以上帝的角色用LightMapping(光照贴图)为这个虚拟世界添加影子。


选中太阳光对象,当时我把它改名成了“Sun”,在检视面板里可以看到Shadow Type(阴影类型)是No Shadows(无阴影)。点击下拉列表,有两种阴影类型可以选择:Hard Shadow(硬化阴影)和Soft Shadow(柔化阴影)。所谓硬化不是说影子比较坚硬,而是影子的轮廓比较清晰。后者比前者多了两个选项:Softness(柔化度)和Softness Fade(柔化渐隐),调整这两个参数可以让影子的边缘看起来模糊一点,更加逼真。


另外还有Strength(强度)选项,可以用来调节阴影的强度。调整Resolution(分辨率)选项可以更改产生阴影的质量,越高效果越好,当然性能消耗也越大。Bia(偏斜度)不知道是用来干什么的,拖到最小和最大好像对阴影没什么影响,暂时就先放一边。


114033tgdewde05666fccx.jpg 

咦,本章这么快就结束了?不,好戏才刚刚开始呢。


Unity不仅仅提供了(Directional Light)平行光源,还提供了Spot Light(投射光源)、(Point Light)点光源、(Area Light)区域光源类型,用官方的图来表达更直接点吧。其中区域光源是用来做烘焙用的,这个以后再介绍。我是不会告诉你其实我也一知半解的啊哈哈……


114041uvv18lvd6dihvdrh.jpg 

可以在选中光源对象后更改检视面板中的Type(光源类型),不过太阳光已经是平行光源了,所以为了测试,就再创建一个光源来练手。点击主菜单中的“游戏对象→创建其他对象→投射光源”。在检视面板中可以调整投射光源的Range(距离)和Spot Angle(投射角度),这两个参数很好理解。然后用旋转工具和移动工具调整好光源的照射方向,此时由于太阳光太亮,几乎看不到投射光源的光。因此要么减少太阳光的Intensity(强度),要么增加投射光源的强度,方便起见我选择了后者。顺便也可以把光源的Color(颜色)调整喜欢的类型比如说……粉红?^_^。啊啊,我还是改回白色吧。不管怎么说,光的颜色和亮度对游戏场景的气氛渲染起着至关重要的作用。


还有一个压轴参数,Cookie(请原谅我也不知道该如何翻译它,可以理解为光照纹理),点击右边的小圆点,然后选择一张纹理。用技术型的表述方式是该纹理的透明通道(Alpha通道,点这里叫度娘来科普啦)将被作为蒙板,以决定光照在各个位置的亮度。如果是投射光源或平行光,则必须是2D纹理。其中如果是平行光源,则还可以设置CookieSize(光照纹理缩放)。另外如果是点光源,则需要一个CubeMap(映射立方体)。


听起来蛮复杂的,但是动手操作一下发现其实很好理解,选择好纹理后越透明的地方光线越暗,否则越亮。那么这个有什么用呢?呵呵,看自己发挥想象力了呗!


114055vwabobhagng9bzgw.jpg 


114104pz381we3hd2rd283.jpg 


如果是点光源,那么就必须要制作一个映射立方体,右键点击工程面板“创建→映射立方体”。选中它之后就会在检视面板中出现6个面,分别对应前后左右上下的Cookie。方式与投射光源的Cookie制作相同,只要把纹理拖上去即可。制作完映射立方体后别忘了拖到点光源的Cookie上。


114112jeeztfwrrvet5xpc.jpg 

其实我觉得吧,如果把映射立方体的六个面分别贴上蜂窝状的纹理,然后让它旋转起来,颜色还要不停的变化,那不就是一个舞厅里的旋转球灯了吗?哈哈。那么下一章就来写写Unity动画功能的使用。



作者:黄旭杨 http://huangxuyang.cn/archives/30

0 0
原创粉丝点击