Unity 预制动态绑定光照贴图遇到变白问题
创始人
2024-11-16 03:36:02

预制绑定光照贴图,网上解决方案很多,已下是要点:

//烘培完场景之后,保存光照贴图信息 void StoreLightmapData() {     lightMap.Clear();     LightmapData[] lds = LightmapSettings.lightmaps;     foreach (LightmapData data in lds)     {         CustomLightMapData cd = new CustomLightMapData();         cd.lightMapDir = data.lightmapDir;         cd.shadowMask = data.shadowMask;         cd.lightMapColor = data.lightmapColor;         lightMap.Add(cd);     } } //因为预制不保存光照信息 //保存预制中MeshRenderer 的光照信息到存储列表 private void GetChildData(Transform parent) {     if (parent.gameObject.isStatic)     {         var render = parent.GetComponent();         if (render != null && render.lightmapIndex >=0)         {             datas.Add(new RenderLightmapData(render, render.lightmapIndex, render.lightmapScaleOffset));         }     }      for (int i = 0; i < parent.childCount; i++)     {         GetChildData(parent.GetChild(i));     } } //加载预制是执行脚本方法  public void SetAllLightmapData() {       SetRenderSetting();      LightmapData[] lightmapDatas = new LightmapData[lightMap.Count];     for (int i = 0; i < lightMap.Count; i++)     {         CustomLightMapData cd = lightMap[i];         LightmapData ld = new LightmapData();         ld.lightmapDir = cd.lightMapDir;         ld.lightmapColor = cd.lightMapColor;         ld.shadowMask = cd.shadowMask;         lightmapDatas[i] = ld;     }     LightmapSettings.lightmaps = lightmapDatas;          for (int i = 0; i < datas.Count; i++)     {         if (datas[i]._renderer == null)         {             Debug.LogError("redner is null index="+i);             continue;         }         datas[i]._renderer.lightmapIndex = datas[i]._lightmapIndex;         datas[i]._renderer.lightmapScaleOffset = datas[i]._lightmapScaleOffset;     } }

以上大致代码,思路就是烘培完之后把光照信息绑定到脚本上,加载预制时脚本再还原光照信息

其中遇到的问题就是,加载完预制还原光照信息后,物体变白

原场景烘焙之后效果图:

加载到其他场景效果图:

显示效果变的特别白

问题的原因

问题原因及结论:

如果烘培场景光照贴图选择定向模式(Directional),那么使用预制场景可以设置定向或者非定向都可以

如果烘培场景光照贴图选择了非定向模式(Non-Directional),那么使用预制场景只能设置为非定向模式

我遇到的问题是烘培场景选择了Non-Directional ,但使用场景使用了定向模式

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...