概念

Lightmapping光照贴图技术是一种增强静态场景光照效果的技术,其优点是可以通过较少的性能消耗使静态场景看上去更加真实,丰富,更加具有立体感;缺点是不能用来实时地处理动态光照。当游戏场景包含了大量的多边形时,实时光源和阴影对游戏的性能的影响会很大。这时使用Lightmapping技术,将光线效果预渲染成贴图使用到多边形上模拟光影效果。

烘焙参数

Object选项卡

“All”组中的参数

Lightmap Static:选中则表示该物体将参与烘焙。

Scale In Lightmap:分辨率缩放,可以使不同的物体具有不同的光照精度。这样可以根据实际场景,令远景中的物体采用较低的分辨率,节省光照贴图的存储空间。而较近的物体采用较高的分辨率,使贴图更加逼真。

Lightmap Index:渲染时所使用的光照贴图索引。值为0,表示渲染时使用烘焙出来的第一张光照图;值为255,表示渲染时不使用光照图。

Tiling X/Y和Offset X/Y共同决定了一个游戏对象的光照信息在整张光照图中的位置,区域。

“Lights”中的参数

Lightmapping:有3种类型可选

  1)RelatimeOnly:光源不参与烘焙,只作用于实时光照。

  2)Auto:表示光源在不同的情况下作不同的响应。在烘焙时 ,该光源会作用于所有参与烘焙的物体;在实际游戏运行中,该光源会作为实时光源作用于那些动态的或者没有参与过烘焙的物体 ,而不作用于烘焙过的静态物体。在使用Dual Lightmaps的情况下,对于小于阴影距离 (shadow Distance,Unity中用于实时生成阴影的范围,范围之外将不进行实时生成阴影)的物体 ,该光源将作为实时光源作用于这些物体 ,不管是静态还是动态 。

  3)表示光源只在烘焙时使用,其他时间将不作用于任何物体。

Color:光源颜色。

Intensity:光线强度。

Bounce Intensity:光线反射强度。

Baked Shadows:烘焙阴影。有三种类型可以选择

  1)Off:光源对象不产生阴影。

  2)On(Realtime:Hard Shadows):产生轮廓生硬的阴影。

  3)On(Realtime:Soft Shadows):产生平滑的阴影。

Shadow Samples:阴影采样数,采样数越多生成阴影的质量越好。

Shadow Angle:光线衍射范围角度。

Bake选项卡

Mode:映射方法。

  1)Single Lightmaps:最简单直接的方法,对性能及空间的消耗相对较小。可以很好地表现大多数静态场景的光影效果。

  2)Dual Lightmaps:在近处使用实时光照和部分Lightmap光照,在远处则使用Lightmap光照,同时在实时光影和静态光影之间做平滑过渡,使得动态光照和静态光照可以很好的融合。

  3)Directional Lightmaps:一方面将光影信息保存在光照贴图上,同时还将收集到的光源方向信息保存在另一张贴图中,从而可以在没有实时光源的情况下完成Bump/Spec映射,同时也还原了普通光照图的光影效果。

Quality:生成光照贴图的质量。

Bounces:光线反射次数,次数越多,反射越均匀。

Sky Light Color:天空光颜色。

Sky Light Intensity:天空光强度,值为0时,天空色无效。

Bounces Boost:加强间接光照,用来增加间接反射的光照量,从而延续一些反射光照的范围。

Bounces Intensity:反射光线强度的倍增值。

Final Gather Rays:光照图中每一个单元采光点用来采集光线时所发出的射线数量,数量越多,采光质量越好。

Interpolation:控制采光点颜色的插值方式,0为线性插值,1为梯度插值。

Interpolation Points:用于插值的采光点个数。个数越多,结果越平滑,但是过多的数量也可能会把一些细节模糊掉。所以说采光点并不是越多越来,这容易导致过度平滑。

Ambient Occlusion:环境光遮蔽效果。

LOD Surface Distance:用于从高模到低模计算光照贴图的最大世界空间距离。类似于从高模到低模来生成发现贴图的过程。

Lock Atlas:选中,则会将所有的光照图区域锁定,即将物体使用光照图相关的Tiling X/Y和Offset X/Y属性锁定,同时也将不可以再调整光照贴图的分辨率属性以及添加新的烘焙物体到光照图。

Resolution:光照贴图分辨率。勾选视图窗口右下角Lightmap Display面板的ShowResolution选项,即可显示单元大小。假设Resolution为50,那么在10*10个单位面积的平面网格上将占用光照贴图上500*500个像素的空间。

Padding:不同物体的烘焙图的间距。

Maps选项卡

Light Probes:用于设置当前使用的Light Probes Group的引用。

Array Size:设置光照贴图个数。

Compressed:启用使用压缩纹理格式。

烘焙

Bake Scene有三个选项:

1)Bake Scene:烘培整个场景,如果场景中有编辑好的Light Probes,那么也同时烘焙Light Probes。

2)Bake Selecte:只烘焙选择的部分。采用Bake Selected功能在原有基础上进行添加或者更新,同时系统会保留之前的光照图。这样不会因为部分改动而需要重新烘焙整个场景,只需要烘焙改动的部分,大大提高了烘焙效率。

3)Bake Probes:只烘焙Light Probes。

示例

1 创建一个项目,在场景中绘制如下:

选中Cube,在Inspector面板中勾选Static,这样可以使得Cube参与烘焙。

2 打开菜单栏中Window->Lightmapping选项,会弹出Lightmapping视图。此时选中场景中的Directional Light,在Lightmapping视图中的Object标签页中会出现对光源的设置。参数设置如下:

3 Bake标签页下参数设置:

                                                          

4 在Scene视图右下角的Lightmap Display对话框中勾选Show Resolution复选框,就可以看到光照图在模型上的分辨率。

5 单击Lightmapping视图右下角的Bake Scene,选中Bake Scene映射模式,就开始生成Lightmaps。

前后对比效果如下:

1)烘焙后:

2)烘焙前:

注:必须将plane的属性设置为Static,否则Cube将不会有阴影显示。

没有将plane的属性设置为Static,效果图如下所示:

Unity3D-光照贴图技术的更多相关文章

  1. Unity3D光照前置知识——Rendering Paths(渲染路径)及LightMode(光照模式)译解

    简述 Unity supports different Rendering Paths. You should choose which one you use depending on your g ...

  2. (转)Unity3D 游戏贴图(法线贴图,漫反射贴图,高光贴图)

    原帖网址http://www.u3dpro.com/read.php?tid=207  感谢jdk900网友的辛苦编写 我们都知道,一个三维场景的画面的好坏,百分之四十取决于模型,百分之六十取决于贴图 ...

  3. 【Unity】第13章 光照贴图和光影效果

    分类:Unity.C#.VS2015 创建日期:2016-05-19 一.简介 在Unity 5中,Lighting是—种增强场景光照和阴影效果的技术,它可以通过较少的性能消耗使静态场景看上去更真实. ...

  4. unity3d的优化场景技术LOD+IOC

    一.unity3d的优化场景技术  LOD+IOC 遮挡剔除(occlusion culling)其实就是在摄像机范围内的物体才被渲染出来,没有在视野范围内的,统统关掉渲染,这样能让性能大大提高. I ...

  5. unity3d-地图制作之光照贴图Lightmapping

    今天无聊随便翻看了暗黑战神的场景资源,发现了一个以前没怎么注意的静态场景优化问题. 什么是静态场景,也就是说这个场景是不会变化.比如MMO游戏中选择人物的场景. 就拿默认的暗黑战神的选择人物场景来看, ...

  6. Shadow Map阴影贴图技术之探 【转】

    这两天勉勉强强把一个shadowmap的demo做出来了.参考资料多,苦头可不少.Shadow Map技术是目前与Shadow Volume技术并行的传统阴影渲染技术,而且在游戏领域可谓占很大优势.本 ...

  7. canvas 2d 贴图技术实践

    最近在公司内部的技术协会论坛里闲逛的时候,无意中发现了一篇手淘前端大牛岑安两年前写的博文,讲述了canvas的2d贴图技术.看到后觉得相当神奇.于是就自己实现了一下.不过岑安前辈的那篇博文也只是大概讲 ...

  8. Unity3D ShaderLab 立方体图的菲涅尔反射

    Unity3D ShaderLab 立方体图的菲涅尔反射 菲涅尔反射是反射类型中比较常见的一种类型,当我们的视线正对物体表面,那么反射量会明显增加, 我们几乎可以在任何支持反射类型的物体表面看到这种情 ...

  9. Unity3D ShaderLab立方体图的法线渲染

    Unity3D ShaderLab立方体图的法线渲染 某些情况下,我们希望立方体图的材质球上产生法线效果,来更多的表现细节,比如菱形花纹的玻璃,冰块的表面. 在帧数的协调下,我们可以通过input结构 ...

随机推荐

  1. 为debian8.2更换官方源

    最近,配置一个韩国vps,里面用的是163的源,感觉不如官方的好用,就改为官方源.地址为:ftp.cn.debian.org 输入命令: vi /etc/apt/sources.list 进入vi编辑 ...

  2. wpf程序线程与UI内容交互

    在UI线程里执行复杂的操作,会造成UI假死.常用的解决方法是开2个线程. 而新线程要调用UI里的东西,必须这么用: this.Dispatcher.Invoke(content);

  3. Windows 下Java 连 MYSQL数据库

    我们上课的时候在机房是用java连SQLServer2008的.由于这个数据库软件安装太麻烦,最重要的一点是安装后系统应该会变慢.至少开机速度会有影响.至于这个mysql我觉得下载一个绿色版的,然后自 ...

  4. 百度Android在线语音识别SDK用法

    百度Android语音识别SDK分在线与离线两种,这篇文章介绍在线SDK的用法. 在线SDK是以JAR包和动态链接库形式公布和使用,能够从百度开放云平台站点中下载SDK及使用说明文档. title=d ...

  5. android framework-下载Android系统源代码

    □ apt-get install git-core curl #先下载这两个工具 □ mkdir android-froyo #建立下载目录 □ cd android-froyo #进入下载目录 □ ...

  6. sqlalchemy使用

    1.SQLAlchemy的作用 ORM对象关系映射技术 2.SQLAlchemy安装 pip install SQLAlchemy 查看SQLAlchemy版本 3.生成数据库连接 from sqla ...

  7. iOS自定义组与组之间的距离以及视图

    iOS自定义组与组之间的距离以及视图 //头视图高度 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(N ...

  8. How to merge Scala Lists

    Scala List FAQ: How do I merge a List in Scala? NOTE: I wrote the solutions shown below a long time ...

  9. Mixing ASP.NET Webforms and ASP.NET MVC

    https://www.packtpub.com/books/content/mixing-aspnet-webforms-and-aspnet-mvc *********************** ...

  10. fileupload的乱码解决

    解决方法就是这段代码,其中item是fileupload中的FileItem String value = new String(item.getString().getBytes("ISO ...