着色器坐标

⌚Time: 2025-03-15 11:27:00

👨‍💻Author: Jack Ge

今日我用着色器在屏幕上画圆,发现只画了1/4圆,我反复问ai代码。他并没有找出问题。我也没有看出问题。

后来我才意识到是顶点着色器的问题。这个ai生成的顶点着色器有问题。我直接用了。将顶点着色器删除使用默认着色器就成功了。

我总结一下坐标知识:

片段着色器获取像素纹理颜色

#version 330 core  
uniform sampler2D texture; // 纹理  
void main() {  
    vec2 texCoords = gl_TexCoord[0].xy;
    vec4 pixel = texture2D(texture, texCoords);

    ...
}

sfml创造纹理并传入着色器

    sf::Texture texture;
        if (!texture.loadFromFile("pic.jpg"))
        {
                // 处理加载纹理失败的情况
                return -1;
        }
     // 通过设置纹理参数来传递纹理给着色器
        shader.setUniform("texture", texture);

归一化坐标


uniform vec2 resolution;//传入的屏幕分辨率

void main()
{
    vec2 uv = gl_FragCoord.xy / resolution;
    ...
}