2

モノゲームでシェーダーを使用する方法を教えてもらえますか?

このエラーがあります: https://gamedev.stackexchange.com/questions/46994/has-anyone-got-the-krypton-lighting-engine-working-in-monogame-for-windows-8

2MGFX を使用しようとしましたが、ツールから次のように報告されました。エフェクトには少なくとも 1 つのテクニックとパスが含まれている必要があります。ファイル myshader.fx からわかることから、そうです。

ここに私のシェーダーコードがあります:

sampler TextureSampler : register(s0);
float _valueAlpha = 1;
float _valueRGB = 1;

float4 main(float4 color : COLOR0, float2 texCoord : TEXCOORD0) : COLOR0
{
    // Look up the texture color.
    float4 tex = tex2D(TextureSampler, texCoord);

    // Convert it to greyscale. The constants 0.3, 0.59, and 0.11 are because
    // the human eye is more sensitive to green light, and less to blue.
    float greyscale = dot(tex.rgb, float3(0.3, 0.59, 0.11));

    // The input color alpha controls saturation level.
    tex.rgb = lerp(greyscale, tex.rgb *_valueRGB, color.a *_valueAlpha);

    return tex;
}
technique Technique1
{
    pass Pass1
    {
        PixelShader = compile ps_3_0 main();
    }
}

テクニックをTechniqueに、パスを に変更しようとしましPassたが、それでも「効果には少なくとも 1 つのテクニックとパスが含まれている必要があります」がスローされます。

4

1 に答える 1

2

私はそれを働かせました!:)

まず、2MGFX ツールを使用しました。次に、次のようにエフェクトをロードしました。

BinaryReader Reader = new BinaryReader(File.Open(@"Content\\myShader.mgfxo", FileMode.Open)); 
myShader = new Effect(GraphicsDevice, Reader.ReadBytes((int)Reader.BaseStream.Length)); 

それが他の誰かにも役立つことを願っています!:)

ありがとう!

于 2013-06-15T22:11:06.087 に答える