頂点シェーダーからフラグメント シェーダーにさまざまなビュー空間位置を渡すと、フラグメント シェーダーはカメラに対するフラグメントの位置 (0,0,0
ビュー空間内) を知ることができます。これは、ピクセルごとの照明などに役立ちます。例:
precision mediump float;
attribute vec3 vertex;
uniform mat4 pMatrix, mvMatrix;
varying vec4 pos;
void main() {
pos = (mvMatrix * vec4(vertex,1.0));
gl_Position = pMatrix * pos;
}
ただし、頂点シェーダーで をレンダリングgl_POINTS
して設定する場合gl_PointSize
、フラグメント シェーダーは各フラグメントの位置をどのように決定できますか (pos
上記の例で渡されたものはスプライトの中心点になります)。