首页 > Unity3D频道 > 【Unity3D研究院之游戏开发】 > Unity3D研究院之Unity5.x运行时动态更新烘培贴图(八十七)
2015
12-23

Unity3D研究院之Unity5.x运行时动态更新烘培贴图(八十七)

前段时间我研究过这个问题,但是没有解决只好作罢。今天刚好有人又问我这个问题,我得空查了一下还是找到了解决办法。另外也感谢问我的人,解答问题的同时也是我学习的过程。

运行时更新烘培贴图分两种情况

1、场景的物件没有发生变化(也就是说没有运行时加载在场景上的Prefab)此时可以直接更换烘培贴图。

2.场景的烘培贴图已经更新,但是有些物件prefab想运行时加载进来。如果直接Instance的话 这个Prefab是没有烘培信息的。(灰颜色的)
解决这个问题我查到了 一篇大大的文章,它带了例子大家可以下载下来。  http://forum.unity3d.com/threads/problems-with-instantiating-baked-prefabs.324514/#post-2177524

代码在这里,把如下代码挂在GameObject上。当场景烘培结束后,把他保存成prefab,运行的时候直接加载进来就行了。

 

点击 Assets/Bake Prefab Lightmaps 进行烘培, 这样它的脚本里会把index 和 offset保存在prefab里。它还会保存上当前烘培场景的Lightmap,如果运行时想更换的话,你可以加一些自己的逻辑进行切换。

Unity3D研究院之Unity5.x运行时动态更新烘培贴图(八十七) - 雨松MOMO程序研究院 - 1

Unity3D研究院之Unity5.x运行时动态更新烘培贴图(八十七) - 雨松MOMO程序研究院 - 2

最后欢迎大家测试,欢迎大家提出宝贵意见,我们一起把unity这个坑填了!

下载: http://pan.baidu.com/s/1kTU9EOB

雨松MOMO提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!

--

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。

Unity3D研究院之Unity5.x运行时动态更新烘培贴图(八十七)》有 41 条评论

  1. 玄武 说:

    prefab从resources目录加载竟来,可以正常显示光照贴图,但是把prefab制作成assetbundle,lightmap就不能正常恢复了,debug frame 显示LIGHTMAP_OFF。求雨神帮助~

  2. 雨松MOMO 说:

    unity5没有这个功能了。我做了一个工具Ctrl shift D 拷贝lightmap烘培贴图。https://bitbucket.org/xuanyusong/unity-duplicatelightmap

  3. 雨松MOMO 说:

    unity5没有这个功能了。我做了一个工具Ctrl+ shift +D 拷贝lightmap烘培贴图。https://bitbucket.org/xuanyusong/unity-duplicatelightmap

  4. 落叶 说:

    请问下 为什么我在mac里烘培 是有烘培效果的 但是去到真机就没效果了? 有没有什么办法解决? 我用的版本是5.3.4

  5. ljf 说:

    在另一个场景烘焙的Prefab影子是落在地上的,这样新场景中使用Prefab时就没有地面影子了。在Prefab下放一个面片接收影子,使用时把面片没有影子的部分透明化,请教一下有办法做到吗?

  6. colnlin 说:

    Unity5.3 我试过windows上 mac上都可以,在真机上(android和ios)都不成功 求老师指点

    • 雨松MOMO 说:

      这个方法在真机上可以的。 我们项目现在就在用。。 没问题

      • colnlin 说:

        松 我使用的脚基本和上面一样,只是没有每次Lightmapping.Bake(); 因为直接是外包bake好了的,然后我把prefab打包成了bundle,这样在pc上是没有问题的,上真机就不行,这是我也没有bake的问题,还是不能打bundle的问题呢?求指点

  7. 红豆 说:

    Unity5.3 在pc上显示一切正常,打包到安卓机上就没效果了,输出的值都是一样的。是不是有什么需要设置的@雨松MOMO大大

  8. 叶月葵 说:

    想到个问题,请问,我可以在不使用unity自带的分UV功能的情况下,使用在3D软件里面分好的UV2以及用3D软件来进行光照贴图的烘焙,然后把烘焙好的数据重新在unity里面创建assetdate当作光照贴图使用吗

  9. 黎亚洲 说:

    MOMO麻烦问下为什么用你这个同事烘焙多个的时候会重叠在一起然后灯光会自动删掉

  10. 大神求助!为什么美术烘焙好的场景导出package我这里再导入 lightmap信息全都没了 用了你上面的代码将场景全部变成prefab再导出 信息有 但是看到的效果还是不同 这是为什么?

  11. 坚果 说:

    难道游戏中真的要放弃烘培吗,如果游戏的关卡里不能使用同一烘培结果,那游戏的体积会无穷增加,没办法用了啊
    难道只能先在3dmax里烘培好吗?
    求松哥指点[疑问]

  12. 雨松MOMO 说:

    第一个例子 最下面有下载地址

  13. 坚果 说:

    非常感谢雨松的教程,有个问题想问您。
    5.3后,如果多场景使用同一烘培结果呢,如:关卡设计的时候,绝大部分场景是一样的,就某一个球的位置变了
    完全可以使用同一烘培结果[疑问]

    求指点

  14. bob 说:

    Unity5.x烘焙极慢,根本就烘不动,有什么好的解决方案吗?难道非让我退回到4.6?

  15. 说:

    烘培烘培贴图有什么要求吗?

  16. 【C 阿哥】 说:

    好。。好。。好。。好。。

  17. 【C++阿哥】 说:

    好。。好。。好。。好。。

留下一个回复

你的email不会被公开。