【问题标题】:Finding the pixel color in a specific coordinate from a sampler2D using GLSL使用 GLSL 从 sampler2D 中查找特定坐标中的像素颜色
【发布时间】:2016-10-01 04:10:44
【问题描述】:

我的场景中有一个 3D 对象,该对象的片段着色器接收到一个与屏幕大小相同的纹理。我想从当前片段中获取坐标,并在同一位置找到图像上的颜色信息。这可能吗?有人能指出我正确的方向吗?

【问题讨论】:

    标签: opengl glsl fragment-shader


    【解决方案1】:

    片段着色器有一个名为 gl_FragCoord 的内置值,它提供目标片段的像素坐标。您必须将其除以视口的宽度和高度以获取纹理坐标以进行查找。这是一个简短的例子:

    uniform vec2 resolution;
    uniform sampler2D backbuffer;
    
    void main( void ) {
        vec2 position = ( gl_FragCoord.xy / resolution.xy );
        vec4 color = texture2D(backbuffer, position);
        // ... do something with it ...
    }
    

    如需完整的工作示例,请在支持 WebGL 的浏览器中尝试:

    http://glslsandbox.com/e#375.15

    【讨论】:

    • 我不敢相信它这么容易,非常感谢@emackey,我已经尝试了好几天了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    相关资源
    最近更新 更多