1
I는 다음과 같습니다 사용자 정의 쉐이더 효과를 만들었습니다 : 내가 만들려고 할 때여러 셰이더 효과 인스턴스를 만드는 방법은 무엇입니까?
나는이 쉐이더 효과의 약간 다른 변형을 적용 할 필요가
class MyShaderEffect : ShaderEffect
{
private PixelShader _pixelShader = new PixelShader();
public readonly DependencyProperty InputProperty =
ShaderEffect.RegisterPixelShaderSamplerProperty("Input", typeof(MyShaderEffect), 0);
public MyShaderEffect()
{
_pixelShader.UriSource = new Uri("MyShader.ps", UriKind.Relative);
this.PixelShader = _pixelShader;
this.UpdateShaderValue(InputProperty);
}
public Brush Input
{
get { return (Brush)this.GetValue(InputProperty); }
set { this.SetValue(InputProperty, value); }
}
}
다른 이미지 (그것이 어떤 매개 변수가 있습니다)하지만를 두 번째 MyShaderEffect 개체, " '입력'속성이 이미 등록되었습니다."예외가 발생합니다.
하나의 셰이더에서 여러 ShaderEffect 인스턴스를 만들 수있는 방법이 있습니까?
은 좋은 일이, 내가 다른 부동산에 대한 문제 ... –
그러나 먹으 렴 생각 차렸다? 셰이더 매개 변수를 설정하기 위해 그것들을 사용합니다. 정적으로 만들면 다른 인스턴스에 대한 셰이더 동작을 다르게 할 수 없습니다. – yadda
이 필드는 속성의 식별자입니다. GetValue 및 SetValue를 사용하여 속성 값에 액세스하는 데 사용되는 키입니다. 'Input' 속성 자체는 정적이 아닙니다. –