【发布时间】:2014-12-01 23:15:26
【问题描述】:
我正在尝试使用带有 alpha 通道的视频,但我得到的只是 alpha 通道为黑色。
我正在使用 Vuforia 视频播放示例。
希望我没有遗漏任何相关信息。
提前致谢, 任何帮助将不胜感激:)
【问题讨论】:
我正在尝试使用带有 alpha 通道的视频,但我得到的只是 alpha 通道为黑色。
我正在使用 Vuforia 视频播放示例。
希望我没有遗漏任何相关信息。
提前致谢, 任何帮助将不胜感激:)
【问题讨论】:
Vuforia 使用内置系统视频播放器(在 iOS 和 Android 上)播放视频,方法是将它们设置为输出到渲染纹理。
系统播放器不支持 Alpha 通道视频。
您需要在渲染纹理上应用色度键着色器以移除绿色或紫色。
vuforia 论坛中有一些讨论:
【讨论】:
您需要制作一个像图片一样的“特殊视频”,采用 2 的幂,例如:256x512 格式
pic of special video to be used
然后使用这个自定义着色器:
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看到我的帖子
【讨论】: