2013-06-27 11 views

risposta

11
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.

Problemi correlati