时有可能使用像素着色器子画面内?

我已创建一个简单的像素着色器,这只是写入红色,为 测试。 我已经被包围我Sprite.DrawImage(TEX,...)调用 effect.Begin(...),BeginPass(0),和EndPass(),结束(), 但我的着色器似乎并没有被使用的:我的纹理刚刚绘制 通常

有帮助吗?

解决方案

我不知道你使用的是什么语言。我会认为这是一个问题XNA。

  

是否有可能使用像素着色器   子画面内?

是,可以加载着色器文件(HLSL,直至并包括在XNA着色器模型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();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top