我正在尝试使用带有 alpha 通道的视频,但我得到的只是 alpha 通道为黑色。
我正在使用 Vuforia 视频播放示例。
我希望我没有错过任何相关信息。
提前感谢,任何帮助将不胜感激:)
Vuforia 通过使用内置系统视频播放器(在 iOS 和 Android 上)播放视频,将它们设置为输出到渲染纹理。
系统播放器不支持 Alpha 通道视频。
您需要在渲染纹理上应用色度键着色器以删除绿色或紫色。
在vuforia论坛中有一些讨论:
播放视频-阿尔法通道-视频样本-演示-项目
您需要制作一个像图片一样的"特殊视频",其功率为两个,例如: 256x512 格式
要使用的特殊视频图片
然后使用此自定义着色器:
Properties{
_MainTex("Color (RGB)", 2D) = "white"
}
SubShader{
Tags{ "Queue" = "Transparent" "RenderType" = "Transparent" }
CGPROGRAM
#pragma surface surf NoLighting alpha
fixed4 LightingNoLighting(SurfaceOutput s, fixed3 lightDir, fixed atten) {
fixed4 c;
c.rgb = s.Albedo;
c.a = s.Alpha;
return c;
}
struct Input {
float2 uv_MainTex;
};
sampler2D _MainTex;
void surf(Input IN, inout SurfaceOutput o) {
o.Emission = tex2D(_MainTex, IN.uv_MainTex).rgb;
if(IN.uv_MainTex.y <= 0.5){
o.Alpha=0;
}
else{
o.Alpha = tex2D(_MainTex, float2(IN.uv_MainTex.x, IN.uv_MainTex.y-0.5)).rgb;
}
}
ENDCG
}
}
你也可以在下面看到我的帖子: http://answers.unity3d.com/questions/833537/how-to-play-alpha-video-in-unity.html#answer-1094012