我要发帖 回复

管理员

193

主题

9119

积分

0

专家分

兴趣点(最多三项):

Unity引擎
Unreal引擎
CryEngine引擎

私信
发表时间 : 2017-7-24 10:02:56 | 浏览 : 231    评论 : 1
经常看到有人仅仅需要一个简单的镜子反射效果 ,却动用平面反射组件(planar reflection)也许是因为看起来比较好懂,其实是完全没有必要的,这个组件是完全模拟真实反射,但也是非常消耗性能,如果你仅仅需要反射一部分场景,则完全可以用SceneCapture2d场景捕获来做。
012227v0g4vqcjf5df9gqy.png
这个SceneCapture2d原理是在场景中放置一个摄像机,把这个摄像机看到的画面每帧输出到一个渲染目标上,你可以把该渲染目标应用到一个材质上,就可以在场景任意地方显示出这个摄像机看到的内容,适合于用做监控摄像画面。但是同样可以做简单的平面镜反射效果。具体就是拖一个SceneCapture2d组件到场景,设置一下它的位置,这里摄像机看到的内容就是你想要在镜子中显示的内容。
然后创建一个渲染目标,右键新建render target 2d,取名为rt_xxx(随意)
012242og9sj33s5m623ssm.png
然后在场景中选中刚刚拖进的SceneCapture2d组件,在属性中为Texture Target指定为我们创建的渲染目标rt_xxx
012822bimtwv33um3m7mwz.png
然后创建一个材质,给这个材质绑定一个纹理到BaseColor节点上,纹理就设置为我们的渲染目标rt_xxx,将这个材质应用到你场景中需要反射(镜子)的地方就可以实现效果了!

注意这个反射并不是静态的,而是每帧都会刷新。但是因为仅仅捕获部分场景,相对消耗较小。

最近VR访客查看更多↓

jinzhongyin 评论于2017-10-9 10:38:33
LionelM 发表于 2017-7-24 10:02 AM
经常看到有人仅仅需要一个简单的镜子反射效果 ,却动用平面反射组件(planar reflection)也许是因为看起来 ...

很实用的方法

手机版|VR开发网 |网站地图 统计  津ICP备16006248号

GMT+8, 2017-11-20 03:59 AM

返回顶部