Unity3D自带功能:灯光及光照烘焙
Unity3D光照贴图烘焙知识详解
Unity3D光照贴图烘焙知识详解欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D 培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌。
今天简单地跟大家分享一下Unity5.0里面的光照贴图烘焙技术。
由于时间只有20分钟,所以只能给大家一些概要性的介绍,没有办法深入,等到Unity5.0版本正式推出之后,我会给大家一些更详细的介绍。
接下来我会分3个部分跟大家讲解,第一部分讲解一下在以往的Unity版本中所采用的光照烘焙方法,以及Unity5.0中为什么会采用一套全新的光照贴图烘焙方法。
第二部分讲解Imagination的PowerVR Ray Tracing方法。
第三部分讲解Geomerics的Enlighten方法。
后两种方法都会被引入到Unity 5.0版本当中去。
首先我们来介绍Unity在4.X版本里面使用光照烘焙的方法。
我们采用的是Autodesk的Beast,而我们在5.0版本中可能会把它彻底移除。
这是为什么呢?我们先介绍一下Beast的弱点吧。
Beast只能烘焙静态的光照贴图,而不支持动态光照。
一般而言,使用Beast的工作流程是:先建造一个场景,然后在场景中布置各种光源,进而点击Bake操作键,接下来大家就可以喝喝咖啡,或者直接下班回家了,因为整个烘焙过程可能需要几分钟、几小时,甚至是更长的时间。
这样的过程还不一定得到正确的结果,如果发现前面的烘焙结果存在问题,还要重新返回到第一步,直至得到满意的烘焙结果。
这样的过程对于广大开发者来说肯定是一个不太友好的过程,势必会影响大家的工作效率。
那么既然我们说原来的方法存在着一定的问题,那么理想的光照方案是什么样的呢?第一,理想的方法不需要任何的预计算时间;第二,它能够让场景中所有与光照有关的信息都能够实现动态改变,比如说动态改变光源、改变材质、改变环境光照,甚至改变场景中几何体的形状;第三,这样的一套方法还需要做到实时渲染,这不仅包括Console设备,也包括我们手中的移动设备。
unity的光照烘焙技术摘选
一、光照烘焙技术的概念1.1 光照烘焙技术的定义光照烘焙(Lightmapping)是一种用来模拟光照效果的技术,它通过预先计算并存储场景中的光照信息,然后在运行时应用于渲染过程中,以提高图形渲染的效率和质量。
1.2 光照烘焙技术的优点- 增加渲染效率:光照信息在运行时已经预先计算好,不需要实时计算,可以降低渲染负载,提高性能。
- 改善光照质量:通过光照烘焙可以获得更真实、更精细的光照效果,提高场景的逼真度和观赏性。
- 节省资源:由于光照信息是预先计算好的,不需要实时计算,可以节省系统资源,适用于移动设备等资源受限的评台。
二、光照烘焙技术的原理2.1 光照烘焙的基本原理光照烘焙技术是通过将三维场景中的光照信息计算并存储为纹理或纹理集,然后在运行时应用于模型的表面,以模拟真实的光照效果。
光照烘焙的基本原理包括光照采样、纹理映射和渲染应用等步骤。
2.2 光照烘焙的计算方法- 光照贴图(Lightmaps):通过将场景中的光照信息渲染到纹理上,然后在运行时将光照信息映射到模型表面,以获得真实的光照效果。
- 光子映射(Photon Mapping):通过模拟光子在场景中的传播和相互作用,计算场景中的光照信息,并存储为纹理或纹理集,然后在运行时应用于模型的表面。
三、Unity中的光照烘焙技术3.1 Unity的光照烘焙工具Unity提供了丰富的光照烘焙工具和功能,包括实时光照、烘焙照明、环境光遮蔽(AO)等,可以满足不同场景的照明需求。
3.2 使用Unity进行光照烘焙的步骤- 设置光照参数:在Unity中设置场景的光源、材质和照明参数,为光照烘焙做准备。
- 执行光照烘焙:在Unity中执行光照烘焙,将场景中的光照信息计算并存储为纹理或纹理集。
- 应用光照烘焙:在运行时将光照信息映射到模型的表面,以获得真实的光照效果。
四、光照烘焙技术在游戏开发中的应用4.1 光照烘焙技术的作用在游戏开发中,光照烘焙技术可以用于优化场景的渲染效果和性能,提高游戏的视觉质量和用户体验。
Unity3D教程:Unity批量处理修改烘培LightMap
中国第一免费Unity3D教程手册
Unity3D教程:Unity批量处理修改烘培LightMap
用Unity烘培后的多重纹理不能直接转到Unity中,还需要一个个的手动指认Shader。
在Max 里建立你的模型,然后Diffuse Map贴这个模型上,导出一个Fbx文件,然后再相同的模型和相同的Diffuse Map通道上,贴好烘培图,同样导出一个Fbx文件,最终的结果是2个Fbx文件,模型是相同的,其中一个包含材质UV信息,另一个包含LightMap 材质UV信息。
这个Unity资源包包含两个编辑器脚本,即"合并"两个模型网格和将一个模型上的UVs复制到另一个模型物体上并创建一个文本文件记录UV坐标信息.其他的脚本是重新导入Fbx物体的时候重新赋予UVs。
它还能自动设置所有LightMap材质,因此你不必手动的设置Shader和重新赋予LightMap纹理。
唯一的"副作用"是用来取LightMap的UV坐标的网格模型的LightMap通道会被Diffuse Map所占据,但这不是一个真正的问题,作为LightMap 网格模型可以在UV转移后删除掉。
使用本脚本的方法,你必须像下图这样选择两个网格物体文件,然后右键菜单中选择TransferUVs。
Unity3D教程:Unity批量处理修改烘培LightMap
这个脚本不仅测试了从LW 9.5导出的OBJ模型,它也可以很好的用于其他软件导出的模型文件。
中国第一免费Unity3D教程手册。
Unity 第五章 灯光材质地形系统
5.1.2 全局光照设置Lighting-全局雾效果Fog
Unity在Lighting-Environment面板中的Other栏中提供雾选项,能够模拟高山森林
在梅雨季节出现的浓雾效果,添加潮湿隧道添加远景层次效果,还可以体现大火中浓
烟阻挡视线场景。
属性
说明
属性
说明
Fog Color
雾的颜色
Linear Fog Start 线性雾效开始距离
Fog Mode
雾效模式
Linear Fog End
线性雾效结束距离
Fog Density
雾效浓度
Linear
线性雾模式
Exponential
指数雾模式
Exponential Squared 指数平方雾模式
反射源可见程度
5.1.2 全局光照设置Lighting-光照烘培GenerateLighting
Lighting面板的Scene栏中可设置 RealtimeLight、MixedLighting和光照烘焙 贴图设置LightmappingSetting 。Unity通 过CPU、GPU、Enlighten的方式生成光照 贴图为场景提供全局光照。光照烘培可以 逼真的模拟光照的灯光在墙壁间的反射效 果,阳光照到沙滩的漫射效果,霓虹灯招 牌的放射效果等。但烘培光照需要进行预 先渲染,且需要进行长时间巨大的光学运 算。
反射天空盒
Resolution
反射分辨率
Bounces
反射反弹次数
属性
说明
SunSource
方向光“太阳”源
unity 灯光-烘焙光照贴图剖析
灯光-Light对于每一个场景灯光是非常重要的部分。
网格和纹理定义了场景的形状和外观,而灯光定义了场景的颜色和氛围。
可以通过从菜单中选择 GameObject->Light并将其添加到你的场景中。
有3种类型的灯光。
一旦添加了一个灯光你就可以像操作其他物体一样操作它。
相关属性介绍◆Type:灯光的类型⏹Directional:平行灯,类似太阳光;⏹Point:点光源,类似灯泡;⏹Spot:聚光灯,类似舞台聚光灯;◆Baking:该选项有三个选择⏹Realtime:即光源不参与烘焙,只作用于实时光照;⏹Baked:表示光源只在烘焙时使用⏹Mixed:该光源会在不同的情况下做不同的响应;在烘焙时,该光源会作用于所有参与烘焙的物体;在实际游戏运行中,该光源会作为实时光源作用于那些不参与烘焙的物体或者动态的物体(不作用于静态的物体,就是勾选了Static);◆Color:光源的颜色,根据不同的环境设置不同的颜色,营造出不同的氛围;◆Intensity:光线强度;◆Bounce Intensity:光线的反射强度;◆Shadow Type:设置是否显示光源作用在的物体的阴影,⏹No Shadows不显示阴影,阴影不存在;⏹Hard Shadows:硬阴影(无过滤),效果不是很自然比较生硬;⏹Soft shadows:柔化阴影,更加贴近实际生活中的阴影显示,但比较消耗资源;◆Strength:阴影黑暗程度,取值范围0~1◆Resolution:阴影的清晰度,细化度,越高消耗越大;◆Bias:阴影的偏移量,越小,物体表面会有来自它自身的阴影,太大光源就会脱离了接收器;◆Cookie:灯光投射的纹理,如果灯光是聚光灯和方向灯就必定是一个2D纹理,如果是点光源必须是一个Cubemap(立体贴图);◆Cookie Size:缩放Cookie的投影,只适用于方向光◆Draw Halo:如果勾选,那光源带有一定半径范围的球形光源◆Flare:在选中的光源的位置出现镜头光晕;◆Render Mode:此项决定了选中的光源的重要性,影响照明的保真度和性能;⏹Auto:渲染的方法根据附近灯光的亮度和当前的质量设置在运行时由系统确定;⏹important灯光是逐个像素渲染的;⏹Not Important灯光总是以最快速度渲染;Culling Mask:剔除遮罩,类似摄像机的遮罩,选中指定的层收到光照影响,未选中的不受到光照影响;设置全局光照和烘焙光照贴图-LightMap一个场景中灯光添加多了资源消耗也就大了,为了降低资源的消耗,可以选择烘焙光照贴图;把光源的效果烘焙到贴图上,形成自带光源效果的贴图,这样就可以减少灯光的使用。
unity灯光-烘焙光照贴图讲解
灯光-Light对于每一个场景灯光是非常重要的部分。
网格和纹理定义了场景的形状和外观,而灯光定义了场景的颜色和氛围。
可以通过从菜单中选择 GameObject->Light并将其添加到你的场景中。
有3种类型的灯光。
一旦添加了一个灯光你就可以像操作其他物体一样操作它。
相关属性介绍◆Type:灯光的类型⏹Directional:平行灯,类似太阳光;⏹Point:点光源,类似灯泡;⏹Spot:聚光灯,类似舞台聚光灯;◆Baking:该选项有三个选择⏹Realtime:即光源不参与烘焙,只作用于实时光照;⏹Baked:表示光源只在烘焙时使用⏹Mixed:该光源会在不同的情况下做不同的响应;在烘焙时,该光源会作用于所有参与烘焙的物体;在实际游戏运行中,该光源会作为实时光源作用于那些不参与烘焙的物体或者动态的物体(不作用于静态的物体,就是勾选了Static);◆Color:光源的颜色,根据不同的环境设置不同的颜色,营造出不同的氛围;◆Intensity:光线强度;◆Bounce Intensity:光线的反射强度;◆Shadow Type:设置是否显示光源作用在的物体的阴影,⏹No Shadows不显示阴影,阴影不存在;⏹Hard Shadows:硬阴影(无过滤),效果不是很自然比较生硬;⏹Soft shadows:柔化阴影,更加贴近实际生活中的阴影显示,但比较消耗资源;◆Strength:阴影黑暗程度,取值范围0~1◆Resolution:阴影的清晰度,细化度,越高消耗越大;◆Bias:阴影的偏移量,越小,物体表面会有来自它自身的阴影,太大光源就会脱离了接收器;◆Cookie:灯光投射的纹理,如果灯光是聚光灯和方向灯就必定是一个2D纹理,如果是点光源必须是一个Cubemap(立体贴图);◆Cookie Size:缩放Cookie的投影,只适用于方向光◆Draw Halo:如果勾选,那光源带有一定半径范围的球形光源◆Flare:在选中的光源的位置出现镜头光晕;◆Render Mode:此项决定了选中的光源的重要性,影响照明的保真度和性能;⏹Auto:渲染的方法根据附近灯光的亮度和当前的质量设置在运行时由系统确定;⏹important灯光是逐个像素渲染的;⏹Not Important灯光总是以最快速度渲染;Culling Mask:剔除遮罩,类似摄像机的遮罩,选中指定的层收到光照影响,未选中的不受到光照影响;设置全局光照和烘焙光照贴图-LightMap一个场景中灯光添加多了资源消耗也就大了,为了降低资源的消耗,可以选择烘焙光照贴图;把光源的效果烘焙到贴图上,形成自带光源效果的贴图,这样就可以减少灯光的使用。
unity lightmap原理
unity lightmap原理
《Unity Lightmap原理》
Unity的Lightmap是一种用于静态场景中的光照信息的技术,它可以帮助开发者在游戏中尽可
能真实地模拟光照效果。
Lightmap的实现原理主要是通过预烘焙的方式,将场景中的光照信息计算出来并保存到贴图中。
在使用Lightmap之前,首先需要设置场景中的光照。
这可以通过Unity内置的照明系统或者第三方的照明插件来完成。
当光照设置完成后,开发者可以通过Unity的菜单选择“Bake”来触发Lightmap的计算。
在计算过程中,Unity会通过光线追踪等技术,计算每个像素点的光照值,并将其保存到贴图中。
这些贴图包括主光照贴图、间接光照贴图等。
同时,Unity还会计算物体表面的阴影信息,并将其保存为阴影贴图。
当游戏运行时,Unity会根据场景中物体的位置和光照信息,自动选择合适的Lightmap贴图来
渲染物体表面的光照。
这样就可以在不实时计算光照的情况下,提升游戏运行的性能表现。
总的来说,Unity的Lightmap原理是通过预烘焙的方式,将场景中的光照信息计算出来并保存
到贴图中,从而实现在游戏中尽可能真实地模拟光照效果的目的。
如此,开发者可以在不牺牲性能的情况下,获得更好的视觉体验。
Unity3D游戏开发标准教程第07章 光影效果的使用
第7页
7.1 光源
2.区域光光源基础知识 区域光光源的添加可以通过点击菜单栏中 “GameObject‖→―Light‖→―Spot Light‖菜单完成, 区域光光源只能在光照烘焙完成后才能显示出效果, 一般情况区域光光源用来模拟灯管的照明效果。 区域光光源无法实现 Cookie效果,其余参数与其他光 源完全相同 。
阴影强度,值越大,阴影的颜色越浓
Flare
Resolution
设置光照耀斑、镜头光晕 效果
设置阴影的质量
7.1 光源
1.点光源基础知识
Baking 光源烘焙模式(实时、烘焙、混合),烘焙模式下烘焙光照后会将 该光源的效果添加到烘焙贴图中,烘焙模式下的光源无法影响非静 态对象,混合模式下的光源即可以被烘焙,也能够影响到非静态对 象 灯光遮罩,为光源设置带有alpha通道的纹理贴图,使其在不同的位 置具有不同的亮度(点光源需要放置立方图纹理Cubemap) 设置光照的渲染模式,Auto模式为自动调节模式,Important模式是 将像素逐个渲染,Not Important模式是总以最快的方式进行渲染 剔除遮罩,只有其中被选中的层所关联的对象能够受到光照的影响
第8页
7.2 光照贴图的烘焙和使用
光照烘焙就是将场景中的光照信息渲染成贴图,然后 将烘焙完成后生成的贴图再应用到场景中的技术,此 时光照信息已经存储在纹理贴图中,不再需要 CPU 进 行计算,能大幅度提高性能。 7.2.1 光照设置 点击菜单栏中“ Window”→“Light” 即可打开 Light 窗 口, Light 窗口中分三个板块来控制 Unity 游戏开发引 擎中跟光照相关的参数
Scale In Lightmap 该值影响了用于选中对象的lightmap的像素数目。1.0为默认值,表示 每个对象所占光照图像素的比率。可以通过此值来优化光照图, 减少不重要的对象的比例让重要的物体占更多的光照图像素来 优化场景
unity 灯光烘焙原理
unity 灯光烘焙原理Unity是一款广泛应用于游戏开发的引擎,其中灯光烘焙是其重要的功能之一。
本文将介绍Unity灯光烘焙的原理和作用。
一、什么是灯光烘焙灯光烘焙(Lightmapping)是指将场景中的灯光效果预先计算并存储为纹理的过程。
在运行时,游戏引擎会根据这些预计算的灯光纹理来渲染场景,从而提高渲染效率和画面质量。
二、灯光烘焙的作用1. 提高渲染效率:灯光烘焙可以减少实时计算光照的工作量,从而提高渲染性能。
在运行时,引擎只需要根据预计算的灯光纹理来渲染场景,大大减少了CPU和GPU的负荷。
2. 提高画面质量:通过灯光烘焙,可以实现更加真实的光照效果。
预计算的灯光纹理可以包含更多的光照信息,使场景中的物体产生更加明暗的阴影,增强真实感。
三、灯光烘焙的原理1. 光照贴图:灯光烘焙的核心原理是将场景中的光照信息计算并存储为光照贴图(Lightmap)或光照图(Lighting Map)。
光照贴图是一张纹理,其像素值表示场景中每个点的光照强度和颜色。
2. 光照计算:在进行灯光烘焙之前,需要设置场景中的光源和材质属性。
Unity会根据光源的类型(如点光源、聚光灯、方向光等)和材质的属性(如反射率、折射率等)来计算场景中每个点的光照强度和颜色。
3. 光照采样:为了生成光照贴图,Unity会在场景中的每个点进行光照采样。
采样过程中,会考虑光源的位置、颜色、强度等因素,以及材质的反射率、折射率等属性。
通过多次采样和计算,得到最终的光照贴图。
4. 光照传递:在生成光照贴图之后,Unity会将光照贴图应用到场景中的物体上。
渲染时,引擎会根据物体的UV坐标和光照贴图的像素值来确定物体的光照强度和颜色。
通过多次传递光照,实现场景中物体的明暗效果。
5. 光照合并:在场景中存在多个物体时,为了提高渲染效率,Unity会将多个物体的光照贴图进行合并。
合并过程中,需要考虑物体之间的遮挡关系,以及光照的传递效果。
通过合并光照贴图,可以减少纹理的数量,提高渲染性能。
unity3d烘焙场景设置注意事项
unity3d烘焙场景设置注意事项Fbx、贴图导入Unity时的注意事项:在导出Fbx之前,Maya中已经对物体连接了正确的贴图,并且贴图文件名不能更改。
把Fbx和贴图放在同一文件夹内,直接把此文件加拖入Unity内。
此时Diffuse贴图应能自动识别。
此时,对贴图修改后,在Unity中更新贴图(删除老贴图,导入新贴图,并保持命名,路经一致),模型能够自动更新。
假如Unity中删除贴图,关闭Unity,再打开Unity,导入之前删除的贴图,模型不会自动更新贴图。
------------------------------------------------------i3D的这篇教程中的模型比例有问题,先根据Unity官方帮助文档中的内容说一下:Unity官方帮助文档中认为,模型的缩放尺寸是非常重要的。
特别是涉及到一些物理特效模拟的时候。
Unity认为,在理想状态下,不要更改模型的Transforms Scale 值,保持Scale值为(1,1,1)。
(这样的话,模型在Maya中制作时需要freeze,使缩放值为(1,1,1))。
原因是,额外的缩放数值会增加不必要的计算量。
Unity首先推荐模型在创建时使用真实尺寸。
其次是在Unity的Import Settings中更改尺寸。
Unity在进行场景优化时会根据物体尺寸来进行优化。
当在Unity中把一个物体parent到另外一个物体时,最好父级物体的坐标值是(0,0,0),否则之后会遇到不少头痛问题。
Unity的粒子系统不受Transforms Scale值的影响。
物体的不均匀缩放值在Parent后会产生不良后果(这个情况和Maya中是一样的)Unity中,1个单位尺寸代表1米。
即在Unity中创建一个Cube的尺寸是1x1x1米大小。
Unity推荐把人的身高定为大约2个Unity单位高度(2米)。
在Max中,只要正确设置单位尺寸(系统单位尺寸设置以及输出时单位尺寸设置)成厘米后,得到的效果是一致的。
unity 灯光烘焙原理
unity 灯光烘焙原理Unity是一款广泛应用于游戏开发的引擎,其中的灯光烘焙功能是实现游戏场景真实感的重要一环。
本文将探讨Unity中灯光烘焙的原理和作用。
灯光烘焙是一种将动态光照转换为静态光照的技术,即将实时计算的光照效果预先计算出来,然后将其作为纹理贴图应用到场景中的物体上。
这样做的好处是可以大大减少计算量,提高游戏的运行效率,并且能够实现更高质量的光照效果。
在Unity中,灯光烘焙的原理可以简单地概括为以下几个步骤:场景建模、灯光设置、烘焙计算和应用烘焙结果。
我们需要进行场景建模。
在Unity中,我们可以使用内置的编辑工具或者第三方建模软件来创建游戏场景。
场景建模的目的是为了营造出游戏所需的世界观,包括地形、建筑、道具等元素。
接下来,我们需要设置灯光。
在Unity中,可以设置各种不同类型的灯光,比如平行光、点光源、聚光灯等。
每种灯光都有不同的属性可以调整,比如光照强度、颜色、阴影等。
通过设置灯光,我们可以达到不同的光照效果,从而营造出不同的氛围和场景。
然后,我们需要进行烘焙计算。
在Unity中,可以使用烘焙工具来计算光照的预烘焙贴图。
预烘焙贴图是一种包含了场景中静态光照信息的纹理贴图,它记录了光照在场景中的分布情况。
通过烘焙计算,可以将实时计算的光照效果转换为静态的贴图,从而减少运行时的计算量。
我们需要将烘焙结果应用到场景中的物体上。
在Unity中,可以通过设置物体的烘焙贴图属性来应用烘焙结果。
烘焙贴图可以实现物体在不同光照条件下的阴影和反射效果,从而增强物体的真实感和细节。
总结起来,Unity中的灯光烘焙原理是通过将动态光照转换为静态光照,从而提高游戏场景的真实感和性能表现。
通过场景建模、灯光设置、烘焙计算和应用烘焙结果等步骤,可以实现高质量的光照效果和真实感的游戏场景。
灯光烘焙的使用不仅可以提高游戏的视觉效果,还能够提高游戏的性能,给玩家带来更好的游戏体验。
unity烘焙光照贴图
光影烘焙,英文叫Lightmapping 或 light baking。
Unity 自带了 Lightmapping 的功能(是 Illuminate Labs出的名为Beast的产品)。
本系列教程分为4讲:第一讲光影烘焙第三讲 Light Probes第四讲脚本控制其中第三第四讲讲解的是动态物体与烘焙后场景的融合。
打开方式Window - Lightmapping有几点需要注意:1.所要烘焙物体的mesh必须要有合适的lightmapping uv。
如果不确定的话,就在导入模型设置中勾选 Generate Lightmap UVs2.任何Mesh Renderer, Skinned Mesh Renderer 或者 Terrain 都要标注为static(lightmap static)界面一:Objec点击Bake Scene即开始烘mappingObject MapsRan d4rersVBipODI Pelvis (Skinned Mesh Renderer)Lightmsp StaticScale In Lightmap 1CleatI lightmap2: 2K 1 024M1024P::烘焙参数的设置Mode:(1)Dual Lightmap mode:近景烘焙图(near lightmaps)和远景烘焙图(far lightmaps)都会被烘焙,只有deferred rendering path支持该模式。
(2)Single Lightmap mode:只有远景烘焙图(far lightmaps)会被烘焙,(3)Directional Lightmap mode:Use in forward rendering:一般可以忽略它。
针对Dual lightmaps的设定,只在Mode选的是Dual时才会出现。
在forward rendering模式下是否激活dual lightmaps,需要自己写对应的Shader。
Unity3D之Lightmap入门、烘焙贴图、场景技巧
Unity3D之Lightmap入门作者:李志健Unity内置的光照贴图烘培工具是Illuminate Labs 的Beast。
烘培光照贴图流程被完美的整合到Unity中。
这就意味着使用Beast可以根据你的网格物体,材质贴图和灯光属性的设置来烘培你的场景,从而得到完美的光照贴图。
同时也意味着光照图将作为渲染引擎的一部分。
只要你烘培一次光照贴图你就不需要其他任何操作。
光照图将自动指定到物体上。
准备需要烘培的光照贴图的场景从菜单栏选择Window – Lightmapping打开光照图工具窗口。
1.检查你将要烘培的模型上是否存在一个合适的用来定位光照贴图的UVs。
你也可以从mesh import settings面板中的勾选Generate Lightmap UVs选项来生成一个用于定位光照图UV的集。
2.在物体面板中将要烘培光照贴图的物体设置为Static(静态),这样Unity就会知道哪些物体是需要被烘培的。
3.在Bake面板下调整Resolution的值控制光照贴图的分辨率。
(在Scene View面板里勾选上小窗口LightmapDisplay中的Show Resolution选项可以帮助你更直观的查看贴图分辨率设置)。
4.点击Bake(烘培)5.在Unity编辑器底部的状态栏的右边会出现一个进度条。
6.当烘培结束时,你可以从光照图编辑器的底部预览窗口中查看所有烘培好的贴图。
场景和游戏窗口将会更新。
现在在你的场景中已经可以看到光照贴图效果了!Tweaking Bake Settings 调节烘焙设置最终场景的渲染效果取决与你对灯光和烘培选项的更多设置。
让我们来看一个通过基础设置改进光照的质量的小例子。
这是一个简单的场景,包含一组立方提和一个位于场景中心的点光源。
灯光产生硬阴影,看起来这个效果十分的晦暗和不自然。
Selecting the light and opening the Object pane of the Lightmapping window exposes Shadow Radius and Shadow Samples properties. Setting Shadow Radius to 1.2, Shadow Samples to 100 and re-baking produces soft shadows with wide penumbra - our image already looks much better.选择灯光打开物体面板,展开阴影范围和阴影采样属性。
unity灯光-烘焙光照贴图讲解
实用标准文案灯光-Light 对于每一个场景灯光是非常重要的部分。
网格和纹理定义了场景的形状和外观,而灯光定义了场景的颜色和氛围。
可以通过从菜单中选择GameObject->Light并将其添加到你的场景中。
有3种类型的灯光。
一旦添加了一个灯光你就可以像操作其他物体一样操作它。
相关属性介绍♦Type:灯光的类型■Directional:平行灯,类似太阳光;■Point:点光源,类似灯泡;■Spot:聚光灯,类似舞台聚光灯;♦Baking:该选项有三个选择■Realtime/口光源不参与烘焙,只作用于实时光照;文档大全实用标准文案■Baked:表示光源只在烘焙时使用■Mixed:该光源会在不同的情况下做不同的响应;在烘焙时,该光源会作用于所有参与烘焙的物体;在实际游戏运行中,该光源会作为实时光源作用于那些不参与烘焙的物体或者动态的物体(不作用于静态的物体,就是勾选了Static);♦Color:光源的颜色,根据不同的环境设置不同的颜色,营造出不同的氛围;♦Intensity:光线强度;♦Bounce Intensity:光线的反射强度;♦Shadow Type:设置是否显示光源作用在的物体的阴影,■No Shadows不显示阴影,阴影不存在;■Hard Shadows:硬阴影(无过滤),效果不是很自然比较生硬;■Soft shadows:柔化阴影,更加贴近实际生活中的阴影显示,但比较消耗资源;♦Strength:阴影黑暗程度,取值范围0~1♦Resolution:阴影的清晰度,细化度,越高消耗越大;♦Bias:阴影的偏移量,越小,物体表面会有来自它自身的阴影,太大光源就会脱离了接收器;♦Cookie:灯光投射的纹理,如果灯光是聚光灯和方向灯就必定是一个2D纹理,如果是点光源必须是一个Cubemap (立体贴图);♦Cookie 5»2«:缩放Cookie的投影,只适用于方向光♦Draw Halo:如果勾选,那光源带有一定半径范围的球形光源♦Flare:在选中的光源的位置出现镜头光晕;♦Render Mode:此项决定了选中的光源的重要性,影响照明的保真度和性能;■Auto:渲染的方法根据附近灯光的亮度和当前的质量设置在运行时由系统确定;■important灯光是逐个像素渲染的;■Not Important灯光总是以最快速度渲染;Culling Mask:剔除遮罩,类似摄像机的遮罩,选中指定的层收到光照影响,未选中的不受到光照影响;文档大全实用标准文案设置全局光照和烘焙光照贴图-LightMap一个场景中灯光添加多了资源消耗也就大了,为了降低资源的消耗,可以选择烘焙光照贴图;把光源的效果烘焙到贴图上,形成自带光源效果的贴图,这样就可以减少灯光的使用。
unity3d5.6烘焙教程持续更新中
unity3d5.6烘焙教程持续更新中unity5.6是今年发布,作为5.x的最后一个版本,有很多烘焙优势,在此总结一些作为5.x系列完结的笔记这个版本在烘焙上的特点就是增加了渐进光照贴图(Progressive Lightmapper),这个功能可以说极大地改善场景光照烘焙的工作流程,可以加快场景烘焙效率,再也不怕烘焙一晚上发现有灯光有问题了当然它不是用来替代Enlighten的,很多地方还是略有不同的,但是感觉这个速度更快。
虽然有的新增的灯光混合模式不受支持,但是它在模型迭代中能发挥更大的优势。
Progressive 光照优势就是能很快看到一个区域的光照效果,而且在高参数下烘焙非常快,可以随时停止,效果依然保留,这个功能好多了缺点也挺多的,比如只支持两个模式(看下面,有些效果会缺失),参数高的时候内存占用非常大,如果内存小的机器很容易崩溃enlighten比较还是比较传统,内存消耗不多,比较不容易崩溃,支持所有模式,所以需要高端效果的时候还是这种支持的多但是缺点是不到渲染结束看不到效果,相同参数下烘焙时间感觉长了不只好几倍下面是两个白模渲染效果对比可以看到其实渐进式的效果范围ao效果范围更广更暗一些关于新版本还有4种光照模式,有些理解起来还都是挺纠结的而且官方和其他教程解释得都比较抽象,所以下面以质量为主进行一些说明表面上这些设置和mixed灯光有关,属于混合灯光方面的内容lightmode具体可以看这里/Manual/LightModes.html关于混合灯光四种模式区别具体看下面的/Manual/LightMode-Mixed.html但这些与烘焙质量也有很大关系,我测试了以阴影质量为主列下面的表下面讨论的项目是在bake light下,directional模式下混合灯光模式:说一下下面的模式主要针对的都是混合灯光也就是mixed方式,动态和静态虽然有的模式能相互投影但是影子依然会非常锐利,具体如何使用实时阴影取决于ShadowDistance的值和光照模式。
2.6.12.6虚拟现实基础操作灯光与烘焙上
定向光
当定向光的角度和地面平行,可以做出日落的效 果;当把光源转到天空时会导致变黑,得到夜晚的效 果;从上往下照可以模拟日间的效果。
定向光
天空盒指定为环境光源时会影响环境里面的对象。
点光源
点光源从一个位置向 四面八方发出光线,影响 其范围内的所有对象,类 似灯泡的照明效果。在只 有一个点光源的场景中, 直接照射某个物体的一条 光线,一定是从点光源中 心发射到被照射位置的。
主讲教师:石卉
未来已来
你来不来
点光源
点光源的亮度从中 心最强一直到范围属 性设定的距离递减到0 为止,光的强度从光 源到距离成反比,这 是所谓的“平方反比 定律”,类似光在现 实世界的行为。
区域光源
区域光源在空间是 一个矩形,光线从矩形 的表面均匀地向四周发 散,但是光线只会来自 矩形的一面,而不会出 现在另一面。
区域光源
学习目标
1)了解Unity3d光照 2)学习Unity3D灯光的类型 3)掌握灯光烘培的类型
知识点
1
光照简介
2ter 01
灯光简介
灯光简介
Unity3D中光照的工作方 式类似于光在现实世界中的情 况,赋予了场景生命,如果说 一个场景有了模型和贴图就具 备了骨架和外表,那么有了光 照则有了色调和情感。很多时 候我们会用到多个灯光,同时 调节多个灯光以让它们协同工 作。从而得到理想的效果。
定向光
定向光没有真正的光源坐标,放置在场景任何地 点都不会影响光的效果,只有旋转会影响定向光的照 射结果。
定向光
在预设情况下,新的场景都会附带一盏定向光。 在Unity3D里定向光还会与天空盒系统关联。用户也 可以删除预设的定向光并创建一个新的光源
定向光
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Unity3D自带功能:灯光及光照烘焙这一篇比较偏重于功能介绍,具体的实例操作请参考其他文章:未完成游戏场景中灯光照明的构成现实生活中的光线是有反射、折射、衍射等特性的。
对这些基本特性的模拟一直以来都是计算机图形图像学的重要研究方向。
在CG中,默认的照明方式都是不考虑这些光线特性的,因此出来的效果与现实生活区别很大。
最早期的时候,人们利用各种方式来模拟真实光照的效果,比如手动在贴图上画上柔和阴影,或者用一盏微弱的面积光源去照明物体的暗部以模拟漫反射现象等等。
然后出现了所谓的高级渲染器,用计算机的计算来代替我们的手工劳动来进行这个“模拟”的工作。
在漫长的发展过程中,出现过很多很多计算方案,总体上分为这样几类:直接模拟光线从被光源发出到最终被物体完全吸收的正向过程,也就是常说的GI(Global Illumination);不直接模拟光线,而是反向搜集物体表面特定点的受光照强度来模拟现实照明效果,也就是常说的FG(Final Gathering);完全不考虑光线的行为,单纯基于“物体上与其他物体越接近的区域,受到反射光线的照明越弱”这一现象来模拟模拟现实照明(的一部分)效果,也就是常说的AO(Ambient Occlusion);将场景光照结果完全烘焙到模型贴图上,从而完完全全的假冒现实光照效果,也就是我们所说的Lightmap。
不论是GI还是FG,计算量都是非常大的,一帧图片需要几十分钟甚至几十小时来渲染,所以很难被应用在游戏设计领域。
因此在游戏设计领域,光照贴图技术依然是目前的主流方式。
由于光照贴图需要事先烘焙(baking)出来,且仅支持静态物体(Static Object),而我们的游戏场景中几乎不可能全都是静态物体,所以通常游戏场景中的灯光照明是多种照明方式的混合作用。
对于静态物体来说,大多使用光照贴图来模拟间接光的照明效果,然后加上直接光源的动态照明效果;对于运动物体来说,则仅用直接光源的动态照明效果,或者使用光照探针来模拟间接光的照明效果。
随着技术的发展以及计算机计算能力的提高,也许在未来,我们能够直接在游戏场景中进行动态的全局光照模拟也说不定呢。
新版Unity3D中就已经出现了Realtime Global Illumination,虽然这个技术还处于雏形阶段,所需要的计算量依然庞大,但确实为我们展示了一个令人激动的前景。
当然,技术是技术,产品是产品。
技术是为产品服务的,再先进的实时全局光照系统,对于像素风格的游戏场景的提升也是几近于0。
“选择合适的技术来完善我们的产品和制作流程”,以及“根据现有技术来设计产品和制作流程”,说的其实是同一个意思。
1. 直接照明(Direct Lighting)Unity3D中的直接照明主要来源于各种灯光物体,而灯光物体本质上是空物体加上灯光组件。
直接照明可以产生阴影,但光线不会反射、也不会折射,但可以穿透半透明材质物体。
1.1 灯光类型(Lights)Unity3D中默认可以创建这么几种灯光:聚光灯、点光源、平行光、面积光,另外还可以创建两种探针(Probe):反射探针(Reflection Probe)和光照探针组(Light Probe Group)。
Unity中可以创建的灯光类型物体平行光平行光通常用来做阳光,Unity3D新建场景后会默认在场景中放置一盏平行光。
平行光不会衰减。
unity_lighting04.pngType:灯光类型,所有类型的灯光都其实共用一个组件,本质上是一样的。
Color:灯光颜色Mode:灯光照明模式,每种模式对应Lighting面板中一组设定Realtime:对应Realtime LightingMixed:对应Mixed LightingBaked:对应Lightmapping SettingRealtime Lighting是新出现的一种烘焙光照技术,它并不像传统的烘焙技术一样直接烘焙间接光照颜色和亮度信息到光照贴图上,而是烘焙物体和物体之间的关系信息,比如A面对B面有漫反射效果,B面对C面有漫反射效果等等。
这样一来,只要物体之间的关系不变(也就是所有的静态物体都不移动位置),就不需要重新烘焙,从而使得我们可以在场景中随意运用动态光源(dynamic lights)。
而传统的Lightmapping光照贴图方式则不支持动态光源效果(改变光源不会改变场景光照)。
Realtime Lighting比Lightmapping要更耗费系统资源,所以手游上就不要考虑了。
Intensity:灯光强度Indirect Multiplier:在计算该灯光所产生的间接光照时的强度倍乘Shadow Type:阴影贴图的类型No Shadows:无阴影贴图Hard Shadows:硬阴影贴图Soft Shadows:光滑阴影边缘(也就是阴影模糊效果)Baked Shadow Angle:烘焙阴影的角度Realtime Shadows Strength:实时阴影强度Resolution:阴影贴图分辨率Bias:阴影偏移,通常适当增加这个值来修正一些阴影的artifactNormal Bias:法线偏移,通常适当减少这个值来修正一些阴影的artifact(不同于Bias的使用场合)Near Plane:阴影剪切平面,对于与摄影机距离小于这个距离的场景物体不产生阴影Cookie:Cookie相当于在灯光上贴黑白图,用来模拟一些阴影效果,比如贴上网格图模拟窗户栅格效果Cookie Size:调整Cookie贴图大小Draw Halo:灯光是否显示辉光,不显示辉光的灯本身是看不见的Flare:Flare可以使用一张黑白贴图来模拟灯光在镜头中的“星状辉光”效果Render Mode:渲染模式Culling Mask:点光源点光源模拟一个小灯泡向四周发出光线的效果,点光源在其照亮范围内随距离增加而亮度衰减unity_lighting01.pngRange:光线射出的范围,超出这个范围则不会照亮物体聚光灯聚光灯模拟一个点光源仅沿着一个圆锥体方向发出光线的效果,聚光灯在其照亮范围内随距离增加而亮度衰减unity_lighting02.pngSpot Angle:灯光射出的张角范围面积光面积光模拟一个较大的发光表面对周围环境的照明效果,通常面积光的灯光亮度衰减很快,阴影非常柔和。
Unity3D的面积光仅在烘焙光照贴图时有效,并不像Maya的Area Lights一样能动态照亮场景。
unity_lighting03.pngWidth:面积光宽度Height:面积光的高度总的来说,Unity3D中自带灯光比较简单,根据我们在Maya 中使用灯光的经验,可以很快熟悉这些灯光类型的使用。
1.2 阴影类型(Shadow)Unity3D的灯光可以设置不同的阴影类型,分别是:无阴影、硬阴影、软阴影。
要注意的是,不论是硬阴影还是软阴影,本质上都是用阴影贴图模拟的阴影效果,而不是真实光照而自然形成的暗色区域。
unity_lighting05..png灯光上阴影设置部分会随着Mode参数的不同而变化,Realtime Lighting Mode对应的选项很多,而Baked Mode仅对应Baked Shadow Angle一项。
无阴影灯光不产生阴影,新建场景后默认生成的平行光就是无阴影的。
硬阴影阴影边缘清晰软阴影阴影边缘柔和,有过渡效果阴影质量设置虽然我们在灯光的阴影设置中可以调节Resolution以提高阴影质量,但真正的阴影质量调节应该在Quality面板中来进行,灯光中的阴影Resolution参数默认设置是Use Quality Settings,就是从Quality面板的设定中来选择。
unity_lighting06.png从菜单Edit > Project Settings > Quality打开Quality面板,这里可以针对不同质量等级设置不同的参数。
unity_quality02.png我们现在先不在这里对Quality面板做全面介绍,仅介绍关于阴影的那一部分设置内容:Shadows:在当前质量下是不渲染阴影,还是只渲染硬阴影,还是软硬阴影都渲染Shadow Resolution:在当前质量下阴影贴图分辨率,这就对应了灯光面板中的Resolution参数。
Shadow Projection:阴影贴图的投影方式,Close Fit方式会优化近处的阴影质量,缺点是运动状态下可能会出现一些波动,Stable Fit方式不会有波动,但质量比较差有的时候阴影贴图会出错,比如无缘无故多出一条亮缝之类,通常可以选择切换到Close Fit方式来解决,如果不想切换的Close Fit方式,可以适当降低灯光阴影参数中的Normal Bias参数,或者将对应场景物体设置成双面显示。
Shadow Near Plane Offset:很近处不渲染阴影Shadow Cascades:阴影贴图叠加方式,可以是单层、2层或者4层Cascade Splits:不同层所对应场景区域的比例分配划分Shadow Cascades是一种阴影贴图算法,比如我们选择4层叠加,那么实际上会计算4次阴影贴图,每次对应距离摄影机一定距离范围以内的场景物体,而这个距离范围的划分就通过Cascade Splits中所显示的紫、绿、黄、红四种颜色区域所占比例来区分。
紫色代表最近处的区域,而红色代表最远处的区域。
紫色条越窄代表其对应的那一层阴影贴图所对应的场景区域越小,这样一来该区域的阴影贴图精度就很高了。
我们可以看到这里的Shadow Resolution就对应了灯光面板中的Resolution参数。
unity_lighting07.png1.3 渲染路径(Rendering Path)Unity3D提供两种渲染路径(Rendering Path),对于初学者来说,渲染路径这个概念不是很好理解,大家可以理解成是两种不同的渲染器,分别有利弊就好了。
1.3.2 Forward在Forward渲染路径下,每个物体会被每个光源渲染成一个“通道”,因此物体受到越多灯光的影响,其渲染次数就会越多。
Forward渲染路径的优势在于,在灯光比较少的情况下,Forward方式的渲染速度会非常快,处理透明贴图也非常快,还可以使用诸如“多重取样抗锯齿(MSAA)”这样的硬件处理技术技术。
但Forward渲染路径的渲染速度会随着灯光的增多而迅速变慢,在一些有很多灯光照明的特定场景中(比如高科技室内环境)并不适合使用Forward渲染路径。
1.3.1 Deferred使用Deffered渲染路径,渲染时间不会随着灯光的增多而提高,而是会随着受整体光照影响区域的扩大而提高(也就是说,场景中越多像素被照亮,渲染速度就越慢,但全屏被照亮的情况下,灯光设置复杂度不会进一步影响渲染速度了)。