我有一个无限地形系统,想从中生成一个世界地图。
我的初步方法是,等到一个新块加载时,使用一个摄像机拍摄一个空中截图。直到我添加了日夜循环,这个方法就很好地工作着。

现在,如果一个块在夜间加载,那么地图的那部分也会变暗。

有人对如何处理这个问题有推荐吗?

我考虑过的想法

1. 使用一个“无依赖于照明”的着色器来渲染地图
我想了想在渲染地形之前使用一个单独的着色器,忽略场景照明。
问题在于我的默认地形/材料着色器设置比较复杂,维护一个第二个版本可能会变得混乱。

2. 在一个独立的场景中渲染块
另一个想法是将块复制到一个专门用于地图渲染的隐藏场景中,然后在控制的照明条件下捕捉它。

3. 临时强制白天来拍摄截图
类似于这样:

var currentTime = SomeTimeModule.CurrentTime;

SetTime(Noon);
DoShot();
SetTime(currentTime);

理想情况下,应该在玩家没有察觉的情况下完成。

4. 预先生成整个地图像Valheim
Valheim似乎是在生成地图之前就生成了整个地图,而不是从截图中构建它,但这似乎是一个完全不同的方法,我还没有完全理解。

在解决方案中,有什么想法或推荐吗?最干净,最可伸缩的解决方案是什么?