unity3d播放透明mov格式视频的一种方式

首先说明这个是利用shader来实现透明,并不是使用含有透明通道的mov视频

网上查了unity好像没有自带的方法来支持透明通道的mov格式视频

但是可以用shader实现,mov如果带了透明通道也是和没有透明一样是黑色的背景

这里需要两个视频,AE里面按如下格式输出,注意Channels一个是RGB 另一个是ALPHA 不需要其他调整

(也不要压缩,因为unity会自动压缩mov格式,如果mov导入出错首先看看你的视频名字是不是中文的再说)

网上找到了一个 把下面写入shader文件然后放材质上,材质放物体上,然后按如下图调整

albedo(漫反射)放RGB那个 alpha放alpha那个视频

Shader "Custom/Example"
{
    Properties
    {
        _Color ("Color", Color) = (1,1,1,1)
        _MainTex ("Albedo (RGB)", 2D) = "white" {}
        _AlphaVideo ("Alpha Video(R)", 2D) = "white" {}
        _Glossiness ("Smoothness", Range(0,1)) = 0.5
        _Metallic ("Metallic", Range(0,1)) = 0.0
    }
    SubShader
    {
    Tags { "Queue"="Transparent" "RenderType"="Transparent" }
        LOD 200

        CGPROGRAM
        // Physically based Standard lighting model, and enable shadows on all light types
        #pragma surface surf Standard alpha

        // Use shader model 3.0 target, to get nicer looking lighting
        #pragma target 3.0

        sampler2D _MainTex;
        sampler2D _AlphaVideo;

        struct Input {
            float2 uv_MainTex;
            float2 uv_AlphaVideo;
        };

        half _Glossiness;
        half _Metallic;
        fixed4 _Color;

        void surf (Input IN, inout SurfaceOutputStandard o) {
            // Albedo comes from a texture tinted by color
            fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
            fixed4 _alpha = tex2D (_AlphaVideo, IN.uv_AlphaVideo);
            o.Albedo = c.rgb;
            // Metallic and smoothness come from slider variables
            o.Metallic = _Metallic;
            o.Smoothness = _Glossiness;
            o.Alpha = _alpha.r;

        }
        ENDCG
    }
    FallBack "Diffuse"
}

(参考网址 http://forum.unity3d.com/threads/video-with-alpha.338072/)

注意如果你还是看到黑色没有看到动画那是因为视频没有播放

记得两个视频都要播放Play(); 才会正确

这种方式适合GUI的,但是会有淡淡的透明背景色存在

shader可以改成

#pragma surface surf Lambert  alpha

SurfaceOutputStandard

也改成SurfaceOutput就能获得如图的效果了,注意这种的放GUI会全黑或者全白

其他快捷的方法还在探索中,希望有好的效果能分享哈,共同进步

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-11 02:16:49

unity3d播放透明mov格式视频的一种方式的相关文章

电脑上的AVI格式视频怎么在线转换成MOV格式视频

电脑上的AVI格式视频怎么在线转换成MOV格式视频,很多人都知道使用暴风影音或者影音之星都可以打开AVI格式的视频,Windows本身也是可以的,但有的时候需要用到别的软件去播放视频,这个时候就需要将视频格式转换了,今天给大家介绍下如何把AVI转换成MOV.操作步骤一:打开电脑进入浏览器内搜索"迅捷PDF在线转换器"找到相对应的页面进入.操作步骤二:进入在线转换器的页面后,可以看到页面内有很多关于转换的功能,点击导航栏上的音视频转换,并在下拉框内选择"AVI转MOV"

asp.net 页面中添加普通视频的几种方式

第一种 是通过调用window media player进行播放诸如:wmv,asf等格式文件: <object align=center class="OBJECT" classid=CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95 height=320 id=MediaPlayer width=356> <param name="ShowStatusBar" value="-1"> 

如何快速将MOV格式视频转换成MP4格式

使用Mac用户都熟知,MOV是其自带录屏软件Quick Time默认输出视频格式.它是一种有损压缩格式,在Mac端支持较好.但是由于其自身的限制,Mac用户发给Windows用户的MOV视频在对方的播放器中无法播放.MP4是一种几乎在所有平台与设备中支持较好的一种格式,所以可以将MOV转MP4后再进行播放.以下是为大家推荐的几款比较简单易操作的软件,大家可以根据自己的需求选择适合自己的软件. MOV转换MP4软件推荐 方法一:在线视频转换器 方法二:迅捷视频转换器 在线视频转换器 首先为大家推荐

【巨坑】springmvc 输出json格式数据的几种方式!

最近公司项目需要发布一些数据服务,从设计到实现两天就弄完了,心中窃喜之. 结果临近部署时突然发现.....  服务输出的JSON 数据中  date 类型数据输出格式要么是时间戳,要么是  {"date":26,"day":1,"hours":21,"minutes":38,"month":5,"seconds":22,"time":1498484302259,&qu

字节流复制视频的四种方式

package com.io.liushuaishuai; /* 四种方式复制视频 记录时间 1 基本字节流一次一个字节 2基本字节流一次一个字节数组 3字节缓冲流1 基本字节流一次一个字节 4字节缓冲流一次一个字节数组 */ import java.io.*; public class CopyMp4Demo { public static void main(String[] args) throws IOException { //记录开始时间 long start = System.cu

空间主页播放任意FLV格式视频方法

把文件上传到QQ网络硬盘 打开 硬盘 的 管理 选项 然后它会打开QQ邮箱的文件中转站 找到你要的视频文件 点击下载它 这里建议你使用搜狗浏览器打开网页 来到下载按钮点击下载,在弹出的对话框中选择 其他下载工具--迅雷 下载它 在这一进度条中点击右键 "复制网址到剪贴板" [在这里可以使用迅雷下载文件后来得到视频文件的地址来源] 然后是大家都知道的 装扮空间 -- 增删模块 --新建 --网络视频模块 --然后在 视频地址 里按下 Ctrl + V 黏贴上去这样就可以在主页播放视频了

Unity3D两种方式播放视频

  Unity3D中播放游戏视频的方式有两种,第一种是在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像机直直的照射在这个面上.第二种是在GUI层面上播放视频.播放视频其实和贴图非常相像,因为播放视频用到的MovieTexture属于贴图Texture的子类,那么本章我们就好好学习一下Unity中播放视频的这两种方式.哇咔咔-           Unity支持的播放视频格式有.mov..mpg..mpeg..mp4..avi和.asf.只需将对应的视频文件拖拽入Project视

带alpha透明通道视频—网页播放带alpha通道视频叠加合成方案

带alpha通道的图片有GIF和PNG,但是GIF只有8位,失真严重,边缘锯齿非常明显. 做动画,其它考虑PNG24,用css3 animations播放.但是,每个都配置太麻烦.综合考虑还是做透明背景的及带alpha通道的视频做背景做好. 带alpha通道可以跟背景融合的视频,常用有三种格式 微软 AVI,微软压缩比太差,文件太大. 苹果mov,在windows平台,要装相关插件. 谷歌webM,只要与新版chrome即支持. webM 与webP是一个爹养的,在网络应用绝佳--高压缩比高保真

Unity3d 播放高质量视频解决方案

Unity3d 播放高质量视频解决方案~ 最近在折腾一个视频游戏.真的是一个视频游戏,游戏主背景是个大视频.可能切换三四个视频,而且需要无缝切换. 平台是安卓,蕊片是rockclip.找了各式各样的插件. movietexture,只能播放OGG和OVG,而且质量比较低.如果要转成高质量的视频,文件尺寸比较大. 放弃,继续找. easymovietexture, 某些机子上黑滴-兼容性不好,继续找. avipro 额,是这个名字么,最后发现只能在IOS上使用.继续找. Vuforia video