unity3d 制作动态天空盒——实现时时环境反射
2014-03-21 21:26
302 查看
转载地址:http://momowing.diandian.com/post/2014-02-10/40060980294
实现原理:利用一个环境视野相机把捕捉的的视野动态制作成texuture,然后贴到我们需要反射的材质体上,当然了着色器必须要有cubemap选项哦。
成像的效果,我就拿自己的赛车模型来做演示好了:
整体来说还凑活吧。接着来看看实现的脚本,是的。用脚本就可以了
取个名字叫Generate2DReflection的c#的脚本开始编码,准备一些必要的数据:
我觉得我注释还是很负责的。
然后看核心编码,把视野相机内容渲染到动态天空盒材质:
Ok啦,关于RenderToCubemap的这个方法,大家可以去文档查看使用说明哈,这里需要强调一下,被渲染的材质使用的shader的天空盒标识我这里用的是“_Cube”,当然也有可能各位的反射不是这个名称,可以去使用的shader编码里面看看:
最后我把编码脚本直接共享http://pan.baidu.com/s/1pJvyiqZ,各位拿了就能用啦。
(注意:移动平台请最好不要用动态天空盒哦,非常消耗资源的)
首先呢我也有必要纠正一下“天空盒”其实指的是cubemap,因为大多数都用来做天空贴图所以我也就叫顺口了哈。
实现原理:利用一个环境视野相机把捕捉的的视野动态制作成texuture,然后贴到我们需要反射的材质体上,当然了着色器必须要有cubemap选项哦。成像的效果,我就拿自己的赛车模型来做演示好了:
整体来说还凑活吧。接着来看看实现的脚本,是的。用脚本就可以了
取个名字叫Generate2DReflection的c#的脚本开始编码,准备一些必要的数据:
我觉得我注释还是很负责的。
然后看核心编码,把视野相机内容渲染到动态天空盒材质:
Ok啦,关于RenderToCubemap的这个方法,大家可以去文档查看使用说明哈,这里需要强调一下,被渲染的材质使用的shader的天空盒标识我这里用的是“_Cube”,当然也有可能各位的反射不是这个名称,可以去使用的shader编码里面看看:
最后我把编码脚本直接共享http://pan.baidu.com/s/1pJvyiqZ,各位拿了就能用啦。
(注意:移动平台请最好不要用动态天空盒哦,非常消耗资源的)
相关文章推荐
- unity3d 制作动态天空盒——实现时时环境反射
- POI解析Excel之应用反射等技术实现动态读取
- C#实现反射调用动态加载的DLL文件中的方法
- PHP实现依赖注入-使用反射机制和动态代理技术 - 简单思想(咋个办呢 zgbn)
- 反射实现 AOP 动态代理模式(Spring AOP 的实现 原理) --转
- Excel图表制作(二):下拉菜单实现动态图表
- Unity3D中NGUI的动态字体(TTF)制作方法!!!
- 【转】在Unity3D的网络游戏中实现资源动态加载
- 反射实现 AOP 动态代理模式(Spring AOP 的实现 原理)
- c# 反射与插件(插件的制作与应用 实现的流程)
- 设计模式学习(十四)————抽象工厂模式(使用Qt框架的反射技术——根据字符串动态创建类来实现)
- C#动态执行类库中的函数:利用反射实现(js)Eval,asp(Execute)功能
- 反射实现 AOP 动态代理模式(Spring AOP 的实现 原理)
- unity3d实现动态显示伤害值
- 反射实现 AOP 动态代理模式(Spring AOP 的实现 原理)
- 在Unity3D的网络游戏中实现资源动态加载
- 反射实现 AOP 动态代理模式
- 反射实现AOP动态代理模式(Spring AOP实现原理)
- C#利用反射技术实现winform界面动态存储
- Unity3D实现动态加载游戏资源