2012-02-29 155 views

回答

12

片段着色器有一个名为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

+0

我简直不敢相信它是如此容易,非常感谢@emackey ,我一直试图这样做几天。 – 2012-03-01 03:01:48

相关问题