unity3d 制作动态天空盒——实现时时环境反射

首先呢我也有必要纠正一下“天空盒”其实指的是cubemap,因为大多数都用来做天空贴图所以我也就叫顺口了哈。

实现原理:利用一个环境视野相机把捕捉的的视野动态制作成texuture,然后贴到我们需要反射的材质体上,当然了着色器必须要有cubemap选项哦。

 

 

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

 

unity3d 制作动态天空盒——实现时时环境反射_第1张图片 

整体来说还凑活吧。接着来看看实现的脚本,是的。用脚本就可以了

 

取个名字叫Generate2DReflection的c#的脚本开始编码,准备一些必要的数据:

unity3d 制作动态天空盒——实现时时环境反射_第2张图片 

我觉得我注释还是很负责的。

然后看核心编码,把视野相机内容渲染到动态天空盒材质:

unity3d 制作动态天空盒——实现时时环境反射_第3张图片 

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

unity3d 制作动态天空盒——实现时时环境反射_第4张图片 

最后我把编码脚本直接共享http://pan.baidu.com/s/1pJvyiqZ,各位拿了就能用啦。

(注意:移动平台请最好不要用动态天空盒哦,非常消耗资源的)

你可能感兴趣的:(Unity3d)