我想在 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 或剪裁平面。