用SceneCapture2d来做镜子和监控效果
经常看到有人仅仅需要一个简单的镜子反射效果 ,却动用平面反射组件(planar reflection)也许是因为看起来比较好懂,其实是完全没有必要的,这个组件是完全模拟真实反射,但也是非常消耗性能,如果你仅仅需要反射一部分场景,则完全可以用SceneCapture2d场景捕获来做。这个SceneCapture2d原理是在场景中放置一个摄像机,把这个摄像机看到的画面每帧输出到一个渲染目标上,你可以把该渲染目标应用到一个材质上,就可以在场景任意地方显示出这个摄像机看到的内容,适合于用做监控摄像画面。但是同样可以做简单的平面镜反射效果。具体就是拖一个SceneCapture2d组件到场景,设置一下它的位置,这里摄像机看到的内容就是你想要在镜子中显示的内容。
然后创建一个渲染目标,右键新建render target 2d,取名为rt_xxx(随意)
然后在场景中选中刚刚拖进的SceneCapture2d组件,在属性中为Texture Target指定为我们创建的渲染目标rt_xxx
然后创建一个材质,给这个材质绑定一个纹理到BaseColor节点上,纹理就设置为我们的渲染目标rt_xxx,将这个材质应用到你场景中需要反射(镜子)的地方就可以实现效果了!
注意这个反射并不是静态的,而是每帧都会刷新。但是因为仅仅捕获部分场景,相对消耗较小。
这个方法在UDK上也适用 那水面的反射是不是用立方体渲染目标的截图来做比较好 kaladars 发表于 2017-7-22 11:13
那水面的反射是不是用立方体渲染目标的截图来做比较好
是的,立方体捕获的是整个场景,但是消耗是2d捕获的6倍 AirsoftGoGo 发表于 2017-7-22 11:47
是的,立方体捕获的是整个场景,但是消耗是2d捕获的6倍
直接用立方体渲染目标生成截图就可以降低消耗,但就只能捕获固定场景了 kaladars 发表于 2017-7-22 11:50
直接用立方体渲染目标生成截图就可以降低消耗,但就只能捕获固定场景了 ...
这样等于是完全静态的了,那就没有消耗 在一个项目看过、但不知其做法,非常感谢楼主的分享 感谢楼主的分享 这个做镜子很好,但实在不明白以渲染著称的UE4为什么普通的反射材质连unity都不如。。。为什么,为什么, yuemingxishan 发表于 2017-7-22 23:26
这个做镜子很好,但实在不明白以渲染著称的UE4为什么普通的反射材质连unity都不如。。。为什么,为什么, ...
Unity是全开放模式,自定义Shading 自定义渲染。实现镜子比UE4轻松很多。。。