【UE4】多视角相机捕获图像如何同屏拼接在一起

前段时间有个Demo移植的需求,需要把实时裸眼3D多视角立体显示的Unity版本移植到UE4,主要包含后处理Shader、相机矩阵变换、多视角画面平铺拼接三大部分。

10*10 多视角相机捕获图拼接效果

对现有的多窗口显示方法进行查阅后,发现主要有MultiplayerRender Target+UI两种实现思路,由于需要采集的视角数量多、还需要让后处理Shader能够作用在拼接的整个图像上,最终选择了后一种。

一、Multiplayer(存在局限性)

首先在项目设置中开启Use SplitScreen选项。

通过添加多个Player,结合Set View Target with Blend将多个相机的画面拼凑在同一Viewport下。

在四个不同位置放置相机

 在设置Controller Id时,注意0号Controller默认已经存在,不需要再次创建。

关卡蓝图中测试

可以看到,能够实现多视角画面拼接,但该方法的局限性在于最多支持四个Player,不符合裸眼3D的机位数量要求。

与此同时,经过测试发现屏幕后处理Shader只会作用于每个Player,而不是对该多视角拼凑成的整幅图像处理,因而该方案不适合该项目。

 二、Render Target + UI

通过蓝图节点创建大量的Scene Capture 2D Component,并设置其位移变换矩阵与自定义投影矩阵值,从而在多视角对目标捕获Render Target(RT),之后在UI界面中对其拼凑再做屏幕空间后处理。

 为每个捕获组件创建其RT对象(RT也是制作简易小地图的一种方式)。

新建一个只包含Image的Widget,将其作为网格子项,设置好大小和Offset保证平铺无接缝,最后记得公开该Image对象。

 依次将捕获的RT设置给每个网格子项中的Image。

 再新建一个Widget,Uniform Grid Panel存放所有网格子项,RetainerBox可以对其子项作屏幕空间后处理(裸眼3d后处理Shader)。

设置网格子项合适的列数,Over。 

运行,搞定!

10*10 多视角相机捕获图拼接效果
  • 9
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值