- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的老师说它们可以互换使用来影响投影矩阵。他认为 gluLookAt()
之所以优选使用,是因为它“由于能够定义视角而相对简单”。这是真的?我见过同时使用 gluLookAt()
的代码示例和 glFrustum()
我想知道为什么程序员会混合它们。
就像在红皮书的cube.c例子中出现的一样:
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glLoadIdentity();
gluLookAt(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
**//why isn't this a call to glFrustum?**
glScalef(1.0, 2.0, 1.0);
glutWireCube(1.0);
glFlush();
}
void reshape(int w, int h)
{
glViewport(0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(-1.0, 1.0, -1.0, 1.0, 1.5, 20.0);
//why isn't this a call a call to gluLookAt()?
glMatrixMode(GL_MODELVIEW);
}
最佳答案
两者 glFrustum
和 gluLookAt
执行简单的矩阵乘法。检查这些矩阵的方程的手册页:
gluLookAt
glFrustum
这两个都可以用 glMultMatrix*
代替称呼。
最重要的区别是glFrustum
大部分时间用于建立透视投影矩阵(由 gluPerspective
内部使用),以及 gluLookAt
是一种用于指定模型 View 矩阵的便捷方法(通常:实现相机)。
关于opengl - gluLookAt() 和 glFrustum() 之间有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4241210/
根据 MSDN,我们将当前矩阵与透视矩阵相乘。我们在这里谈论什么矩阵?同样来自 MSDN: "The glFrustum function multiplies the current matrix
我正在尝试使用 C++ 和 openGL 创建一个 3D 操作程序。我对 openGL 比较陌生,所以我经常需要查阅文档才能找到正确的函数来完成我想做的事情。我认为我对正交投影和透视投影有很好的理解(
关于使用 glFrustum, glMatrixMode(GL_PROJECTION); glLoadIdentity(); glFrustum(-1, 1, -1, 1, 0.1, 1000.0);
我有这个代码: /* * This is a simple program that computes FPS * by means of a circular buffer */ #inclu
目前我将 glFrustum 设置为 glFrustum(0, 100.0, 0, 100.0, -50, 50); 我的图像是一个矩形立方体,尺寸为:当形状的尺寸小于查看框时,为什么我看不到图像?
我刚开始阅读有关 OpenGL 的主题,特别是关于 Viewing 的内容满足我目前的需求。我正在尝试理解 glFrustum 以了解我在屏幕上绘制的对象的透视投影,据我所知,glFrustum 会使
我正在尝试使用 OpenGL 对场景进行离轴投影,并且我阅读了文档给 Robert Kooima's off-axis projection并且现在对实际必须做的事情有了更好的了解,但仍有一些我在这里
我有一个程序,可以根据用户的位置在屏幕上渲染场景。当用户改变位置时,平截头体改变以提供离轴投影。我想利用该技术在三个不同的显示器上工作,将一个更大的场景拼接在一起,具有以下类型: 想象一下在三个显示器
我使用 OpenGL 绘制了几个二维形状现在我想添加捏/缩放。我的观点是透视图(顶 View )。我假设它是 3D,z 轴 = 0。 现在,我应该如何更改 glfrustum 并在我的 Activit
我正在尝试使用 glFrustum 进行透视投影,据我所知,glFrustum 像 glOrtho 可用于修改我们的映射所需的坐标系到实际屏幕坐标(如 Blue book 中所读)。所以,如果我执行
我的老师说它们可以互换使用来影响投影矩阵。他认为 gluLookAt()之所以优选使用,是因为它“由于能够定义视角而相对简单”。这是真的?我见过同时使用 gluLookAt() 的代码示例和 glFr
我想知道 gluLookAt 和 glFrustum 是否会扭曲渲染的图片。 场景是这样渲染的: 这是呈现它的代码。 InitCamera 被调用一次 并且,据我现在的理解,应该设置一个矩阵,就好像我
我正在调试我想查看深度图像扫描的代码,但我的相机设置不允许我看到扫描。因此,我正在玩弄相机设置。我在 (30,120,800) 处创建了一个巨大的点,我可以使用 gluLookAt 看到它。 glFr
我试图在窗口上画一条线,但它没有用 glFrustum() 显示。我在 glOrtho() 中使用了相同的代码,它确实显示了该行。我还需要设置什么才能让我的线路显示在设置窗口上吗? void init
原始问题/代码 我正在微调 3D 对象的渲染并尝试使用 gluLookAt 实现相机跟随对象,因为对象的中心 y 位置一旦达到其最大高度就会不断增加。下面是我设置 ModelView 和投影矩阵的代码
我正在编写一个太空探索应用程序。我决定以光年为单位,并准确地模拟了恒星之间的距离。经过修补和大量艰巨的工作(主要是学习绳索),我让相机从穿越宇宙的星舰的角度正常工作。 最初我没有注意 gluPersp
我只是使用 LWJGL 3 设置一个简单的渲染器,当它在我的外部显示器上运行时,它看起来像我预期的那样,但是当在我的 Macbook 上调整它的大小时,它会缩小视口(viewport)。然后,如果我移
我正在完成一项绘制线框 GLUT 标准对象的任务。这看起来很简单,但我们被告知我们不能使用 gluAtLook()、glOrtho()、glFrustrum,但我们必须使用 glTranslate()
我一直在使用 OpenGL 3.0,让我困惑的一件事是新的 OpenGL 如何处理视锥体。如果您应该为透视计算创建自己的矩阵,那么如何向 OpenGL 指定 zFar 和 zNear 平面距离是多少?
概述: 我正在尝试创建一个类似于此的 3D 应用程序: www.youtube.com/watch?v=h9kPI7_vhAU. 我正在使用 OpenCV2.2、Python2.7 和 pyOpenG
我是一名优秀的程序员,十分优秀!