gpt4 book ai didi

c++ - sf::Shader 和 sf::RectangleShape

转载 作者:行者123 更新时间:2023-11-28 07:41:11 27 4
gpt4 key购买 nike

我对使用 SFML 图形库中的 sf::Shape 有疑问。在我的游戏中,我使用 sf::RectangleShapes。例如用户界面或播放器。这是一个和平的代码:

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;
}

我绘制的文本也显示了效果,但矩形不可见。所以 ms 问题没有显示更多代码。是否可以将 sfml 着色器用于简单填充白色的矩形?

最佳答案

您可以在绘制到渲染中时使用着色器。您可以通过创建“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);

关于c++ - sf::Shader 和 sf::RectangleShape,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15820800/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com