许久没发文章了,开始实习了,挺忙的基本没什么时间了

unity4.3.3是一个非常古老的版本了,弄了一下烘焙,踩了不少坑,

首先是unity自带的nature shader,其中有soft occlusion系列的shader相信不少人拿来做树了(还有草等植物),但是bake之后发现有阴影,而且阴影很漂亮,但是树没了,错位到别的地方去了,对模型generate lightmap uv也不行,查了一下,是uv的问题,发现也是有人踩过坑的,但是没有什么好的解决方法,看到上面有人说先带着树bake存起lightmap,再把树unstatic掉,快速bake后替换lightmap,可不可行没试过,博主太懒,直接copy一份做shadow,另一份unstatic藏起来,bake之后再把做shadow的树删掉,还原另一部分树,此时打在树上的光是实时的。这种方法可能对性能会有影响,而且树上的光不是bake的,也没有被打到的bake影子,所以效果可能也会有影响,但是shadow部分因为shader本身自带ao所以取舍还是可以考虑一下的

对该问题的第二种解决方法就是自己去改shader,博主用之前下的built in shaders 包中的该shader进行修改,把结尾改成:

可以让他不会消失错位,但是bake后的shader相当于cutout的shader,相比之下有些丑陋

然后就是terrain的问题们了,terrain的参数不要忘记调

是一个调了一下午的大坑,屡次bake之后terrain要么没lightmap,要么就是错的,然后发现 lightmap的index错了。。。。开始是对的,只有在运行的时候,terrain的lightmap index是上一次bake的缓存,所以会出错,需要改过来,调节的话unity对terrain的lightmap一般放在后面,这时可以查看lightmap index 最密集的,或者一眼就能看出那张lightmap是terrain的,点击terrain,在lightmapping的object面板中的·terrain,Atlas中的lightmap index改过来,然后运行一下就好了。。。

分析了一下出现这个问题的原因是,之前手欠修改过 lightmap的index。。。unity可能就默认你要自己修改。。。或者是一个bug。。。

还有什么问题会继续补充,,,,

2016-7-27

05-02 02:20