0

sf::ShapeSFML グラフィック ライブラリの の使用について質問があります。私のゲームでは、sf::RectangleShapes. たとえば、UserInterface やプレーヤーです。ここにコードの平和があります:

std::unique_ptr<sf::RectangleShape> rect;
sf::RenderTarget &target;
sf::RenderStates &stats;

void SfUIComponents::SfBaseRectangle::draw()
{
        target.draw(*rect, stats);
}

次のようなファイルでシェーダーをロードすると:

If(shader->loadFromFile(vertex, fragment)){ loaded = true;}

effect->loadFromFile("wave.vert","blur.frag"); 

長方形を描く前に:

void SfShader::activate()
{
    stats.shader = shader;
}

私が描いたテキストも効果を示していますが、長方形は見えません。したがって、コードを表示せずに質問します。白色で単純に塗りつぶされた長方形に sfml シェーダを使用することは可能ですか?

4

1 に答える 1

1

レンダーに描画するときにシェーダーを使用できます。「sf::RenderState」を作成し、シェーダーを設定することでこれを行うことができます:

sf::RenderState rs;
sf::Shader effect;

effect.loadFromFile("wave.vert","blur.frag");

rs.shader = &effect;

window.draw(rect , rs);

RenderState からの情報 (テクスチャなど) をこれ以上使用する必要がない場合は、シェーダーを描画関数に直接渡すことができます。

sf::Shader effect;

effect.loadFromFile("wave.vert","blur.frag");

window.draw(rect , &effect);
于 2013-04-09T11:09:36.517 に答える