Unity3D消除绿幕

作者: 啊安 | 来源:发表于2017-01-03 22:42 被阅读555次

以前主管就告诉我们,做一个专门的技术博客,对以后成长有很大帮助,但是一直没有去做,工作一年,知识杂且乱,感觉收获不大,决定从写技术博客开始。

最近因工作原因,需要用unity实现 播放 消除 绿幕的视频。

首先从游戏蛮牛里面找到一个相关的文章,从文章中,大致了解到,可以使用shader来进行绿幕消除,但是CG语言小弟以前从来未接触过,表示看不懂。

后来找到了一个过滤颜色的文章,于是我复制了作者的shader代码。

首先新建一个shader,双击打开编辑代码,把文章中的代码复制下来,主要起作用的代码是以下的方法:

float4 fragment_convert(Inputfragment o) : COLOR{

float4 c = tex2D(_MainTex,o.uv);

return c;

}

该方法可以引用到使用该shader的材质上的RGBA值,然后我就根据代码大概意思,写出了以下代码

float4 fragment_convert(Inputfragment o) : COLOR{

float4 c = tex2D(_MainTex,o.uv);

//简单的判断材质的RGB值

if (c.g >0.5&&c.b<0.5&&c.r<0.5){

c.a = 0;//材质的绿色大到一定程度,并且蓝色和红色小到一定程度,就把该部分的材质的透明度设置为0

}

return c;

}

shader代码写好后,新建一个材质球,把shader赋予材质球,把材质球赋予指定的播放容器。

然后把播放视频代码的赋予到播放容器上即可。直接播放视频,会发现视频上的绿色部分被消除,但是并不能完全消除干净,CG代码有待优化。

绿幕消除前后对比:

以下是shader代码和播放视频代码

链接:http://pan.baidu.com/s/1eSiLzpg 密码:ul22

PS:以上描述虽然简单,但是在毫无基础的情况下,真是苦苦搜索而不得入门。

其中有几个坑:

1.不知道关键代码在何处,后来才认知到该方法能捕抓材质RGBA。

2.不清楚CG语言中RGBA值的范围,一直使用了0~255的值域,所以久久得不到正确的结果,后来才发现CG语言中RGBA的值域是0~1。

3.不熟悉shader玩法的情况下,不知道应该如何把shader和视频关联起来,后来才发现,把shader绑到容器里,就会使用该shader自动渲染视频。

就酱吧,欢迎转载,转载注明出处

相关文章

  • Unity3D消除绿幕

    以前主管就告诉我们,做一个专门的技术博客,对以后成长有很大帮助,但是一直没有去做,工作一年,知识杂且乱,感觉收获不...

  • 绿幕

    我看到拍电影的时候 好多场景都要绿幕 据说, 是为了可以后期制作, 能改了场景,把人抹去 那,为什么不能是红的紫的...

  • 绿幕直播

    今天做了好几件事情,先是把净水机的管线机修好了,然后就是发货,回来后就开始了烧烤生涯,然后一边烧烤一边听课(果然不...

  • [unity3d源码] Unity3D三消类游戏《水果乐园》完整

    Unity3D三消类游戏《水果乐园》完整源码下载 说明: unity水果消除游戏源码,非常耐玩,很适合在空闲的时候...

  • 你要的绿幕素材来了

    绿幕素材大家并不陌生,视频制作 过程中选择适的绿幕素材可以节省很 多的时间。合理的使用绿幕素材,不仅能制作出非常炫...

  • V12绿幕抠图

    1.绿幕抠图 电影中的奇幻场景和特效都是依靠绿幕完成的。淘宝绿色背景布;电动背景轴加绿幕纸摄像机对绿色通道更明显,...

  • 寄语《绿萝》

    然过去,夏的热烈繁茂已向我走来。 我却钟情于那一抹绿,最是那幕幕埋头的温情。 (下期发《绿萝》)

  • Unity3d 入门(一):了解Unity3d

    1.了解unity3d 首先我们要对unity3d有一个了解,什么是unity3d?为什么使用unity3d?其实...

  • 绿幕抠像流程简介

    素材 为了简化实验计算原图和背景图采取了同样长宽是800*450的图片 原图: 背景图: 合成后效果图 原图素材R...

  • 视频绿幕抠图教程

    视频或照片中使用绿幕去遮住你不用的部分,留下你想要的部分再进行制作。称绿幕抠图。比如你要去除一张照片的背景,留下人...

网友评论

  • e6f5470edfc3:推荐一个更好一个的网站
    e6f5470edfc3:@啊安 泰斗社区,专门的unity网站,你可以加我QQ:2109365042详谈
    啊安:@啷哩个啷儿 啥网站

本文标题:Unity3D消除绿幕

本文链接:https://www.haomeiwen.com/subject/fwinvttx.html