我希望在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>
但这并不能解释视野或剪裁平面的问题。