Я не уверен, какой язык вы используете. Я предполагаю, что это вопрос XNA.
Возможно ли использовать пиксельный шейдер
внутри спрайта?
Да, вы можете загрузить файл шейдера (HLSL, вплоть до модели шейдера 3 включительно в XNA) и вызвать 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();