unity-大地图分块加载研究

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangxuan0261/article/details/84970507

title: unity-大地图分块加载研究
categories: Unity3d
tags: [unity, 大地图, 分块, lightmap]
date: 2018-12-12 11:22:18
comments: false

unity-大地图分块加载研究


思路及效果

  1. 每个chunk场景独自烘焙自己的光照图

  2. chunk场景中go导出为prefab

  3. 打包

    1. 将每个chunk场景的 chunk节点的 所有Renderer的光照信息场景的光照图信息 记录到一个二进制文件中, 然后同lightmap贴图打包在一起在一个AssetBundle中.
    2. chunk节点导出的prefab都分别打成一个AssetBundle

  4. 运行时效果

    运行时加载每个chunk及其光照贴图 (加载使用异步的方式)

    1. 加载 prefab
    2. 加载 lightmap
      1. 加载光照贴图到当前场景中, 记录好光照图的 索引a
      2. 读取renderer的光照信息, 将prefab实例出来的go赋值上光照信息, lightmapIndex 就是 索引a, lightmapScaleOffset

    运行时卸载, 主要是调整每个chunk节点的光照图索引. 确保每个chunk节点与光照图数组的的索引一一对应

    优化:

    1. 加载使用异步加载的方式

    2. 管理chunk可以使用一些缓存策略, 比如: LRU, 防止角色在碰撞盒边缘来回抖动造成频繁 加载,卸载.

    有空再弄个demo工程出来


参考资料

猜你喜欢

转载自blog.csdn.net/yangxuan0261/article/details/84970507