转载地址:http://momowing.diandian.com/post/2014-02-10/40060980294
首先呢我也有必要纠正一下“天空盒”其实指的是cubemap,因为大多数都用来做天空贴图所以我也就叫顺口了哈。
首先呢我也有必要纠正一下“天空盒”其实指的是cubemap,因为大多数都用来做天空贴图所以我也就叫顺口了哈。
实现原理:利用一个环境视野相机把捕捉的的视野动态制作成texuture,然后贴到我们需要反射的材质体上,当然了着色器必须要有cubemap选项哦。

成像的效果,我就拿自己的赛车模型来做演示好了:

整体来说还凑活吧。接着来看看实现的脚本,是的。用脚本就可以了
取个名字叫Generate2DReflection的c#的脚本开始编码,准备一些必要的数据:

我觉得我注释还是很负责的。
然后看核心编码,把视野相机内容渲染到动态天空盒材质:

Ok啦,关于RenderToCubemap的这个方法,大家可以去文档查看使用说明哈,这里需要强调一下,被渲染的材质使用的shader的天空盒标识我这里用的是“_Cube”,当然也有可能各位的反射不是这个名称,可以去使用的shader编码里面看看:

最后我把编码脚本直接共享http://pan.baidu.com/s/1pJvyiqZ,各位拿了就能用啦。
(注意:移动平台请最好不要用动态天空盒哦,非常消耗资源的)
本文介绍了一种在Unity中使用脚本实现动态天空盒的方法。通过环境视野相机捕捉场景并实时更新为cubemap,进而作为反射纹理贴到物体表面,达到动态反射效果。文章提供了完整的脚本及注意事项。
1636

被折叠的 条评论
为什么被折叠?



