如何设置正交近/远剪裁平面以显示所有顶点

时间:2014-01-31 19:03:34

标签: c++ opengl rendering glm-math

我使用glm::ortho投影渲染场景。我希望渲染包括我绘制的每个顶点而不添加不必要的深度(即具有最小深度缓冲区分辨率影响)。

我已经看过this关于透视投影的类似问题的帖子,但我正在寻找正投影中的近剪裁平面值和远剪裁平面值。

我可以使用viewMatrix计算每个顶点的z值,将顶点转换为屏幕坐标。在伪代码中:

float near;
float far;

for (each glm::vec4 vertex)
{
    glm::vec4 trans = viewMatrix * vertex;
    // invert for z-buffer
    trans.z = -trans.z;
    if (trans.z < near)
        near = trans.z;
    if (trans.z > far)
        far = trans.z;
}

这样,nearfar分别代表屏幕坐标中最近和最远顶点的z值。

但是当我在zNear矩阵中将这些值用作zFarglm::ortho时,大部分渲染仍然会被剪裁。我错过了什么?

0 个答案:

没有答案