文档库 最新最全的文档下载
当前位置:文档库 › Unity烘焙教程

Unity烘焙教程

Unity烘焙教程
Unity烘焙教程

unity自带LightMapping和3Ds Max烘焙贴图的小对比

对于做虚拟现实的朋友来说,烘焙贴图应该不是一个陌生的东西。想要在有限性能的电脑上面即时运算较好的光影效果,一般都会采用烘焙贴图的方法。而除了在3dmax里面烘焙贴图之外,Unity3D也自带了LightMapping烘焙贴图的功能。下面我们来做一个小例子,对两者的意义和效果做一个小对比。在3dmax里面,我简单的建立了几个模型,并分别赋予他们不同的颜色:

然后使用3dmax自带的光线追踪渲染一下,会出现这样的效果:

很明显的,光线追踪之后的渲染效果比没有光线追踪时立体感强了很多。这是因为高级渲染器模拟了真实环境里面光线的各种反射和散射,使物体看起来接近真实的效果。

我们所要做的烘焙,其实就是把这种经过高级渲染器计算的光影效果,记录在贴图上面。

我对上面的几个物体展了UV,并使用3dmax的烘焙功能,烘焙出相应的贴图。并把这个带着UV信息的模型导出为FBX,放进Unity里面。

在unity里面,我拉出了两个模型,一个按照原来的颜色直接给予他材质,另外一个把3dmax里面烘焙的贴图贴上了模型,会出现上图的情况。场景里面也没有打灯光,假如是只有颜色的材质时,模型会没有任何的轮廓和立体感。而贴上了烘焙贴图的模型,看起来会和在3dmax里面使用光线追踪时渲染的效果差不多。

接下来我们对只有颜色的这个模型进行LightMapping烘焙处理。选择该模型,然后在Static里面选择Lightmap Static。

在菜单栏的Window——>lightMapping打开lightMapping面板,在bake栏里面设置一下烘焙的参数,我这里用了如下参数:

设置好之后,就可以烘焙了,在烘焙之前先保存场景,然后点击Bake Scene按钮。

经过漫长的等待(等待的时间取决于你的模型的复杂程度),烘焙结束,生成了贴图,我们可以在maps里面查看:

这时候,我们可以进行一个小对比了:

同样是场景里面没有灯光,但不论是经过Lightmapping烘焙的模型,还是在3DMax里面烘焙贴图的模型,都有了较为真实的光影效果。

既然两者都能达到差不多的效果,那么究竟他们之间有什么差别呢?

3dmax烘焙:

1、可以使用各种高级渲染器对模型进行烘焙,比如Vray。

2、可以烘焙像反射这样的效果。

3、因为光影是固定了,所以在引擎里面只能按照在3DMax里面的摆放,不然就会穿帮。所以模型贴图不能在各个不同场景通用。

unity的LightMapping烘焙:

1、设置的参数相对没有3DMax里面高级渲染器丰富。

2、只能烘焙光影的追踪效果,不能烘焙反射。

3、可以一个模型放在不同场景单独烘焙,模型可以通用。

4、由于每个场景需要烘焙一组贴图,所以如果场景多了,也会增加贴图数量。

至于两者之间的具体效果对比,这要根据烘焙时的具体参数来看。

这里注意的一点是,无论哪种烘焙,你都需要对模型进行展UV操作,假如UV 没有展,或者UV的范围超出了0-1的框,烘焙都是会出错的。

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

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

度来模拟现实照明效果,也就是常说的FG(Final Gathering); 完全不考虑光线的行为,单纯基于“物体上与其他物体越接近的区域,受到反射光线的照明越弱”这一现象来模拟模拟现实照明(的一部分)效果,也就是常说的AO(Ambient Occlusion); 将场景光照结果完全烘焙到模型贴图上,从而完完全全的假冒现实光照效果,也就是我们所说的Lightmap。 不论是GI还是FG,计算量都是非常大的,一帧图片需要几十分钟甚至几十小时来渲染,所以很难被应用在游戏设计领域。 因此在游戏设计领域,光照贴图技术依然是目前的主流方式。 由于光照贴图需要事先烘焙(baking)出来,且仅支持静态物体(Static Object),而我们的游戏场景中几乎不可能全都是静态物体,所以通常游戏场景中的灯光照明是多种照明方式的混合作用。 对于静态物体来说,大多使用光照贴图来模拟间接光的照明效果,然后加上直接光源的动态照明效果; 对于运动物体来说,则仅用直接光源的动态照明效果,或者使用光照探针来模拟间接光的照明效果。

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:剔除遮罩,类似摄像机的遮罩,选中指定的层收到光照影响,未选中的不受到光照影响;

unity渲染篇

渲染流程简单介绍 1.模型导入设置,这个步骤主要是烘培贴图UV的设置 导入模型,在unity中设置烘培贴图UV,烘培UV也可以在max中使用第二套UV制作成烘培UV,烘培UV不能有任何UV重叠。 Unity设置如下 2.接下来把模型拖入Hierarchy视图中,勾选Static GONG 1

3.接下来要设置渲染参数 在Edit-> Project Settings ->Player 找到Other Settings 这里就不说“向前渲染”和“延迟渲染”了,不了解就可以百度下。 4.接下来灯光设置,平行光的设置 如果我们场景要使用实时光照,那么我们的灯光Baking选项就选择Realtime。 ShadowType:Soft Shadows Intensity 可以根据需求调整 Bounce Intensity 是反弹光照的强度,值越大场景就越亮。 5.打开烘培渲染面板 GONG 2

GONG 3

这是Lighting中Object选项,这是设置渲染灯光,被渲染物体的设置,上图中需要经常被用到的参数就是Scale in lightmap后的参数,这个参数是被渲染物体的lightmap 面积的缩放,值越大,lightmap越大,像素越多,阴影越清晰,但是这样会增加场景lightmap的数量和大小。适度修改即可。 6.接下来技术调整参数去渲染场景了。下图是使用实时光照的渲染参数, GONG 4

Skybox:旋转当前场景的天空盒子 Sun:旋转当前场景的平行光 Ambient Source:这个环境源选择有几个选项,可以选择天空盒子,渐变色,颜色,可以更具需求去选择,我比较爱用颜色设置,这样可以很好调整环境色彩和亮度。 Reflection Source:反射源,这个就是反射球的设置,如果场景中有需要去反射环境,就GONG 5

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

这一篇比较偏重于功能介绍,具体的实例操作请参考其他文章:未完成 游戏场景中灯光照明的构成 现实生活中的光线是有反射、折射、衍射等特性的。对这些基本特性的模拟一直以来都是计算机图形图像学的重要研究方向。 在CG中,默认的照明方式都是不考虑这些光线特性的,因此出来的效果与现实生活区别很大。最早期的时候,人们利用各种方式来模拟真实光照的效果,比如手动在贴图上画上柔和阴影,或者用一盏微弱的面积光源去照明物体的暗部以模拟漫反射现象等等。 然后出现了所谓的高级渲染器,用计算机的计算来代替我们的手工劳动来进行这个“模拟”的工作。在漫长的发展过程中,出现过很多很多计算方案,总体上分为这样几类: 直接模拟光线从被光源发出到最终被物体完全吸收的正向过程,也就是常说的GI(Global Illumination); 不直接模拟光线,而是反向搜集物体表面特定点的受光照强度来模拟现实照明效果,也就是常说的FG(Final

Gathering); 完全不考虑光线的行为,单纯基于“物体上与其他物体越接近的区域,受到反射光线的照明越弱”这一现象来模拟模拟现实照明(的一部分)效果,也就是常说的AO(Ambient Occlusion); 将场景光照结果完全烘焙到模型贴图上,从而完完全全的假冒现实光照效果,也就是我们所说的Lightmap。 不论是GI还是FG,计算量都是非常大的,一帧图片需要几十分钟甚至几十小时来渲染,所以很难被应用在游戏设计领域。 因此在游戏设计领域,光照贴图技术依然是目前的主流方式。 由于光照贴图需要事先烘焙(baking)出来,且仅支持静态物体(Static Object),而我们的游戏场景中几乎不可能全都是静态物体,所以通常游戏场景中的灯光照明是多种照明方式的混合作用。 对于静态物体来说,大多使用光照贴图来模拟间接光的照明效果,然后加上直接光源的动态照明效果; 对于运动物体来说,则仅用直接光源的动态照明效果,或者使用光照探针来模拟间接光的照明效果。

Unity3d游戏场景优化

Unity3d游戏场景优化 涉及到Lod技术 (Levels of Detail,多细节层次),选择剔除(Culling),光照贴图(Lightmap) (一) 光照贴图 动态实时灯光相比静态灯光,非常耗费资源。所以除了能动的角色和物体静态的 地形和建筑,通通使用Lightmap。 强大的Unity内置了一个强大的光照图烘焙工具Beast,这个东东是Autodesk公司的产品(可怕的垄断,感觉和3d沾边的软件丫都要插一手)。 据说用来制作过杀戮地带和镜之边缘。

镜之边缘建筑场景漂亮干净的光影,Lightmap的效果。 在Unity中制作Lightmap很方便,调节几个参数后直接烘焙即可。支持GI, Skylight, 效果一流!!!当然你需要一台好点的机器,不然漫长的烘焙过程你就有的等了。 内置的光照图烘焙工具Beast P场景准备和光照图烘焙点选Window --> Lightmapping 打开光照图烘焙面板: 1.确认所有将要被用来烘焙光照贴图的网格体 UVs正确无误. 最简单的办法是在mesh import settings中选择 Generate Lightmap UVs选项(由Beast自动分uv) 2.在Object面板中将所有网格体或地形标注为 static –这将告诉 Unity, 这些物体将不会被移动 和改变并且可以被赋予光照贴图。 3.为了控制光照贴图的精度, 进入Bake 面板并调整Resolution 的值. (为了更好的了解你的

lightmap texels使用情况, 在Scene 视窗中找到Lightmap Display 小窗口并且选择Show Resolution). 1. 点击 Bake 按钮。 2. Unity Editor's 会出现一个进度条,位置处于右下角. 3. 当烘焙结束, Lightmap Editor窗口会显示已经烘焙好的光照图. Scene 和 game 视图会同时自动更新–现在你的场景已经有了光照图的效果! Unity Lightmap的设置还有更详细和更高端的内容,请参考自带的文档!

Unity烘焙材质到单一贴图的脚本

Unity烘焙材质到单一贴图的脚本 这个脚本由 CocoaChina 版主“四角钱” 分享,可以将复杂的材质(比如有法线贴图的材质)进行"烘焙",转变为单一的贴图。可用来将Unity 的游戏移植到移动平台时候使用。请将脚本放 Editor 文件夹里,使用时选择一个 Material 材质,然后在菜单种"Custom/Bake Material"打开并调整照明和其他参数,点击Bake按钮就会生成一个单一的贴图。 class BakeMaterialSettings { private static var kEditorPrefsName = "BakeMaterialSettings"; static var kBakingLayerShouldBeUnusedInScene = 30; static var kStandardTexNames = new Array ("_MainTex", "_BumpMap", "_Detail", "_ParallaxMap", "_Parallax"); var bakeAlpha = false; var bakeMainTexAsWhite = false; var minTextureResolution = 8; var maxTextureResolution = 2048; var emptyScene = false; var useCustomLights = false;

var ambient = Color.black; static var kLights = 3; var enableLight = new boolean[kLights]; var colorLight = new Color[kLights]; var dirLight = new Vector2[kLights]; function BakeMaterialSettings () { Load (); } function Load () { bakeAlpha = EditorPrefs.GetBool(kEditorPrefsName + ".bakeAlpha"); bakeMainTexAsWhite = EditorPrefs.GetBool(kEditorPrefsName + ".bakeMainTexAsWhite"); minTextureResolution = EditorPrefs.GetInt(kEditorPrefsName + ".minTextureResolution", 8); maxTextureResolution = EditorPrefs.GetInt(kEditorPrefsName + ".maxTextureResolution", 2048);

Unity LightMapping参数

一.简易烘焙教程: 1.准备需要烘培的光照贴图的场景,在物体面板中将所有要烘培光照贴图的物体设置为LightingStatic 2.从菜单中Window – Lightmapping打开Lightmapping窗口。在Bake面板下调整相关参数,(第一次默认参数即可)

3.点击BakeScene(烘培) 4.等待右下角进度条完成即可 二.Lightmapping窗口参数: 1.Object网格渲染器和地形: 物体的烘培设置:灯光、网格渲染和地形- 取决于当前的选择。 ·Static 静态 可渲染网格和地形必须标记为静态才能被烘培。 ·Scale In Lightmap 光照图比率 (只作用于可渲染网格)特别大的数值将分配给可渲染网格更大的分辨率。最终分辨率比例(光照图缩放)*(物体世界坐标空间所占面积)*全局分辨率烘培设置)如果设置为0物体将不被烘培。(但是它依旧对其他的物体有影响) ·Atlas 图集 图集信息-如果Lock Atlas(锁定图集)选项没有开启那么这些参数将自动更新。如果Lock Atlas(锁定图集)选项开启,这些参数将不会自动编辑。但是你可以手动设置他们。·Lightmap Index 光照图索引 光照贴图序列中的索引。 ·Tiling 平铺 (只作用于可渲染网格)物体光照贴图UVs平铺。 ·Offset 偏移 (只作用于可渲染网格)物体UVs的偏移。 Lights 灯光: ·Lightmapping 光照贴图 光照图模式:仅实时模式,自动模式和仅烘培模式。查看下面Dual Lightmaps的描述。·Color 颜色 灯光颜色。一些属性只作用于实时光照。 ·Intensity 光强度 灯光照明强度。一些属性只作用于实时光照。 ·Bounce Intensity 反弹强度 特定光源间接光照强度的倍增值。 ·Baked Shadows 烘焙阴影 控制当前灯光是否产生阴影。(当选择自动选项时同时影响实施阴影的产生)

Unity3D光照贴图的Lightmapping技术教程

学IT技能上我学院网https://www.wendangku.net/doc/435077467.html, Unity3D光照贴图的Lightmapping技术教程今天我们来讲解Unity3d中光照贴图Lightmapping技术,Lightmapping光照贴图技术是一种增强静态场景光照效果的技术,其优点是可以通过较少的性能消耗使静态场景看上去更加真实,丰富,更加具有立体感;缺点是不能用来实时地处理动态光照。当游戏场景包含了大量的多边形时,实时光源和阴影对游戏的性能的影响会很大。 这时使用Lightmapping技术,将光线效果预渲染成贴图使用到多边形上模拟光影效果。 烘焙参数 Object选项卡 “All”组中的参数 Lightmap Static:选中则表示该物体将参与烘焙。 Scale In Lightmap:分辨率缩放,可以使不同的物体具有不同的光照精度。这样可以根据实际场景,令远景中的物体采用较低的分辨率,节省光照贴图的存储空间。而较近的物体采用较高的分辨率,使贴图更加逼真。

学IT技能上我学院网https://www.wendangku.net/doc/435077467.html, Lightmap Index:渲染时所使用的光照贴图索引。值为0,表示渲染时使用烘焙出来的第一张光照图;值为255,表示渲染时不使用光照图。 Tiling X/Y和Offset X/Y共同决定了一个游戏对象的光照信息在整张光照图中的位置,区域。 “Lights”中的参数 Lightmapping:有3种类型可选 1)RelatimeOnly:光源不参与烘焙,只作用于实时光照。 2)Auto:表示光源在不同的情况下作不同的响应。在烘焙时,该光源会作用于所有参与烘焙的物体;在实际游戏运行中,该光源会作为实时光源作用于那些动态的或者没有参与过烘焙的物体,而不作用于烘焙过的静态物体。在使用Dual Lightmaps的情况下,对于小于阴影距离(shadow Distance,Unity中用于实时生成阴影的范围,范围之外将不进行实时生成阴影)的物体,该光源将作为实时光源作用于这些物体,不管是静态还是动态。 3)表示光源只在烘焙时使用,其他时间将不作用于任何物体。

Unity3D技术之Graphics Features线性照明(仅限专业版)浅析

线性照明(仅限专业版)概述线性照明指在所有输入呈线性的情况下照亮场景的过程。通常,存在将伽玛预先应用到其中的纹理,这表示,纹理在材质中进行采样时,呈非线性。如果这些纹理用于标准照明方程式,将导致方程式结果不正确,因为预计所有输入在使用前都呈线性。 线性照明指确保着色器的输入和输出都使用正确的色彩空间的过程,它可提高照明的准确性。 现有(伽玛)管道在现有渲染管道中,所有颜色和纹理都在伽玛空间中采样,也就是说,在着色器使用图像或颜色之前,伽玛校正不会从其中移除。由于这一原因,着色器中的输入位于伽玛空间,但在照明方程式使用这些输入时,均视其位于线性空间中,最终未将伽玛校正应用到最终像素。大部分时候,上述现象看似合理,因为两种错误从某种程度相互抵消。但这是不正确的。 线性照明管道如果启用线性照明,则会提供着色器工程的输入,其中的伽玛校正已移除。如果您位于线性空间中,则会以隐性方式将此转换应用到颜色。使用硬件sRGB 读取进行纹理采样,依次向伽玛空间和图形硬件的样本上提供源纹理,然后自动转换结果。然后向着色器提供这些输入,照明会照常运行。然后,程序会将所得的值写入到帧缓冲区。此值将进行伽玛校正并写入到帧缓冲区,或留在线性空间中以备将来进行伽玛校正;这取决于当前的渲染配置。 线性照明与伽玛照明之间的区别使用线性照明时,照明方程式的输入值不同于伽玛空间中的值。这表示,光线到达表面时形成的感应曲线不同于现有Unity 渲染管道形成的感应曲线。 灯光衰减远距离和普通基于照明的衰减有两种变化方式。首先,在线性模式中渲染时,执行的额外伽玛校正将扩大灯光半径。其次,这也将导致照明边缘更加锐化。这可更准确地模仿表面的照明亮度衰减。 线性亮度感应使用伽玛空间照明时,向着色器提供的颜色和纹理含有其中应用的伽玛校正。将其用于着色器时,高亮度的颜色实际上比线性照明的亮度更大。这表示,随着光线亮度增加,表面会以非线性方式变亮。这将导致许多位置的光线过亮,还会使得模型和场景呈褪色状。使用线性照明时,随着照明亮度的增加,但表面的感应仍呈线性。这可令表面的着色更具真实感,并极大地美化表面的色感应效果。

详解Unity 5中的全局光照

详解Unity 5中的全局光照 Unity5在图形仿真和光照特效方面做了重大改变。自从3.0版本开始,Unity的光照效果一直局限于烘焙好的光照贴图。但后续的时间里,我们在全局光照领域有了很大的提升与改进,现在,是时候将其中部分美好的特性从Unity的沙盒中开放出来了。其中之一的新图形特性就是基于新的和极大改善的光照流程基础上的全局实时光照。这也是本文的重点。 什么是全局光照?GI算法是基于光传输的物理特性的一种模拟。他是一种模拟光在3D场景中各表面之间的传输的有效方式,他会极大的改善你游戏的仿真度。不仅如此,他还可以传达一种意境,如果巧妙的使用,可以有效得改善你的游戏体验。GI算法不仅考虑光源的直射光,而且还考虑场景中其他材质表面的反射光。传统上,在游戏中,由于实时性的约束,间接光照的模拟因性能消耗过大而被弃置一旁。这些都是源于下面这个浅显的方程: 这个很简单。从某一观察点看到的光是从场景中物体表面点入射的光(Le)与从观察点上方的半球入射的光的叠加。Li描

述的是从半球上某一角度w’入射的光。反射项p描述的是光线如何反射到观察点,这项的取值依赖于入射角w’和观察者的角度w。细心的读者可能已经发现L(x,w)在方程的两边,而且有一个还在在积分式中。如果不是这种情形,我们也许已经计算出全局光照的结果。由于物理规律是不太可能去修改的,研究协会提出了一套解决方案。其中最流行(最古老的)的是光线跟踪算法。这个算法从根本上改善了GI 算法,在算法最困难的部分使用了一些比较耗时的技巧。光线跟踪在电影或者电视的CGI上使用了很多。尽管该领域涌现了大量的研究成果,但是一张图像的渲染还是要花费数秒的时间(哪怕使用非常先进的GPU)。光线跟踪通常使用的是屏幕空间,所以,一张图像每一帧都需要重新渲染。这意味着,他完全支持完全动态的场景:灯光、材料、几何形状自由变换的动画。这也是一个缺点,因为每当摄像机移动的时候,一张新的图片需要被渲染,而这张新图像的收敛融合需要花费数秒钟的时间。这也导致他无法适用于游戏场景。一张没有完全收敛融合的图像会有很多噪点,而且他是时间不相干的,所以,图像在完全收敛融合之前会有严重的闪烁。可以使用滤波来降低这种影响,但是不能彻底消除。下面是一些在不同收敛融合程度的图像。

unity3d贴图说明

Unity3D美术方面贴图 我们都知道,一个三维场景的画面的好坏,百分之四十取决于模型,百分之六十取决于贴图,可见贴图在画面中所占的重要性。在这里我将列举一些贴图,并且初步阐述其概念,理解原理的基础上制作贴图,也就顺手多了。 我在这里主要列举几种UNITY3D中常用的贴图,与大家分享,希望对大家有帮助。 01 首先不得不说的是漫反射贴图: 漫反射贴图diffuse map

漫反射贴图在游戏中表现出物体表面的反射和表面颜色。换句话说,它可以表现出物体被光照射到而显出的颜色和强度。我们通过颜色和明暗来绘制一幅漫反射贴图,在这张贴图中,墙的砖缝中因为吸收了比较多的光线,所以比较暗,而墙砖的表面因为反射比较强,所以吸收的光线比较少。上面的这张图可以看出砖块本身是灰色的,而砖块之间的裂缝几乎是黑色的。 刨去那些杂糅的东西,我们只谈明显的,漫反射贴图表现了什么?列举一下,物体的固有色以及纹理,贴图上的光影。前面的固有色和纹理我们很容易理解,至于后面的光影,我们再绘制漫反射贴图的时候需要区别对待,比如我们做一堵墙,每一块砖都是用模型做出来的,那么我们就没有必要绘制砖缝,因为这个可以通过打灯光来实现。可是我们如果用模型只做了一面墙,上面的砖块是用贴图来实现,那么就得绘制出砖缝了。从美术的角度,砖缝出了事一条单独的材质带外,还有就是砖缝也是承接投影的,所以在漫反射图上,绘制出投影也是很有必要的,如下图: 没有什么物体能够反射出跟照到它身上相同强度的光。因此,让你的漫反射贴图暗一些是一个不错的想法。通常,光滑的面只有很少的光会散射,所以你的漫反射贴图可以亮一些。 漫反射贴图应用到材质中去是直接通过DiffuseMap的。再命名规范上它通常是再文件的末尾加上“_d”来标记它是漫反射贴图。

UnityGI渲染

GI是什么? GI =直接光照+间接光照+环境光+反射光. 直接光照先不用说了, 间接光照是光线在物体上反射所带来的光照. 核心参数: 每个光源上的Bounce Intensity. 环境光可以直接理解为你天空盒的颜色, 蓝天白云, 那么环境光就是蓝色白色. 核心参数: Lighting视图中的Ambient Intensity. 反射光可以理解为镜面反射一样的存在, 核心参数: Lighting视图中的Reflection Intensity 请各位逐一尝试这四个参数并且尝试能将场景调成纯黑然后再调回来, 就能理解其中的概念了. GI分为两种, 一种是Precomputed Reatime GI, 这种GI需要预先计算, 计算场景中所有的Static物体的信息, 并且允许在运行时任意修改光源的Bounce Intensity或者移动光源的位置. 所有的变化都是实时的. 第二种是Baked GI, 这种GI不会预先计算但会进行预先烘焙, 无法像Precomputed Realtime GI那样在运行时更改光源. GI的重点在于Bounce , 可以将Static物体上的光反弹到其他Static物体上, 无法将非Static物体上的光反弹到Static物体上. 也无法将Static物体上的光反弹到非Static物体上, 但是Unity5引入了新的概念, 那就是Realtime的LightProbe, Unity4中的LightProbe只能静态烘焙, 而Unity5的LightProbe会实时捕捉包括Precomputed

Realtime GI的Bounce光在内的任何光线信息并且将其赋予非Static物体上. 要想完全理解GI, 首先要好好说一下Lighting面板. 先说重点的Scene页面.

Unity3D研究院之Unity5.x运行时动态更新烘培贴图(八十七) 雨松MOMO程序研究院

Unity3D研究院之Unity5.x运行时动态更新烘培贴图(八十 七)雨松MOMO程序研究院 前段时间我研究过这个问题,但是没有解决只好作罢。今天刚好有人又问我这个问题,我得空查了一下还是找到了解决办法。另外也感谢问我的人,解答问题的同时也是我学习的过程。 运行时更新烘培贴图分两种情况 1、场景的物件没有发生变化(也就是说没有运行时加载在场景上的Prefab)此时可以直接更换烘培贴图。1234567891011121314151617181920212223242526 using UnityEngine;using System.Collections;public class NewBehaviourScript : MonoBehaviour { //烘培烘培贴图1 public Texture2D greenLightMap; //烘培贴图2 public Texture2D redLightMap; void OnGUI() { if(GUILayout.Button("green")) { LightmapData data = new LightmapData(); data.lightmapFar = greenLightMap; LightmapSettings.lightmaps = new LightmapData[1]{data}; } if(GUILayout.Button("red")) { LightmapData data = new LightmapData(); data.lightmapFar = redLightMap; LightmapSettings.lightmaps = new

Unity中的Enlighten与混合光照

Unity中的Enlighten与混合光照 前言 在Unity的5.6版本之前的5.x中,主要使用了Geomerics公司的Enlighten【1】来提供实时全局照明以及烘焙全局照明,在5.6之后Unity引入了新的LightmapperProgressive来提供烘焙全局照明并且提供了更多的混合光照模式,但是Enlighten仍然是Unity中全局照明的主要提供者。 所以,本文就来聊聊Unity5.6以及Unity2017中和Enlighten、混合光照相关的话题吧。直接光和间接光 大家都知道在Unity中,我们可以在场景中布置方向光、点光、聚光等类型的光源。但如果只有这些光,则场景内只会受到直接光的影响,而所谓的直接光简单理解就是从光源发出的直接影响物体的光。如果只考虑直接光的影响,则会缺乏很多光影细节,导致视觉效果很平。而间接光则描述了光子在物体表面之间的反弹,能够用来增加细节以及真实感。 例如上图中,位于天花板灯直射光线之外的区域缺乏光照效果。表现为四壁上没有明暗细节,相反此时直接光范围之外都是均匀的黑色,而整个空间同样也显得十分平。 而增加了间接光之后进行渲染,可以看到光被物体表面反弹,彩色光从一个表面转移到另一个表面。表现为红色墙壁和绿色墙壁(在右侧和红墙相对,没在画面内)的颜色反映到了场景中的其他表面上,四壁也不再是均匀的黑色,而有了层次感。 全局照明和渲染方程 正如前文所说,在Unity中使用直接光是无法模拟光子在物体表面反弹的效果的,因此Unity使用了Enlighten所提供的全局照明(Global illuminaTIon)来提供间接光效果。所谓的全局照明(缩写为GI)是3D计算机图形中使用的一组算法的通用名称,旨在为3D场景添加更逼真的照明。这样的算法不仅考虑直接来自光源的光(直接光),而且还考虑随

unity烘焙光照贴图

光影烘焙,英文叫Lightmapping 或 light baking。Unity自带了Lightmapping的功能(是Illuminate Labs出的名为Beast的产品)。 本系列教程分为4讲: 第一讲光影烘焙 第二讲 AreaLight 第三讲 Light Probes 第四讲脚本控制 其中第三第四讲讲解的是动态物体与烘焙后场景的融合。 光影烘焙 打开方式Window –Lightmapping 有几点需要注意: 1.所要烘焙物体的mesh 必须要有合适的lightmapping uv。如果不确定的话,就在导入模型设置中勾选 Generate Lightmap UVs 2.任何Mesh Renderer, Skinned Mesh Renderer 或者 Terrain都要标注为static(lightmap static) 界面一:Object 点击Bake Scene即开始烘焙 界面2:Bake 烘焙参数的设置

(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。Quality: High low 2个选项。决定采集射线的数量,对比界限,以及反锯齿等设置。 Bounces: Global Illumination模拟中 light bounces的数量。0表示只有直接光照会被计算,如果要加入柔软的,真实的间接光照的话,则至少填1。 Sky Light Color: 模拟从天空从所有方向射来的光照。对室外场景很重要。 (注意:RenderSettings里的Ambient Light也参与烘焙,并且会覆盖Sky Light。所以使用Sky Light的话,则需要关闭Ambient Light,把Ambient调成(0,0,0,0)即可) Sky Light Intensity:Sky Light的强度。0表示关闭Sky Light. Bounce Boost:加强Bounced light也就是间接光照的效果. Bounce Intensity:间接光照的效果强度。 Final Gather Rays:从所有收集的点发射的射线的数量,最高则效果最好。默认为1000 Contrast Threshold: 越高表示光照越平滑同时细节越低 Interpolation:颜色计算方式。0表示线性插值,1表示基于梯度的高级插值。有时1会产生人工光照的失真效果。 Interpolation Points:越多表示光照越平滑同时细节越低。 Ambient Occlusion:环境闭塞(全局闭塞)在烘焙中的量,和光照无关,仅仅基于距离的效果 Lock Atlas:锁上了,贴图就不会变化,没什么用。 Resolution: 通常来说 Resolution设置平均每单位面积对应lightmap的多少色素。该值越高代表单位面积的色素越多即越精细。反之越低越粗糙。默认值为50。如果一个10x10的 plane,resolution是50的话,在lightmap里该plane就占用500x500像素尺寸。 当然也可以单调该数值。选中物体后,在lightmapping界面中会有Scale in lightmap的数值,表示的是该物体的烘焙信息在lightmap占的大小,1表示正常尺寸。0表示该物体没有lightmap效果,但会影响其他物体的lightmap运算。2表示正常尺寸的两倍大小。Padding:在lightmap里,不同物体的烘焙图的间距,单位为图素(texel)

手把手教你如何美化你的Unity3D贴图

手把手教你如何美化你的Unity3D贴图good 我们都知道,一个三维场景的画面的好坏,百分之四十取决于模型,百分之六十取决于贴图,可见贴图在画面中所占的重要性。在这里我将列举一些贴图,并且初步阐述其概念,理解原理的基础上制作贴图,也就顺手多了。 我在这里主要列举几种UNITY3D中常用的贴图,与大家分享,希望对大家有帮助。 01 首先不得不说的是漫反射贴图: 漫反射贴图diffuse map

漫反射贴图在游戏中表现出物体表面的反射和表面颜色。换句话说,它可以表现出物体被光照射到而显出的颜色和强度。我们通过颜色和明暗来绘制一幅漫反射贴图,在这张贴图中,墙的砖缝中因为吸收了比较多的光线,所以比较暗,而墙砖的表面因为反射比较强,所以吸收的光线比较少。上面的这张图可以看出砖块本身是灰色的,而砖块之间的裂缝几乎是黑色的。 刨去那些杂糅的东西,我们只谈明显的,漫反射贴图表现了什么?列举一下,物体的固有色以及纹理,贴图上的光影。前面的固有色和纹理我们很容易理解,至于后面的光影,我们再绘制漫反射贴图的时候需要区别对待,比如我们做一堵墙,每一块砖都是用模型做出来的,那么我们就没有必要绘制砖缝,因为这个可以通过打灯光来实现。可是我们如果用模型只做了一面墙,上面的砖块是用贴图来实现,那么就得绘制出砖缝了。从美术的角度,砖缝出了事一条单独的材质带外,还有就是砖缝也是承接投影的,所以在漫反射图上,绘制出投影也是很有必要的,如下图: 没有什么物体能够反射出跟照到它身上相同强度的光。因此,让你的漫反射贴图暗一些是一个不错的想法。通常,光滑的面只有很少的光会散射,所以你的漫反射贴图可以亮一些。 漫反射贴图应用到材质中去是直接通过DiffuseMap的。再命名规范上它通常是再文件的末尾加上“_d”来标记它是漫反射贴图。

Unity3D美术制作规范及导出流程

1、部分模型坐标及缩放请按照制作规范完成,不然需要在Unity里面操作的时候,通过程序找不到。 2、场景中模型存在漏面

4、模型导入时未成组,查找不方便

如下即可,但不要出现中文。 以上,希望尽快改进。 2017-02-22

附件一: Unity3d美术制作规范及导出流程 目录 序言 (6) 第一章模型制作规范 (6) 1、单位比例 (6) 2、建模规范 (7) 2.1多余面数 (7) 2.2避免闪面 (7) 2.3复制模型 (7) 2.4 Poly建模 (7) 2.5模型塌陷 (7) 2.6命名规范 (8) 2.7树木模型 (8) 2.8模型级别 (8) 2.8.1 角色质心点 (8) 2.8.2主角面数 (8) 2.8.3小怪面数 (9) 2.8.4 武器面数 (9) 2.8.5 场景面数 (9) 2.9 镜像物体 (9) 2.10缩放物体 (9) 第二章材质贴图规范 (9) 1、材质和贴图类型 (9) 2、贴图通道及贴图类型 (10) 3、贴图的文件格式和尺寸 (10) 4、贴图和材质应用规则 (10) 第三章模型导出 (10)

序言 本文提到的所有数字模型制作,全部是用3D MAX建立模型,即使是不同的建模软件,对模型的要求基本是相同的。当一个手游模型制作完成时,它所包含的基本内容包括场景尺寸、单位,模型归类塌陷、命名、节点编辑,纹理、坐标、纹理尺寸、纹理格式、材质球等必须是符合制作规范的。一个归类清晰、面数节省、制作规范的模型文件对于程序控制管理是十分必要的。 第一章模型制作规范 1、单位比例 在没有特殊要求的情况下,单位为米(Meters),如图所示。

Unity3D游戏开发之光照贴图快速入门详

Unity 拥有完整的集成光照烘培贴图工具,即 Illuminate Labs 的 Beast。这意味着Beast 可根据场景在 Unity 中的设置并考虑到网格、材质、纹理和灯光,烘培场景中的光照贴图。也意味着光照贴图是渲染引擎中不可缺少的一部分。创建光照贴图后无需进行任何操作,就会被对象自动应用。 准备场景并烘培光照贴图 从菜单中选择窗口 (Window) –光照贴图 (Lightmapping),打开光照贴图(Lightmapping) 窗口: 1, 确保想要进行光照映射的任何网格都有适当的 UV 供进行光照映射。最简单的方法是从网格导入设置 (mesh import settings) 中选择生成光照贴图 UV (Generate Lightmap UVs) 选项。 2 ,在对象 (Object) 窗格中将任何网格渲染器 (Mesh Renderer)、蒙皮网格渲染器(Skinned Mesh Renderer) 或地形 (Terrain) 标记为静态 (static) –告诉 Unity 这些对象不会移动或更改,可进行光照贴图。

3, 要控制光照贴图的分辨率,请转到烘培 (Bake) 窗格并调整分辨率 (Resolution) 值。(如要更好地了解如何安排光照贴图的纹元,请查看场景视图 (Scene View) 中的光照贴图显示 (Lightmap Display)小窗口,并选择显示分辨率 (Show Resolution))。

4,点击烘培 (Bake) 按钮 5, Unity 编辑器 (Editor) 的状态栏上出现一个进度条(右下角)。 6, 烘培完成时可在光照贴图编辑器 (Lightmap Editor) 窗口底部看到所有已烘培的光照贴图。场景和游戏视图将更新,场景已完成光照映射!文章出处【狗刨学习网】 调整烘培设置

从maya灯光贴图lightmap到unity

lightmap灯光贴图,让场景更加真实。 我们有两个uv设置 ? An Ambient Occlusion pass.环境Occlusion灯光 ? A Ray Trace pass. 光线追踪灯光 好,开始。 在Unity中开始一个新的项目,a new Project。 包含标准包,Standard Assets Package; 同时,导入我们的资源包,LightMappingTutorial.unitypackage,我们在文件里提供了,unity里的资源可以以包的概念导入导出。 在文件包里打开TutorialStart场景;

现在的画面是没有等过效果的,视觉真实性不是很好,下面我们用lightmap来把场景调的更真实些。 整个场景是包含了三个面物体(meshes): “HouseMesh”, “TreeTrunks”, 和 “TreeBranches”. 房子,树干,树叶。 房子在maya中我们就用到一个材质球。 在maya里打开场景House.mb,如下图:

选择房子物体,打开材质编辑器,Window/UV Texture Editor...

下面我们使用Ambient Occlusion模拟全局灯光效果,准备生成第一个Lightmap。 ?需要生成一个新的材质,打开Hypershade Window (Window/Rendering Editors/Hypershade...) ?生成一个新的Surface Shader (Create/Materials/Surface Shader) ?生成一个Mental Ray环境材质纹理:Mental Ray Ambient Occlusion Texture (Create/mental ray Textures/Mib_amb_occlusion).

3D模型构建及烘焙标准

3D模型构建、优化方案及烘焙标准 1.建模 目的:美化现实,超越现实,而非简简单单的还原现实 1)模型命名以首字母大写驼峰命名法命名,要做到见名知义,以实验工具/实验设备名+ 部件名+部件结构名进行命名, 2)材质能复用的一定要复用,不允许有相同的材质出现在同一个场景中; 3)在Unity3D中相距位置很近,没有相对运动,的模型要合并在一起; 4)在单独盘下,按照部门统一工作目录安排进行工作; 5)场景单位一般可设置为厘米,超大场景可合理的设置为米或者千米,微小的场景可设置 为毫米 6)根据项目需要合理设置模型面数、定点数,看不见的面要删掉,两个面之间距离不要过 近(比如室内往外场景汇中两面的距离0.1CM算是比较小的了,这样容易在相机可视范围内产生不断交叠的面,也就是闪面) 7)可在maya或者3dmax中进行烘焙,建议使用Vary渲染器进行烘焙。也可在Unity3d 中完成烘焙(如果能够提供烘焙效果较好的贴图更好,也就免去了下面所有操作),一般情况下只有烘焙后的模型才能打包发给Unity3D编码人员; 8)模型建模方式要标准,非必要情况下不要通过简单的基本体叠加来构建复杂模型,这不 利于模型结构拓展,UV展开和动作制作; 9)并根据项目需要决定是否进行展UV,根据自己对软件熟悉程度决定使用UVLayout、 3DCoat、Unfold3D等(建议使用Unfold3D)。 10)一般情况下至少要输出三张贴图:颜色贴图,法线贴图和高光贴图。这三张贴图的制作 根据自己所使用软件自行开发(建议使用3DCoat进行上述三张图的制作); 11)建模人员要在部门使用的Unity3D同一版本中对模型进行添加材质、美化等工作,最后 导出为资源包,发给程序开发人员; 12)导出为FBX文件,导出面板中按下图进行设置,特别注意的是为了确保材质和贴图被集 成在导出的FBX文件中,一定要记得勾选“嵌入媒体”选项。 13)每天下班前对所做工作进行保存、备份(使用FTP远程备份到指定机器的指定目录下)

相关文档
相关文档 最新文档