UE4实现绿(蓝)屏实时抠像
来源:互联网 发布:安卓翻墙软件fqrouter2 编辑:程序博客网 时间:2024/04/28 10:19
SteamVR的官方宣传片向我们展示了VR的NB,但是不知道大家有没有注意到其中的一项很关键的技术:实时绿屏抠像合成。这项技术在电影电视行业应用非常广泛,也是从最近才开始应用到实时渲染和引擎中。效果请参考链接中的视频(需自备梯子,如不能翻墙请查看下面的效果对比图【上侧为阿凡达中的一个片段,下侧为一则电视广告】)。
效果为玩家置身于绿色背景内,摄像机实时采集玩家并对其进行抠像操作,之后与玩家看到的VR内容进行实时合成,最终输出到旁边的显示器上。
那么问题来了,如何在UE4中实现?
抠像最核心的部分是将绿色抠除,并生成合适的Alpha通道,绿色透明,其余部分不透明。说起来很简单,但其中设计很多理论,如颜色溢出,通道不干净,前景本身有与背景重合的颜色如何处理等等。但是这些明显超出了本文讨论的范畴。
UE4的新版本(忘记了具体从那个版本开始)在Material中内置了一个节点被称为Chroma_Key_Alpha就是专门针对此种需求而生的。这里给出官方论坛中对于该节点原理的解释和分析。接下来,我们需要找一张绿屏图像做测试,直接打开Google,搜索GreenScreen Samples即可。下面这张是笔者找到的示例图片
清晰度本身还是可以的,我们将这张图片导入到UE4中并按照下图效果创建材质:
将材质球赋予给物体即可得到抠像之后的效果。
扩展
我们既然可以对一张静态图片进行抠像,那么能不能对一段绿(蓝)屏视频进行抠像呢?当然可以。关于UE4中如何导入和播放视频,请参考笔者之前写过的一篇博客《如何在UI上播放视频》。里面用到了4.13中新增加的MediaFramework。材质效果如图:
视频最终的播放效果如下图所示:
结合上述效果,我们可以实时采集相机中的绿屏图像进行抠像,然后与VR中的内容进行合成,就能够实现博客开始处SteamVR宣传片中的效果。
- UE4实现绿(蓝)屏实时抠像
- HTML之变色(蓝、绿、红)
- 实时视频抠像
- 视频实时抠像
- 12[红+绿+蓝+Alpha]
- 红R绿G蓝B
- UE4 模型镜像
- 汇编,实现从键盘输入r,g,b分别将字符的颜色设置为红,绿,蓝
- 实现高性能实时抠像算法 color key ,可抠发丝
- inotify + rsync实现web镜像实时同步
- notify + rsync实现web镜像实时同步
- chroma key (绿背景抠图)
- Game Programming with DirectX -- 12[红+绿+蓝+Alpha]
- Game Programming with DirectX -- 12[红+绿+蓝+Alpha]
- java 图像RGB,图像红、绿、蓝、灰 化
- 颜色以红色、品红、蓝紫色、绿/黄、蓝、桔红和青色排序
- 蓝背抠像 绿背抠像 算法,实时视频抠像算法 视频直播抠像
- UE4程序如何实时显示帧数
- 学习使用NavigationView,实现QQ侧滑菜单
- 如何自制思维导图
- 配置C3P0连接池,项目记录
- ringbuffer
- android studio打包以及gradle配置构建
- UE4实现绿(蓝)屏实时抠像
- httpclient、Nginx、tomcat之间请求长连接一致问题
- Python 学习资料
- 绘制直角坐标系
- UIWebView 普通字符串转化为标准HTML字符串
- 马东经典语录
- Banner无限轮播
- 【线段树】Laoj1299
- Java通过_id查询mongodb数据库