vec2 gl_FragCoord
Restituirà la posizione del frammento sullo schermo in pixel. Se si passa uniforme vec2 screenResolution
allora si potrebbe giocare con quei due valori per determinare dove esattamente sullo schermo è pixel, in quale parte e così via.
Questa è una variabile incorporata, quindi è possibile utilizzarla ogni volta che si desidera in framment shader.
Ecco un esempio di utilizzo solo per dimostrare: http://goo.gl/AG7UO
Se volete woorld coordinate del frammento, allora dovreste usare varying
variabile.
Vertex Shader:
varying vec3 vPos;
attribute vec3 aVertexCoord;
uniform mat4 uMVMat;
uniform mat4 uProjMat;
void main() {
vPos = uMVMat * aVertexPos;
gl_Position = uProjMat * vPos;
}
Fragment Shader:
varying vec3 vPos;
void main() {
// do something
}
Spero che questo aiuti.
fonte
2013-06-27 09:25:55