用UE4绿幕抠像合成HTC VIVE的MR视角

用UE4绿幕抠像合成HTC VIVE的MR视角

  • 用UE4绿幕抠像合成HTC VIVE的MR视角
  • 一、MR视频原理
  • 二、准备
  • 三、实际操作
  • 四、总结


用UE4绿幕抠像合成HTC VIVE的MR视角

用UE4绿幕抠像合成HTC VIVE的MR视角_第1张图片

Unity3D实现教程在这里


一、MR视频原理

一般录制的VR视频 ,都是是玩家第一人称视角,将头显中左眼看到的影像录制下来。

合成第三视角的视频需要

1.切换成第三人称视角

普通的Vive程序是在玩家头盔的位置摆放两个虚拟camera对应左右眼,分别生成左右眼的画面传给HMD,然后将其中一只眼的画面复制到PC屏幕上。为了让屏幕上产生第三人称视角的游戏画面,就需要在和玩家一定距离外摆放一个额外的虚拟camera,并且镜头要对准玩家所在位置。之后PC上显示的不再是左右眼画面的复刻,而是由这个额外的camera单独绘制的(会增加一定的渲染负担)。

2.将体验者的影像录制下来

因为我们只需要玩家本人的影像,并不需要看到房间里的桌子、墙壁等背景。所以要用到抠
像技术。在录制的时候,让体验者在一个周围是绿布(或者其他颜色)的房间里,然后用一个摄像机(webcamera或者专业的摄像机)录制他玩游戏时的影像。最后在捕捉到的视频中将绿色去掉,就只剩下人的影像了。

3.将游戏画面和摄像机影像合成

在1.和2.中我分别提到了一个虚拟摄像机和一个真实的摄像机。为了让他们拍到的影像能合
成起来,需要保证他们的视角是一样的。也就是说,假如虚拟摄像机在游戏里的位置是主角左前方2米、朝向和主角的朝向成120度角,那么要保正现实中摄像机在体验者左前方2米,朝向和体验者朝向成120度角。这就需要借助第三个手柄来定位和定向。

将额外的手柄绑在摄像机上,或者将手柄和摄像机绑在同一个位置上,原则是确保它们相对
位置、相对朝向是不变的。这样当现实中摄像机移动时,游戏通过感知手柄的位置变化,也相应地改变虚拟摄像机的位置。然后,把游戏中的物体按位置分为两类,一类是前景,位置在摄像机到玩家之间,另一类是背景,位置在玩家之后。最后把背景、体验者影像、前景合成成视频。

二、准备

1.HTC VIVE 额外手柄或追踪器 (第三视角定位用,本人手上正好有 vive tracker)
2.主机 (配置要高)
3.摄像机+采集卡 (丐版 普通摄像头 本人用kinect )

三、实际操作

先说抠像部分
1 采集卡方案 还要装一些驱动和插件(例如 blackmagic media player)
2 这里 我直接是调用 kinect摄像头
创建 一个mediaplayer 选择设备 记录url (方便运行时打开)

用UE4绿幕抠像合成HTC VIVE的MR视角_第2张图片

3关卡蓝图中添加打开调用
用UE4绿幕抠像合成HTC VIVE的MR视角_第3张图片

4新建材质 blendmode 选Translucent 开启透明 连接如下
用UE4绿幕抠像合成HTC VIVE的MR视角_第4张图片
5材质赋给相机画面 材质inst中 keycolor 改成你要扣掉的颜色
用UE4绿幕抠像合成HTC VIVE的MR视角_第5张图片
6 工程中导入VR模板 这里直接用demo里的VRPawn 添加一个 motioncontroller (作为第三视角位置追踪)

这里我用的是vive tracker tracker source 改成tracker_camera

还要在steamvr 中设置 坑死我了
用UE4绿幕抠像合成HTC VIVE的MR视角_第6张图片
用UE4绿幕抠像合成HTC VIVE的MR视角_第7张图片
用UE4绿幕抠像合成HTC VIVE的MR视角_第8张图片
用UE4绿幕抠像合成HTC VIVE的MR视角_第9张图片

用UE4绿幕抠像合成HTC VIVE的MR视角_第10张图片

最后 在场景中添加一个捕获相机 让其跟着定位器移动 ,画面渲染到UI上 并且让它跟随相机旋转
用UE4绿幕抠像合成HTC VIVE的MR视角_第11张图片

最后把画面输出到UI上

用UE4绿幕抠像合成HTC VIVE的MR视角_第12张图片

四、总结

本人Unity转UE4 对UE4的操作还不熟练 如有不对请指出
Unity的四分屏效果 在UE4中不知道咋弄 ,我就直接铺在UI上 灯光环境好一点的话抠像质量会好很多

你可能感兴趣的:(用UE4绿幕抠像合成HTC VIVE的MR视角)