小编Mer*_*rim的帖子

纹理已加载和绑定,但片段着色器不会渲染它

我正在尝试用FBO纹理绘制一个立方体.纹理被正确渲染(我可以在gDebugger中看到),但它不会在立方体上渲染.我认为这可能是FBO纹理的一个问题所以我加载了一个普通的纹理并尝试了它,但我得到了同样的问题,只是一个黑色的立方体.

单步执行gDebugger中的程序,我可以看到纹理都正确加载并绑定,但没有绘制任何内容.texcoords似乎也没有任何问题.请注意,我还尝试在片段着色器中输出纯色,它可以正常工作.

这是我的顶点着色器:

#version 420

uniform mat4 projection;
uniform mat4 view;
uniform mat4 model;

layout(location = 0) in vec3 vertex;
layout(location = 1) in vec2 texcoord;

out vec2 f_texcoord;

void main() {
    gl_Position = projection * view * model * vec4(vertex, 1.0);
    f_texcoord = texcoord;
}
Run Code Online (Sandbox Code Playgroud)

这是我的片段着色器:

#version 420

uniform sampler2D tex;

in vec2 f_texcoord;

out vec4 gl_FragColor;

void main() {
    gl_FragColor = texture2D(tex, f_texcoord);
}
Run Code Online (Sandbox Code Playgroud)

这是我绘制立方体的地方:

ShaderManager::Get("world")->Use();
glBindVertexArray(cube_vao);
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, tex);
glDrawArrays(GL_TRIANGLES, 0, 36);
glBindTexture(GL_TEXTURE_2D, 0);
glBindVertexArray(0);
Run Code Online (Sandbox Code Playgroud)

我必须是盲人,因为我看不出错误.

(另请注意,我正在使用SFML和GLEW进行上下文创建和扩展.) …

opengl glsl

7
推荐指数
1
解决办法
2283
查看次数

标签 统计

glsl ×1

opengl ×1