【问题标题】:Need help - Monogame 2d water reflection需要帮助 - Monogame 2d 水中倒影
【发布时间】:2016-06-06 21:36:05
【问题描述】:

好的,所以我正在关注本教程Water Reflection XNA,当我使用 monogame 调整代码时,我无法获得最终结果。 所以这是我的 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

所以当我应用效果时问题就开始了。我的纹理只是消失了,如果我在 Draw 方法中评论效果部分,我会得到带有淡入淡出的镜像(弄乱 alpha“Color.White * 0.5f”),但没有像他在教程中从图片中间到图片底部那样的淡化效果.我在单体游戏和着色器方面仍然没有太多经验,但我正在学习。

如果有人知道如何解决这个问题或如何使它像上面的教程一样,那就太好了。顺便说一句,英语不好不是我的主要语言。

【问题讨论】:

    标签: xna monogame hlsl


    【解决方案1】:

    好的,不需要帮助,经过 2 天的思考,我知道了答案。问题是您需要默认的顶点着色器输入和输出,然后着色器才能工作。因此,如果任何 1 对 monogame 中的着色器有问题,请首先查看您是否有默认的顶点输入和输出。将放置解决方案代码,以便如果有人在做相同的教程或类似的事情,以便他们知道问题所在。

    解决方案:Working Effect.fx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-22
      • 2020-11-11
      • 2018-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-22
      相关资源
      最近更新 更多