1
我完全陌生的着色透明的,我從來沒有一個着色器呈現的不是顏色
我想知道,如果它是不可能性有,通常使沒有亮燈的質感,除了特定顏色的着色器,這應該被渲染爲透明
有點像一個藍綠的事情,我想使着色渲染RGBA(0,0,0,0),而不是RGBA(0,1,0,1)
我知道我可以使用帶alpha的紋理,但是我需要在移動設備上使用這種紋理,所以我認爲這是唯一的選擇
預先感謝您提供任何提示或提供的答案
我完全陌生的着色透明的,我從來沒有一個着色器呈現的不是顏色
我想知道,如果它是不可能性有,通常使沒有亮燈的質感,除了特定顏色的着色器,這應該被渲染爲透明
有點像一個藍綠的事情,我想使着色渲染RGBA(0,0,0,0),而不是RGBA(0,1,0,1)
我知道我可以使用帶alpha的紋理,但是我需要在移動設備上使用這種紋理,所以我認爲這是唯一的選擇
預先感謝您提供任何提示或提供的答案
您正在尋找色度鍵着色器。
this Unity forum thread中有一些細節,我認爲這一個會做你在問什麼,雖然另一種解決方案可能是「更好」,這取決於你可以用你的視頻源做什麼等。給線程一個閱讀如果你可以的話。
Shader "Matte/RGB Color"
{
Properties {
_MainTex ("Base (RGB)", 2D) = "white" {}
_Matte ("Matte Color", Color) = (1,0,1,1)
_Thresh ("Threshold", Range (0,1)) = 0.0
_Cutoff ("Cutoff", Range (0,1)) = .5
}
SubShader {
Pass {
AlphaTest Less [_Cutoff]
CGPROGRAM
#pragma fragment frag
#include "UnityCG.cginc"
struct v2f {
float4 pos : POSITION;
float4 uv : TEXCOORD0;
};
sampler2D _MainTex;
uniform half4 _Matte;
uniform float _Thresh;
uniform float _Cutoff;
half4 frag (v2f i) : COLOR
{
//return _Matte;
half4 color = tex2D(_MainTex, i.uv.xy);
half3 keyMinus = half3((_Matte.r - _Thresh), (_Matte.g - _Thresh), (_Matte.b - _Thresh));
half3 keyPlus = half3((_Matte.r + _Thresh), (_Matte.g + _Thresh), (_Matte.b + _Thresh));
if (((color.r > keyMinus.r) (color.r < keyPlus.r)) ((color.g > keyMinus.g) (color.g < keyPlus.g)) ((color.b > keyMinus.b) (color.b < keyPlus.b)))
{
return _Cutoff;
}
return float4(color.rgb, max(0, _Cutoff-0.01));
}
ENDCG
} // pass
} // subshader
//Fallback "Transparent/Diffuse"
} // shader
也有對資產存儲資產,如this one($ 8),它可以更好地工作或可能不會。
謝謝你的提示! 在那裏發現了很多好東西,但仍然不是一個正常工作的着色器。 至少我明白了着色器工作原理 – ZioCain