好的,所以我遵循这个教程,水反射XNA,当我调整代码的一元名,我不能得到最终的结果。下面是我的LoadContent代码:
protected override void LoadContent()
{
spriteBatch = new SpriteBatch(GraphicsDevice);
texture = Content.Load<Texture2D>("test");
effect = Content.Load<Effect>("LinearFade");
effect.Parameters["Visibility"].SetValue(0.7f);
}我的抽签代码是:
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend);
//effect.CurrentTechnique.Passes[0].Apply();
spriteBatch.Draw(texture, new Vector2(texturePos.X, texturePos.Y + texture.Height), null, Color.White * 0.5f, 0f, Vector2.Zero, 1, SpriteEffects.FlipVertically, 0f);
spriteBatch.End();
spriteBatch.Begin();
spriteBatch.Draw(texture, texturePos, Color.White);
spriteBatch.End();
base.Draw(gameTime);
}最后是我的.fx文件:LinearFade
所以当我应用效果的时候问题就开始了。我的纹理消失了,如果我在画法中评论效果部分,我会得到带有淡出的镜像(与α"Color.White *0.5F“相混淆),但没有褪色效果,就像他在图片中间到图片底部的教程中所做的那样。我仍然没有太多的经验,在单一游戏和着色,但我正在学习。
如果any1知道如何解决这个问题,或者如何使它像上面的教程一样,那就太好了。顺便说一句,不是我的主要语言,而是英语不好。
发布于 2016-06-07 10:31:02
好的,不需要帮助,经过2天的思考,我知道了答案。问题是,您需要默认的顶点着色器输入和输出,然后着色器工作。因此,如果any1在单游戏中的着色器有问题,首先看看你是否有默认的顶点输入和输出。会把解决方案代码,所以如果some1做同样的教程或类似的事情,让他们知道什么是问题。
解决方案:工作Effect.fx
https://stackoverflow.com/questions/37667256
复制相似问题