SFML加载着色器错误
SFML loading shader error
所以我正在使用SFML制作我的游戏项目,我试图实现一个模糊着色器。我不知道为什么,但是这段代码使程序显示一个白屏,然后关闭。我甚至没有使用着色器来绘制任何东西,只是我试图加载它的事实给出了意想不到的结果:(。
void button::setText(std::string _text)
{
text.setString(_text);
text.setFont(font);
text.setCharacterSize(80);
text.move(0,-(text.getLocalBounds().top));
text.setColor(sf::Color(255,255,255,255));
width=text.getLocalBounds().width+text.getLocalBounds().left;
height=text.getLocalBounds().height+text.getLocalBounds().top;
rndtexture.create(width, height);
rndtexture.setSmooth(true);
rndtexture.clear(sf::Color::Transparent);
rndtexture.draw(text);
rndtexture.display();
rTexture=rndtexture.getTexture();
spriteR.setTexture(rTexture);
rndtexture.clear(sf::Color::Transparent);
text.setColor(sf::Color(0,0,0,100));
rndtexture.draw(text);
rndtexture.display();
pTexture=rndtexture.getTexture();
spriteP.setTexture(pTexture);
//commenting this out will make it work just fine
if (!shader.loadFromFile("shader.frag", sf::Shader::Type::Fragment))
{
std::cout<<"lol";
}
//
shader.setParameter("texture", sf::Shader::CurrentTexture);
shader.setParameter("blur_radius", 5.0);
}
这是我的着色器文件:
uniform sampler2D texture;
uniform float blur_radius;
void main()
{
vec2 offx = vec2(blur_radius, 0.0);
vec2 offy = vec2(0.0, blur_radius);
vec4 pixel = texture2D(texture, gl_TexCoord[0].xy) * 4.0 +
texture2D(texture, gl_TexCoord[0].xy - offx) * 2.0 +
texture2D(texture, gl_TexCoord[0].xy + offx) * 2.0 +
texture2D(texture, gl_TexCoord[0].xy - offy) * 2.0 +
texture2D(texture, gl_TexCoord[0].xy + offy) * 2.0 +
texture2D(texture, gl_TexCoord[0].xy - offx - offy) * 1.0 +
texture2D(texture, gl_TexCoord[0].xy - offx + offy) * 1.0 +
texture2D(texture, gl_TexCoord[0].xy + offx - offy) * 1.0 +
texture2D(texture, gl_TexCoord[0].xy + offx + offy) * 1.0;
gl_FragColor = gl_Color * (pixel / 16.0);
}
这是怎么了…div ?
调用
返回值是什么?sf::Shader::isAvailable()
确保在调用着色器程序之前可以使用它。此外,着色器不会使程序崩溃,所以它绝对不是你的着色器。如果你的着色器有问题,它不会编译。如果你的着色器没有编译,那么SFML会自动切换到内置的着色器。
相关文章:
- 为什么加载SDF会导致Mobilizer创建闭环错误
- C++atioglxx.pdb未加载错误glBufferData OpenGL
- 当我尝试加载内核模块时,如何修复C++中的这个 malloc() 错误?
- 为什么会出现 gettnig 运行时错误:加载类型为"_Bit_type"(stl_bvector.h) 的空指针?
- 加载共享库时C++错误:libopencv_ximgproc.so.4.4
- GLFW DDS 加载函数的 OpenGL 链路错误
- 在 Linux 中使用 -fvisibility=hidden 编译时出现库加载错误
- 从 C 可执行文件加载动态库时收到错误C++"undefined symbol"
- 0xc000007b Windows 上的 OpenCL 库的加载时间错误
- 使用 TTF_RenderText() 加载字体时获取段错误 TTF_OpenFontRW()
- 是什么导致 glTexSubImage1D() - 加载纹理时在此示例中出现GL_INVALID_VALUE错误?
- 增强序列化,按基类型加载存档类会产生错误的数据
- 使用C++处理火狐错误消息"无法加载XPCOM"
- SFML 加载从文件不起作用,奇怪的错误
- 调用提取重加载器会产生对"运算符"的未定义引用错误>>
- Java JNI GDAL 本机库在重新部署为 Web 应用程序时出现类加载器错误
- 如何更改路径以修复错误"./main:加载共享库 libmkl_core.so 时出错?
- dll 生成成功,但在加载 dll 时执行错误
- 在动态加载的位置无关的可执行文件中分离错误
- 利用Devil将纹理分段错误加载到OpenGL中