烙谱钨鼐光照贴图技术演进
?早期阶段?Unity 5.x之前采用Enlighten光照系统,仅支持静态物体烘焙,动态物体需依赖Light Probe间接光照。
?URP引入?URP整合了轻量级烘焙管线,支持混合光照模式(Mixed Lighting),允许静态物体烘焙阴影与动态物体实时交互。
?HDRP协同发展?HDRP引入更高精度的光照贴图UV生成和分辨率控制,URP随后适配简化版流程,如自动生成Lightmap UVs功能。
静态物体解决方案
?核心步骤?:
?标记静态属性?在Mesh Renderer中勾选Contribute GI,并启用Lightmap Static标识。
?UV准备?模型导入时勾选Generate Lightmap UVs(Project视图 > Model选项卡)。
?参数调整?
Scale In Lightmap:控制分辨率(值越大细节越精细)。
Lightmap Resolution:全局设置(建议30-100 texels/unit)。
?示例场景?:
csharp
// 静态物体Cube烘焙设置
public class StaticBaker : MonoBehaviour {
void Start() {
GetComponent().lightmapScaleOffset = new Vector4(1, 1, 0, 0);// 默认UV缩放
GetComponent().lightmapIndex = 0;// 绑定光照贴图索引
}
}
动态物体解决方案
?技术组合?:
?Light Probes?在场景中布置探针组,动态物体通过LightProbeProxyVolume获取周围烘焙光照数据。
?混合光照模式?光源设为Mixed模式,静态阴影烘焙到光照贴图,动态物体接收实时阴影。
?示例代码?:
csharp
// 动态物体Sphere适配光照
public class DynamicLighting : MonoBehaviour {
void Update() {
LightProbes.GetInterpolatedProbe(transform.position, GetComponent(), out var probe);
GetComponent().additionalLightmapSettings.lightProbeVolume = probe;
}
}
跨场景预制体烘焙
通过PrefabLightmapsData脚本保存光照贴图数据,动态加载时恢复:
预制体根节点挂载脚本,烘焙后自动记录贴图索引和UV偏移。
新场景中实例化预制体时,脚本在Awake阶段重新绑定光照贴图。
性能优化建议
?分层控制?:使用Rendering Layer Mask限制光源影响范围。
?分辨率分级?:远景物体降低Scale In Lightmap值。
?分块烘焙?:大场景分区域烘焙后合并。
1630

被折叠的 条评论
为什么被折叠?



