Opengl glViewport和glFrustum之间的连接到底是什么?

Opengl glViewport和glFrustum之间的连接到底是什么?,opengl,opengl-es,opengl-es-1.1,frustum,Opengl,Opengl Es,Opengl Es 1.1,Frustum,假设我想画以下几行: const GLfloat lineX[] = { FrustumData.left * FrustumData.ratio , (FrustumData.top + FrustumData.bottom) / 2 * FrustumData.ratio, FrustumData.zFar, //point A FrustumData.right * FrustumData.ratio , (FrustumData.top + Frus

假设我想画以下几行:

   const GLfloat lineX[] = {
        FrustumData.left * FrustumData.ratio , (FrustumData.top + FrustumData.bottom) / 2 * FrustumData.ratio, FrustumData.zFar, //point A
        FrustumData.right * FrustumData.ratio , (FrustumData.top + FrustumData.bottom) / 2 * FrustumData.ratio, FrustumData.zFar //point B
    };
    const GLfloat lineY[] = {
        (FrustumData.left + FrustumData.right) / 2 * FrustumData.ratio , FrustumData.bottom * FrustumData.ratio, FrustumData.zFar, //point A
        (FrustumData.left + FrustumData.right) / 2 * FrustumData.ratio , FrustumData.top * FrustumData.ratio, FrustumData.zFar //point B
    };
    const GLfloat lineZ[] = {
        (FrustumData.left + FrustumData.right) / 2 * FrustumData.ratio, (FrustumData.top + FrustumData.bottom) / 2 * FrustumData.ratio, FrustumData.zFar, //point A
        (FrustumData.left + FrustumData.right) / 2 , (FrustumData.top + FrustumData.bottom) / 2 , FrustumData.zNear //point B
    };
其中比率=zFar/zNear,其他所有参数均为glFrustum参数

我不应该看到任何平截头体参数选择的线条吗,或者它以某种方式取决于视口

因为我现在没有看到他们,我不明白为什么


谢谢。

两者之间没有直接联系。但它们都对屏幕上显示的内容有直接影响

从本质上讲,glFrustum是一个函数,用于创建某种类型的投影变换,即创建透视图的投影变换。我建议再读一本

我在回答中写道:

此变换将眼睛空间中的某些体积映射到具有特定边界的特定体积,几何体将剪裁到该体积

glFrustum正在定义这样一个卷。它看起来像一个棱锥体,其尖端切割为(平截头体),尖端位于眼空间原点,“切割”是近剪裁平面,棱锥体的底部是远剪裁平面。参数left、right、bottom和top以眼睛空间单位定义近剪裁平面的范围