2009-11-08 3 views
3

Silverlight 3 Pixel Shaders로 부드러운 알파 채널 키잉을 수행하는 방법은 무엇입니까?실버 라이트 3 픽셀 쉐이더로 알파 채널 키잉을 부드럽게하는 방법은 무엇입니까?

나는 (이 Shazzam HLSL의 예와 같이) 일부 HLSL 필터

   sampler2D implicitInputSampler : register(S0); 


      float4 main(float2 uv : TEXCOORD) : COLOR 
      { 
       float4 color = tex2D(implicitInputSampler, uv); 

      if(color.r + color.g + color.b < 1.9) { 
      color.rgba = 0; 
       } 

      return color; 
      } 

것은 내가 키에 노력하고 있지만, 예를 들어 어두운 빨간색은 빨간색과 파란색으로 구성되어 있으며 난 경우 단지 색상을하지 키를 원하는 모든 파란색을 키잉 나는 투명하게되기를 원한다. 당신은 단지보다는 그것을 키 입력 색상을 빼하려는처럼 From to Image http://superior0.narod.ru/CO/R/C/CA.png

+0

이제는 색상 채널 중 하나를 알파 채널에 매핑하려는 것처럼 들립니다. 'color.a = color.b' 또는'color.a = 1-color.b'를 어떻게하면 좋을까요? 파란색 컴포넌트를 버리려면이를 0으로 설정하고 명시 적으로 'color.b = 0'으로 설정할 수 있어야합니다. 나는 그것이 도움이 될 것 같아 ... – IgorK

답변

1

는 소리 (아마이 그림은 내가 원하는 게 무엇인지 설명 할 수있다).

float4 subtract = ... ; // color you want to remove 
float4 color = ... ; 

color.r -= subtract.r; 
... // for b and g 

if (color.r < 0) 
    color.r = 0; 
... // for b and g 

이 후 다음 "빼기"어떤 컬러 선택하는 색상 선택기를 사용하고 제거한다. 희망은 당신이하려고하는 것입니다.