Unity3D自带功能:灯光及光照烘焙

上传人:新** 文档编号:497608873 上传时间:2023-07-17 格式:DOCX 页数:23 大小:25.04KB
返回 下载 相关 举报
Unity3D自带功能:灯光及光照烘焙_第1页
第1页 / 共23页
Unity3D自带功能:灯光及光照烘焙_第2页
第2页 / 共23页
Unity3D自带功能:灯光及光照烘焙_第3页
第3页 / 共23页
Unity3D自带功能:灯光及光照烘焙_第4页
第4页 / 共23页
Unity3D自带功能:灯光及光照烘焙_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《Unity3D自带功能:灯光及光照烘焙》由会员分享,可在线阅读,更多相关《Unity3D自带功能:灯光及光照烘焙(23页珍藏版)》请在金锄头文库上搜索。

1、Unity3D自带功能:灯光及光照烘焙这一篇比较偏重于功能介绍,具体的实例操作请参考其 他文章:未完成游戏场景中灯光照明的构成 现实生活中的光线是有反射、折射、衍射等特性的。对这些 基本特性的模拟一直以来都是计算机图形图像学的重要研 究方向。在CG中,默认的照明方式都是不考虑这些光线特性的,因 此出来的效果与现实生活区别很大。最早期的时候,人们利 用各种方式来模拟真实光照的效果,比如手动在贴图上画上 柔和阴影,或者用一盏微弱的面积光源去照明物体的暗部以 模拟漫反射现象等等。然后出现了所谓的高级渲染器,用计算机的计算来代替我们 的手工劳动来进行这个“模拟”的工作。在漫长的发展过程中, 出现过很多

2、很多计算方案,总体上分为这样几类:直接模拟光线从被光源发出到最终被物体完全吸收的正向 过程,也就是常说的 GI(Global Illumination); 不直接模拟光线,而是反向搜集物体表面特定点的受光照强 度来模拟现实照明效果,也就是常说的 FG(Final Gathering); 完全不考虑光线的行为,单纯基于“物体上与其他物体越接近 的区域,受到反射光线的照明越弱”这一现象来模拟模拟现实 照明(的一部分)效果,也就是常说的 AO(Ambient Occlusion); 将场景光照结果完全烘焙到模型贴图上,从而完完全全的假 冒现实光照效果,也就是我们所说的 Lightmap。不论是GI还

3、是FG,计算量都是非常大的,一帧图片需要几 十分钟甚至几十小时来渲染,所以很难被应用在游戏设计领 域。因此在游戏设计领域,光照贴图技术依然是目前的主流方 式。由于光照贴图需要事先烘焙(baking)出来,且仅支持静态 物体(Static Object),而我们的游戏场景中几乎不可能全都 是静态物体,所以通常游戏场景中的灯光照明是多种照明方 式的混合作用。对于静态物体来说,大多使用光照贴图来模拟间接光的照明 效果,然后加上直接光源的动态照明效果; 对于运动物体来说,则仅用直接光源的动态照明效果,或者 使用光照探针来模拟间接光的照明效果。随着技术的发展以及计算机计算能力的提高,也许在未来, 我们能

4、够直接在游戏场景中进行动态的全局光照模拟也说 不定呢。新版Unity3D中就已经出现了 Realtime GlobalIllumination,虽然这个技术还处于雏形阶段,所需要的计算量依然庞大,但确实为我们展示了一个令人激动的前景。当然,技术是技术,产品是产品。技术是为产品服务的,再 先进的实时全局光照系统,对于像素风格的游戏场景的提升 也是几近于0。“选择合适的技术来完善我们的产品和制作流程”,以及“根据 现有技术来设计产品和制作流程”,说的其实是同一个意思。1. 直接照明( D i rect Lighting)Unity3D中的直接照明主要来源于各种灯光物体,而灯光物 体本质上是空物体加

5、上灯光组件。直接照明可以产生阴影, 但光线不会反射、也不会折射,但可以穿透半透明材质物体。1.1灯光类型(Lights)Unity3D中默认可以创建这么几种灯光:聚光灯、点光源、 平行光、面积光,另外还可以创建两种探针(Probe):反射 探针(Reflection Probe)和光照探针组(Light Probe Group)Unity中可以创建的灯光类型物体平行光平行光通常用来做阳光,Unity3D新建场景后会默认在场景 中放置一盏平行光。平行光不会衰减。unity_lightingO4.pngType :灯光类型,所有类型的灯光都其实共用一个组件,本质上是一样的。Color :灯光颜色M

6、ode :灯光照明模式,每种模式对应Lighting面板中一组设定Realtime :对应 Realtime LightingMixed :对应 Mixed LightingBaked :对应 Lightmapping SettingRealtime Lighting 是新出 现的一种烘焙光照技术,它并不像传统的烘焙技术一样直接 烘焙间接光照颜色和亮度信息到光照贴图上,而是烘焙物体 和物体之间的关系信息,比如A面对B面有漫反射效果,B 面对C面有漫反射效果等等。这样一来,只要物体之间的关系不变(也就是所有的静态物体都不移动位置),就不需要 重新烘焙,从而使得我们可以在场景中随意运用动态光源(d

7、ynamic lights)。而传统的Lightmapping光照贴图方式则 不支持动态光源效果(改变光源不会改变场景光照)。Realtime Lighting比Lightmapping要更耗费系统资源,所以 手游上就不要考虑了。lntensity:灯光强度Indirect Multiplier :在计算该灯光所产生的间接光照时的强 度倍乘Shadow Type :阴影贴图的类型No Shadows :无阴影贴图Hard Shadows :硬阴影贴图Soft Shadows :光滑阴影边缘(也就是阴影模糊效果)Baked Shadow Angle :烘焙阴影的角度Realtime Shadow

8、s Strength :实时阴影强度Resolution :阴影贴图分辨率Bias :阴影偏移,通常适当增加这个值来修正一些阴影的 artifactNormal Bias :法线偏移,通常适当减少这个值来修正一些阴 影的artifact (不同于Bias的使用场合)Near Plane :阴影剪切平面,对于与摄影机距离小于这个距 离的场景物体不产生阴影Cookie:Cookie 相当于在灯光上贴黑白图,用来模拟一些阴影效果,比如贴上网格图模拟窗户栅格效果Cookie Size :调整Cookie贴图大小Draw Halo :灯光是否显示辉光,不显示辉光的灯本身是看 不见的Fla re : Fl

9、a re可以使用一张黑白贴图来模拟灯光在镜头中的 “星状辉光”效果Render Mode :渲染模式Culling Mask:点光源点光源模拟一个小灯泡向四周发出光线的效果,点光源在其 照亮范围内随距离增加而亮度衰减unity_lightingO1.pngRange :光线射出的范围,超出这个范围 则不会照亮物体聚光灯 聚光灯模拟一个点光源仅沿着一个圆锥体方向发出光线的 效果,聚光灯在其照亮范围内随距离增加而亮度衰减unity_lightingO2.pngSpot Angle :灯光射出的张角范围面积光面积光模拟一个较大的发光表面对周围环境的照明效果,通 常面积光的灯光亮度衰减很快,阴影非常柔

10、和。Unity3D的面积光仅在烘焙光照贴图时有效,并不像Maya 的Area Lights 一样能动态照亮场景。unity_lightingO3.pngWidth :面积光宽度Height :面积光的高度总的来说,Unity3D中自带灯光比较简单,根据我们在Maya中使用灯光的经验,可以很快熟悉这些灯光类型的使用。1.2阴影类型(Shadow)Unity3D的灯光可以设置不同的阴影类型,分别是:无阴影、硬阴影、软阴影。要注意的是,不论是硬阴影还是软阴影, 本质上都是用阴影贴图模拟的阴影效果,而不是真实光照而自然形成的暗色区域。unity_lighting05.png灯光上阴影设置部分会随着Mo

11、de参数的不同而变化,Realtime Lighting Mode 对应的选项很多,而 Baked Mode 仅对应 Baked Shadow Angle 一项。无阴影 灯光不产生阴影,新建场景后默认生成的平行光就是无阴影 的。硬阴影阴影边缘清晰软阴影阴影边缘柔和,有过渡效果阴影质量设置虽然我们在灯光的阴影设置中可以调节Resolution以提高阴 影质量,但真正的阴影质量调节应该在Quality面板中来进 行,灯光中的阴影Resolution参数默认设置是Use Quality Settings,就是从Quality面板的设定中来选择。 unity_lighting06.png从菜单 Edi

12、t Project Settings Quality 打开 Quality 面板, 这里可以针对不同质量等级设置不同的参数。 unity_quality02.png我们现在先不在这里对Quality面板做全面介绍,仅介绍关 于阴影的那一部分设置内容:Shadows :在当前质量下是不渲染阴影,还是只渲染硬阴影, 还是软硬阴影都渲染Shadow Resolution :在当前质量下阴影贴图分辨率,这就对 应了灯光面板中的Resolution参数。Shadow Projection :阴影贴图的投影方式,Close Fit方式会 优化近处的阴影质量,缺点是运动状态下可能会出现一些波动,Stable

13、 Fit方式不会有波动,但质量比较差有的时候阴影贴图会出错,比如无缘无故多出一条亮缝之 类,通常可以选择切换到Close Fit方式来解决,如果不想切 换的Close Fit方式,可以适当降低灯光阴影参数中的Normal Bias参数,或者将对应场景物体设置成双面显示。Shadow Near Plane Offset :很近处不渲染阴影Shadow Cascades :阴影贴图叠加方式,可以是单层、2层或 者4层Cascade Splits :不同层所对应场景区域的比例分配划分 Shadow Cascades是一种阴影贴图算法,比如我们选择4层 叠加,那么实际上会计算4次阴影贴图,每次对应距离

14、摄影 机一定距离范围以内的场景物体,而这个距离范围的划分就 通过Cascade Splits中所显示的紫、绿、黄、红四种颜色区 域所占比例来区分。紫色代表最近处的区域,而红色代表最 远处的区域。紫色条越窄代表其对应的那一层阴影贴图所对 应的场景区域越小,这样一来该区域的阴影贴图精度就很高 了。我们可以看到这里的 Shadow Resolution 就对应了灯光面板中的 Resolution 参数。unity_lighting07.png1.3 渲染路径(Rendering Path)Unity3D提供两种渲染路径(Rendering Path),对于初学者 来说,渲染路径这个概念不是很好理解,

15、大家可以理解成是 两种不同的渲染器,分别有利弊就好了。1.3.2 Forward在Forward渲染路径下,每个物体会被每个光源渲染成一个 “通道”,因此物体受到越多灯光的影响,其渲染次数就会越 多。Forward渲染路径的优势在于,在灯光比较少的情况下, Forward方式的渲染速度会非常快,处理透明贴图也非常快, 还可以使用诸如“多重取样抗锯齿(MSAA) ”这样的硬件处理 技术技术。但Forward渲染路径的渲染速度会随着灯光的增多而迅速变 慢,在一些有很多灯光照明的特定场景中(比如高科技室内 环境)并不适合使用Forward渲染路径。1.3.1 Deferred使用Deffered渲染

16、路径,渲染时间不会随着灯光的增多而提 高,而是会随着受整体光照影响区域的扩大而提高(也就是 说,场景中越多像素被照亮,渲染速度就越慢,但全屏被照 亮的情况下,灯光设置复杂度不会进一步影响渲染速度了) Deffered渲染路径在整体上需要更多的计算量,对于一些移 动设备,Deffered渲染路径还不能支持。新版Unity3D的默认渲染路径是Deffered渲染,如果场景非 常简单,或者希望使用MSAA,可以自行修改成Forward渲 染路径。2. 间接照明天光,也就是环境光(Ambient Light),特指来自于天空的 漫反射。在Unity3D中可以继承“天空球”的颜色作用环境光 颜色,也可以自行

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 电气技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号