0
是否可以在sprite内使用像素着色器?是否可以在sprite内使用像素着色器?
我已经为 测试创建了一个简单的像素着色器,它只是写红色。 我已经用 effect.Begin(...),BeginPass(0)和EndPass(),End(), 包围了我的Sprite.DrawImage(tex,...),但我的着色器似乎不是使用:我的纹理通常只绘制 。
是否可以在sprite内使用像素着色器?是否可以在sprite内使用像素着色器?
我已经为 测试创建了一个简单的像素着色器,它只是写红色。 我已经用 effect.Begin(...),BeginPass(0)和EndPass(),End(), 包围了我的Sprite.DrawImage(tex,...),但我的着色器似乎不是使用:我的纹理通常只绘制 。
我不确定你使用的是什么语言。我会认为这是一个XNA问题。
是否可以在sprite中使用像素着色器 ?
是的,你可以加载着色器文件(HLSL,直至并包括在XNA的Shader Model 3)和呼叫spritebatch使用它。
如果您发布示例代码,我们可以更容易地查看是否有任何设置不正确。但是,看起来你有正确的顺序。我会检查着色器代码。
您的应用程序代码应该是这个样子:
Effect effect;
effect = Content.Load<Effect> ("customeffect"); //load "customeffect.fx"
effect.CurrentTechnique = effect.Techniques["customtechnique"];
effect.Begin();
foreach (EffectPass pass in effect.CurrentTechnique.Passes)
{
pass.Begin();
spriteBatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Immediate, SaveStateMode.None);
spriteBatch.Draw(texture, Vector2.Zero, null, Color.White, 0, new Vector2(20, 20), 1, SpriteEffects.None, 0);
spriteBatch.End();
pass.End();
}
effect.End();
thanx您的回复,但我使用托管DirectX,因此有可能在MDX使用? – Firoz 2009-11-19 07:36:26
是的,没有看到它不应该的原因。为什么不试试呢? – 2009-12-16 07:20:48