glsl頂点シェーダーの現在の頂点位置にあるピクセルの投影ピラミッドのアイスペース幅を計算したいのですが、計算が正しくできないようです。これは明らかに間違った例です:
// GLSL VERTEX SHADER
#version 410 compatibility
uniform vec4 viewport; // same as glViewport
in vec4 gl_Vertex;
void main ()
{
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
float pixelWidth = gl_Position.z / viewport.z;
<snip>
ただし、これはFOVまたはクリッピングプレーンを考慮していません。