Unity光照系统全解析:从烘焙到实时的性能与画质平衡 1. 项目概述为什么Unity光照是游戏真实感的灵魂如果你在Unity里做过项目尤其是尝试过构建一个看起来不那么“游戏感”的场景你大概率会和我一样在某个深夜对着屏幕里那个怎么看怎么别扭的模型陷入沉思。问题出在哪模型精度不低贴图也是4K的但就是感觉“假”。十有八九问题就出在光照上。光照系统这个在游戏开发中看似基础实则深不见底的模块恰恰是区分“玩具Demo”与“沉浸式体验”的关键分水岭。它不仅仅是让物体变亮更是塑造空间、定义材质、烘托情绪、甚至引导玩家视线的核心工具。现代游戏追求的真实感渲染早已超越了简单的明暗计算。它关乎光线如何在复杂场景中弹射、衰减、融合关乎阴影的软硬虚实更关乎如何用有限的计算资源模拟出无限接近物理世界的光影交互。Unity作为当今最主流的游戏引擎之一其光照系统经历了从内置渲染管线到可编程渲染管线SRP的深刻变革功能日益强大但随之而来的概念和选项也愈发复杂。从传统的实时光照与烘焙光照到全局光照GI技术再到URP/HDRP管线下的全新工作流每一步选择都直接影响最终效果与运行时性能。这篇文章我将从一个一线开发者的视角彻底拆解Unity的光照系统。我不会只停留在界面按钮的介绍上而是会深入探讨不同光照技术背后的原理、适用场景以及在实际项目中如何根据目标平台是PC、主机还是移动端和艺术风格是写实还是卡通做出权衡与决策。我们会从最基础的光源类型讲起一步步深入到光照贴图、光照探针、反射探针这些核心组件最后探讨在URP/HDRP新时代下如何构建高效且高质量的光照方案。无论你是刚接触Unity渲染的新手还是希望优化现有项目光照的老手相信这些从实战中踩坑总结出的经验都能给你带来直接的帮助。2. 核心概念拆解从物理基础到Unity实现在动手摆弄Unity里的灯光之前我们必须先建立正确的认知框架。理解这些核心概念能让你在后续面对无数参数时不再感到迷茫而是清楚地知道每一个调整会影响结果的哪个方面。2.1 直接光照与间接光照光影的两次传递这是所有真实感光照的基石。你可以把它想象成在一个房间里打开一盏灯。直接光照就是灯光直接照到物体表面的那部分光线。比如台灯照亮了书桌。在Unity中当一个Directional Light平行光模拟太阳或Point Light点光源模拟灯泡直接照射到物体上时引擎会实时计算这次照射产生的亮度、颜色以及硬阴影如果开启了阴影。这部分计算相对直接性能消耗主要取决于光源数量、阴影质量和场景复杂度。间接光照则是光线在直接照射到表面比如墙壁、地板后反弹到其他表面的光线。台灯照亮了白色的墙壁墙壁又将一部分光线柔和地反射到书桌的背面和天花板上这就是间接光照。它带来了场景中微妙的明暗过渡和色彩渗透例如红地毯会让附近的白色墙脚染上淡淡的红色是营造真实空间感和氛围感的关键。然而间接光照的计算极其复杂因为光线会经过无数次反弹。Unity处理间接光照主要有两种方式实时全局光照Real-time GI和烘焙全局光照Baked GI。前者如已弃用的Enlighten实时GI试图在运行时模拟光线反弹代价高昂后者则是将复杂的间接光照计算结果“烘焙”成一张静态的纹理光照贴图或一组数据光照探针运行时直接读取性能极佳但无法动态变化。目前对于移动端和绝大多数需要高性能的项目烘焙光照贴图光照探针是处理间接光照的主流且推荐的方案。2.2 实时光照与烘焙光照动态与静态的博弈这是项目初期就必须做出的战略性选择决定了整个场景光照的构建方式。实时光照所有光照计算都在游戏运行时每帧进行。光源可以移动、旋转、改变颜色和强度物体也可以移动并接受动态的光影变化。优点是灵活性极高适合动态场景如昼夜循环、可移动的灯光道具。缺点是性能开销大一个动态光源特别是开启了实时阴影的对Draw Call和GPU压力很大。在移动设备上同时使用多个实时光源通常是不可行的。烘焙光照将光照效果尤其是复杂的间接光照和软阴影提前计算好并“烘焙”到场景的静态物体上生成Lightmap光照贴图。运行时静态物体不再进行实时光照计算而是直接采样这张贴图性能消耗几乎为零。缺点是光照效果是静态的光源和静态物体都不能再移动否则会出现光影错位。它非常适合建筑、地形等大型静态环境。混合光照Unity提供的折中方案。你可以将光源设置为Mixed模式。对于场景中的静态物体该光源贡献的光照会被烘焙到光照贴图中对于动态物体如玩家角色该光源仍然作为实时光源起作用并且可以通过光照探针来为动态物体提供烘焙好的间接光照信息。这是平衡效果与性能最常用的手段。注意这里有一个关键点也是新手常踩的坑物体的“Static”标记。只有被标记为Static或在光照窗口的Contribute GI被勾选的物体才会被纳入光照烘焙的计算中并接收烘焙的光照贴图。动态物体永远不会被烘焙。2.3 全局光照技术演进从Enlighten到Progressive GPUUnity的全局光照解决方案经历了变迁。早期内置渲染管线依赖的Enlighten实时GI系统因其预计算和运行时开销都很大且效果控制复杂现已被官方弃用并逐步移除。目前Unity主推的是基于Progressive Lightmapper渐进式光照烘焙器的烘焙方案和新的Progressive GPU加速烘焙。Progressive Lightmapper是现在烘焙光照贴图的核心工具。它采用路径追踪算法可以实时预览烘焙过程看到光照一点点“汇聚”到最终效果非常直观。它支持CPU和GPU两种计算模式GPU模式需要兼容的显卡速度通常快很多。你可以调整采样数、反弹次数等参数在烘焙质量和时间之间取得平衡。对于需要部分动态GI的高端平台如PC、主机Unity推出了GPU Lightmapper和Enlighten的替代方案如与DXR/硬件光追结合的方案但这通常属于HDRP的领域。对于URP和移动端坚持使用高质量的烘焙光照贴图是性价比最高的选择。3. Unity光源类型详解与实战配置Unity提供了几种基础光源类型每种都有其特定的物理模型和用途。理解它们的特性是布置场景光影的第一步。3.1 四种基础光源的特性与适用场景Directional Light平行光特性模拟无限远处的光源如太阳。所有光线都是平行的没有位置概念只有旋转方向。它会照亮场景中的每一个物体。用途作为场景的主光源模拟日光或月光。因为其全局性通常一个场景只用一个。关键参数Intensity强度典型日光值在1.0左右可根据艺术需要调整。Color清晨用暖黄色正午用冷白色黄昏用橙红色。Shadow Type阴影类型Hard Shadows硬阴影性能好但边缘锐利Soft Shadows软阴影更真实但开销稍大。对于平行光软阴影是推荐选择以模拟大气透视造成的阴影边缘模糊。Point Light点光源特性模拟从一个点向所有方向均匀发射的光源如灯泡、蜡烛。有明确的位置和衰减范围。用途室内灯泡、火把、爆炸效果、局部补光。关键参数Range范围光线衰减到零的距离。合理设置范围对性能至关重要不要让光线影响到不必要的远处物体。Intensity根据范围调整。一个范围很小的点光源可以有很高的强度。Shadow点光源的阴影是360度的计算开销较大需要渲染立方体贴图。在移动端应谨慎启用。Spot Light聚光灯特性模拟从一点朝一个圆锥形方向发射的光源如手电筒、舞台射灯、车灯。用途任何需要定向锥形照明的场合。关键参数Range和Intensity同点光源。Spot Angle聚光角圆锥的开口角度。Inner Spot Angle内聚光角用于实现边缘柔和的过渡Penumbra。Area Light面光源特性模拟从一个矩形或圆形平面发出的光。这是最接近真实物理光源的类型比如发光的灯板、窗户透入的天空光。重要面光源仅在烘焙光照Baked或Mixed模式下有效无法作为实时光源。用途提供非常柔和、自然的阴影和光照过渡常用于室内灯光带、灯箱、窗户处的天光入口。关键参数Width和Height定义面的大小大小直接影响阴影的柔和程度——面积越大阴影越软、越模糊。3.2 光源模式Realtime, Baked, Mixed的选择策略在Inspector窗口中每个Light组件都有一个Mode属性这是光源行为的核心开关。Realtime实时光源完全动态。无论静态还是动态物体都受其实时影响。适用于需要移动或变化的光源如玩家手电筒、闪烁的警灯。性能警告一个开启阴影的Realtime点光源/聚光灯可能会增加数个Draw Call和额外的阴影贴图渲染。务必严格控制数量。Baked烘焙光源的效果完全被烘焙到光照贴图中。运行时该光源组件本身不产生任何直接光照计算。适用于所有静态的环境光。这是性能最优的模式。Mixed混合这是最常用也最需要理解的模式。对于静态物体它的直接光和间接光都会被烘焙对于动态物体它仍然作为一个实时光源起作用提供直接光并且动态物体可以通过光照探针获取到由该光源在静态物体上产生的间接光照。典型应用一个静态场景中的主要灯光如天花板上的吊灯可以设为Mixed模式。这样静态的桌椅拥有烘焙好的高质量光影而走动的玩家角色既能被灯光直接照亮又能从墙壁、地板反弹的间接光中获取环境色彩。实操心得在项目初期我会快速搭建白模场景然后将所有主要环境光设为Baked少数需要互动的关键光设为Mixed只有玩家携带的灯等完全动态的光才设为Realtime。然后通过光照烘焙预览快速迭代光影布局而不是一开始就纠结于参数。4. 烘焙光照全流程从参数设置到优化技巧烘焙光照是决定场景最终视觉质量的“重头戏”也是一个需要耐心和技巧的工序。流程不当轻则效果失真重则烘焙时间长达数小时甚至出现漏光、接缝等问题。4.1 光照贴图参数深度解析打开Window Rendering LightingUnity 2022中可能是Window Rendering Lighting Settings我们面对的是核心控制面板。Lightmapper选择Progressive GPU如果硬件支持或Progressive CPU。GPU烘焙速度通常有数量级的提升。Lightmap Resolution光照贴图分辨率单位是texels per unit每单位纹理像素。这是最重要的质量参数之一。10意味着Unity场景中1米×1米的区域将分配10x10个像素来存储光照信息。值越高光照细节越精细阴影边缘越清晰但贴图尺寸会呈平方级增长。建议对于大型地形可以从5-10开始对于室内精细场景可能需要20-40甚至更高。务必在场景中选择一个代表性区域使用Baked Lightmap视图模式检查细节是否足够。Lightmap Padding光照贴图间距同一张光照贴图图集中不同物体UV块之间的间隔。防止纹理采样时发生“渗色”。通常2-4个像素即可设置过大会浪费图集空间。Lightmap Size光照贴图尺寸定义生成的单张光照贴图的最大尺寸如1024,2048,4096。Unity会自动将多个物体的光照信息打包到多张这个尺寸的图集中。尺寸越大能容纳的细节越多但内存占用也越大。移动端建议最大2048PC端可视情况使用4096。Compression压缩启用压缩可以大幅减少光照贴图的内存占用但会引入轻微的视觉瑕疵。对于移动平台通常必须开启。Ambient Occlusion环境光遮蔽在烘焙时生成AO效果让角落、缝隙变暗增强物体的体积感和接触阴影。Max Distance控制AO影响的距离Indirect Contribution控制AO对间接光的影响强度。适度使用能极大提升真实感。4.2 UV展开与光照贴图图集Unity在烘焙前需要为每个静态物体生成第二套UVUV1用于存储光照信息。这套UV必须是“展开的”且不能有重叠。自动生成推荐在模型导入设置中勾选Generate Lightmap UVsUnity会自动处理。对于大多数情况这已经足够好。手动处理对于复杂或重要的模型自动展开可能产生拉伸或低效的图集利用。这时需要在3D建模软件如Maya, Blender中手动展开第二套UV并确保在导入设置中不勾选Generate Lightmap UVs以使用你手动制作的UV。图集优化Unity会将所有静态物体的光照UV“打包”到有限数量的光照贴图图集中。如果物体太多或分辨率太高会导致图集数量激增。优化方法包括降低不重要物体的光照分辨率、合并静态网格体、确保UV展开高效无空白。4.3 渐进式烘焙器的使用技巧与监控开始烘焙后Progressive窗口会显示实时预览。迭代与收敛你会看到画面从噪点逐渐变得清晰平滑。这个过程叫“收敛”。Samples采样数越高噪点越少质量越高但时间越长。你可以随时暂停观察当前质量是否可接受。直接光与间接光预览在预览窗口可以切换查看Direct、Indirect、Ambient Occlusion等单独通道便于调试。局部烘焙如果只修改了场景的一小部分可以选中那些受影响的静态物体在Lighting窗口的Object标签页下勾选Contribute GI旁的Baked然后点击Bake按钮旁的下拉箭头选择Bake Selected只烘焙选中的物体节省大量时间。常见问题与排查漏光Light Leaking光线穿过墙壁照进了不该照到的地方。原因通常是模型本身有微小的缝隙或者碰撞体与渲染网格不匹配。解决检查模型是否“水密”Watertight确保墙壁等遮挡物的网格是连续封闭的。可以适当增加模型的厚度。接缝Seams在相邻的物体或同一物体的不同面之间光照出现不连续的硬边。原因光照贴图UV展开不当或者相邻面的UV被分到了不同的光照贴图图集上。解决确保相邻的面在UV空间中是连续的对于大型物体如地形考虑使用更高的光照贴图分辨率或使用三平面投影等高级技术。烘焙时间过长解决1) 使用Progressive GPU2) 降低Lightmap Resolution3) 减少Bounces反弹次数通常2-3次已足够4) 缩小需要烘焙的区域5) 升级硬件。5. 动态物体的光照方案光照探针与反射探针静态场景烘焙好了但我们的玩家角色、敌人NPC这些动态物体走进去却像一个“黑魂”与精致的环境格格不入。这时就需要光照探针和反射探针来拯救。5.1 光照探针为动态物体注入环境灵魂光照探针Light Probe Group的本质是在场景空间中布置一系列采样点。在烘焙时Unity会计算这些点上的间接光照信息颜色和强度。运行时动态物体其Renderer组件必须勾选Use Light Probes会根据自身包围盒的位置插值获取最近几个探针的光照信息并应用到自身材质上。如何布置在场景中创建Light Probe Group。在光照探针组件的编辑模式下你可以添加、移动、删除探针。核心原则在光照变化剧烈的区域密集布置在光照均匀的区域稀疏布置。例如走廊的转角、门口明暗交界处、灯光下方。避免在空旷无遮挡的地方放置过多无用探针。探针应该包围住动态物体可能活动的所有空间。烘焙布置好后进行正常的光照烘焙。烘焙过程会同时计算光照探针的数据。效果启用后动态物体将能“感知”到来自环境的间接光。走过红色的墙壁旁角色侧面会微微泛红从明亮的室外走进昏暗的室内角色会逐渐变暗。这种色彩融合极大地提升了动态物体与静态环境的融合度。5.2 反射探针捕捉世界的倒影反射探针Reflection Probe的工作原理类似但它捕获的是周围环境的立方体贴图用于模拟物体表面的反射效果。金属、玻璃、水面等光滑材质依赖于此。类型Baked烘焙时捕获环境运行时不变。性能最好用于静态环境。Realtime每帧或按需更新能捕获动态物体性能开销大。Custom可以手动指定一个立方体贴图。布置技巧在需要高质量反射的区域如大厅、有多个镜面材质的房间中心放置。调整Box Size使其刚好包含需要被反射的环境避免包含无关区域以提升贴图利用率。Resolution决定立方体贴图大小越高越清晰内存也越大。室内场景128或256通常足够。对于大型或开放场景可以放置多个Baked反射探针物体会自动使用最近的探针数据实现反射内容随位置变化。实操心得一个常见的优化策略是为整个场景设置一个低分辨率的Baked反射探针作为默认环境反射然后在关键区域如主角经常活动的房间、有特殊镜面艺术效果的部位覆盖放置更高精度的Baked反射探针。动态物体如玩家武器如果需要反射自身可以单独为其附加一个小范围的Realtime反射探针并设置较低的更新频率。6. 阴影技术从基础实现到性能优化阴影是定义物体空间关系和增强画面立体感的最重要视觉线索之一。Unity中的阴影实现有多种方式各有优劣。6.1 实时阴影Shadow Map原理与参数调优Unity的实时光源阴影主要基于阴影贴图技术。原理是从光源视角渲染一张深度图Shadow Map记录从光源到场景中最近物体的距离。然后在摄像机渲染时将像素点转换到光源空间比较其深度值与Shadow Map中存储的深度值如果像素点更深在阴影中则不被照亮。阴影质量关键参数Shadow Resolution阴影分辨率在光源组件的Shadows中设置。分辨率越高阴影边缘越清晰锯齿越少但GPU内存和带宽消耗越大。对于平行光High2048通常是个不错的起点对于点光源/聚光灯可以视其影响范围使用Medium1024或Low512。Shadow Distance阴影距离在Project Settings Quality中设置。摄像机超过此距离的物体将不投射也不接收实时阴影。这是最重要的性能调节参数在开放世界游戏中这个值可能设为100-200在室内小场景设为30-50就足够了。超出这个距离的阴影可以用烘焙阴影或屏幕空间阴影来近似。Cascaded Shadow Maps级联阴影贴图仅平行光为了解决远处阴影因贴图精度不足产生的“闪烁”或“锯齿”CSM将视锥体沿深度方向分成多个“级联”近处使用高分辨率贴图远处使用低分辨率贴图。调整Cascades数量通常2或4和每个级联的Split Distance可以在性能和近处阴影质量间取得平衡。6.2 烘焙阴影与屏幕空间阴影烘焙阴影当光源模式为Baked或Mixed时静态物体投射的阴影会被直接烘焙到光照贴图中。这种阴影质量极高、无限柔和、零运行时开销是静态场景阴影的首选。但它无法与动态物体交互。屏幕空间阴影这是一个后处理效果。它利用屏幕空间的深度和法线信息来增强或模拟阴影。Screen Space Shadows可以用于柔化实时阴影的边缘或者为那些没有投射实时阴影的微小物体如电线、栏杆添加接触阴影。它开销相对较低但依赖于屏幕分辨率且只在摄像机视野内有效。性能优化黄金法则尽可能使用烘焙阴影对于所有静态环境光坚决烘焙。严格控制实时阴影距离如上所述Shadow Distance是王牌参数。减少阴影投射器不是所有物体都需要投射阴影。对于小物件、透明物体、粒子可以在其Mesh Renderer中取消勾选Cast Shadows。慎用点光源/聚光灯的实时阴影它们的开销远大于平行光阴影。如果必须用尽量缩小Range并降低Resolution。利用遮挡剔除合理设置Occlusion Culling让被遮挡的物体不参与渲染自然也就不参与阴影计算。7. URP/HDRP下的光照工作流变革从内置渲染管线转向URP或HDRP不仅仅是换一个模板更意味着光照工作流和思维方式的升级。7.1 URP中的光照简化与性能导向通用渲染管线URP的设计目标是跨平台高性能。其光照系统相比内置管线有显著简化。不再有传统的实时间接光URP移除了旧的Enlighten实时GI系统。这意味着在URP中间接光照几乎完全依赖烘焙光照贴图光照探针。动态物体的间接光信息必须通过光照探针获取。简化但高效的光源URP支持所有基础光源类型但其底层实现更高效。一个重要的特性是每个物体受光数量限制可在URP Asset中配置默认是4个主要方向光最多256个额外逐顶点光源。这强制开发者进行更规范的光源管理。新的后处理与光照特效URP整合了屏幕空间环境光遮蔽SSAO、屏幕空间反射SSR等后处理可以作为烘焙GI的补充以较低开销提升画面细节。Shader Graph与光照交互在URP中编写自定义着色器需要通过Shader Graph或HLSL代码与新的光照模型如PBR Lit交互明确获取主光源、附加光源和全局光照GI数据。URP光照设置核心在URP Asset的Lighting部分你可以设置Environment Lighting环境光通常来自天空盒或颜色以及配置反射探针的混合等。烘焙流程本身与内置管线使用相同的Lighting窗口和Progressive Lightmapper。7.2 HDRP中的光照电影级质量与物理精确高清渲染管线HDRP是为追求极致画质的高端平台设计的。其光照系统极其复杂和强大完全基于物理。物理光源单位HDRP的光源使用真实的物理单位如亮度尼特、色温开尔文。一个Directional Light可以精确模拟太阳的亮度约100000尼特。体积光照与雾效HDRP原生支持高质量的体积光God Rays、体积雾光线能在空气中形成可见的光束。屏幕空间全局光照HDRP提供了强大的Screen Space Global Illumination技术能在屏幕空间实时计算单次反弹的间接光照极大地提升了动态场景的真实感是对烘焙GI的完美补充。光线追踪在支持硬件光追的平台上HDRP可以启用光线追踪阴影、反射、环境光遮蔽乃至全路径追踪实现照片级的真实光影。更复杂的光照配置HDRP有独立的Volume系统来配置场景光照和后处理。你需要创建Visual Environment、HDRI Sky、Fog等Volume覆盖项来构建世界光照。选择建议对于移动端和绝大多数VR/AR项目URP是唯一且正确的选择。对于PC/主机端的3A级项目或建筑可视化、影视内容HDRP能提供无与伦比的画质但需要强大的目标硬件和更陡峭的学习曲线。8. 性能分析与优化实战指南理论再完美跑不起来也是零。光照是性能消耗大户必须有一套系统的分析和优化方法。8.1 使用Frame Debugger与RenderDoc分析Unity自带的Frame Debugger是分析每帧渲染过程的利器。打开它点击一帧你可以清晰地看到场景被分成了多少个Draw Call。每个Draw Call是因为什么被触发的例如新的材质、新的光照模式。阴影相关的Pass寻找ShadowCasterPass。观察有多少物体在渲染阴影贴图这通常是性能瓶颈。光照模式注意物体的Lightmode是ForwardBase主光源还是ForwardAdd附加光源。每个ForwardAddPass通常对应一个额外的逐像素光计算。对于更底层的分析如GPU耗时可以使用第三方工具如RenderDoc。它可以抓取一帧完整的GPU命令流精确分析每个渲染Pass、每个Shader的耗时。8.2 针对不同平台的优化策略表优化目标移动平台 (URP)PC/主机平台 (URP/HDRP)通用策略实时光源数量严格限制。建议1个方向光阴影可选 1-3个无阴影的点光源/聚光灯。可适度增加。URP下注意每个物体的受光数量限制HDRP下性能容量更大。使用光照层级Culling Mask让光源只影响必要的层。实时阴影尽可能避免。如必须仅对主方向光开启并大幅降低Shadow Distance(如15-20)和Resolution(Low)。可开启更多。PC上可使用软阴影和较高分辨率。使用CSM优化平行光阴影。烘焙所有静态阴影。动态物体阴影酌情使用。光照贴图使用压缩尺寸不超过2048合理控制分辨率避免图集过多。可使用更高精度4096追求质量。使用Lightmap StreamingUnity 2022.2流式加载光照贴图减少内存峰值。光照探针数量不宜过多布置在关键路径。避免动态物体频繁穿越探针密集区。可布置更密集的网络以获得更平滑的插值。定期检查探针分布移除冗余。反射探针使用Baked类型低分辨率128数量少。可混合使用Baked和Realtime关键区域用高分辨率。调整探针的Box Size使其紧密贴合需要反射的区域。后处理光照特效慎用SSAO、SSR或使用其移动端优化版本URP Mobile版本。可自由使用SSAO、SSR、Bloom等提升画面。在URP/HDRP Asset中关闭不需要的特性。8.3 常见性能问题速查与解决问题游戏运行时卡顿尤其是镜头转动时。排查用Frame Debugger检查是否因动态物体进出阴影距离或光源范围导致大量ShadowCasterPass或ForwardAddPass的开关。解决优化Shadow Distance将一些动态光源的Render Mode从Important逐像素改为Not Important逐顶点/球谐函数牺牲质量换性能。问题光照烘焙后场景内存暴增。排查检查Lighting窗口中的Lightmap列表看是否生成了过多或尺寸过大的光照贴图。解决降低全局或特定物体的Lightmap Resolution合并静态网格体以减少UV块数量检查UV展开是否高效有无大量空白。问题动态物体在光照探针间移动时光照出现跳跃。排查光照探针布置太稀疏或者探针组覆盖不连续。解决在动态物体的移动路径上尤其是光照变化区域增加探针密度。确保探针组形成的网络能连续覆盖整个活动区域。光照系统的学习和掌握是一个螺旋上升的过程。它始于对几个参数的基本理解成长于无数次的烘焙等待和效果调试最终成熟于对性能与画质之间那种微妙平衡的直觉把握。我的建议是从一个简单的场景开始亲手调整每一个参数观察其带来的变化并时刻用数据Frame Debugger, Profiler说话。当你能够预判某种灯光布置或参数调整会带来怎样的视觉变化和性能影响时你就真正驾驭了Unity的光影魔法。记住最好的光照是让玩家沉浸其中却浑然不觉的技术。