shaders에 기반한 조명 시스템을 만들고 싶습니다 .http : //stackoverflow.com/editing-help 이를 위해 텍스처에 특정 기능을 적용해야합니다. C#/XNA의 셰이더 알고리즘을 통해 텍스처를 전달하는 방법은 무엇입니까? 나는 이것을 시도했다 :Texture에서 shader를 사용하는 방법?
foreach (EffectPass pass in effect.Techniques[0].Passes)
{
pass.Apply();
}
spriteBatch.Draw(shadowmap,
new Rectangle(0, 0, range * 2, range * 2),
new Rectangle((int)screenPos.X - range, (int)screenPos.Y - range, 2 * range, 2 * range),
Color.White);
그러나 그것은 작동하지 않는다. 나는 또한 이것을 시도했다 :
spriteBatch.Begin();
spriteBatch.Draw(shadowmap,
new Rectangle(0, 0, range * 2, range * 2),
new Rectangle((int)screenPos.X - range, (int)screenPos.Y - range, 2 * range, 2 * range),
Color.White);
spriteBatch.End();
graphicsDevice.SetRenderTarget(null);
effect.Parameters["tex"].SetValue(area);
foreach (EffectPass pass in effect.Techniques[0].Passes)
{
pass.Apply();
}
그러나 이것도 아무것도하지 않는다. 2/3 알고리즘 패스를 통해 텍스처를 전달해야하므로 텍스처에 임의로 쉐이더를 적용 할 방법이 필요합니다.이 방법이 있습니까?
편집 :
texture tex;
sampler input : tex;
float red;
float2 mousepos;
float4 PixelShaderFunction(float2 coords: TEXCOORD0) : COLOR0
{
float4 color;
color=tex2D(input,coords.xy);
color.r=0.9;
return color;
}
technique Technique1
{
pass Pass1
{
PixelShader = compile ps_2_0 PixelShaderFunction();
}
}
틀린 링크를 게시했습니다. 게시물을 편집하거나 댓글로 추가 할 수 있습니까? –