问题标签 [glulookat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
7213 浏览

opengl - OpenGL gluLookAt() 未按预期工作

我在 OpenGL 的天空盒内制作过山车,并且没有太多关于它的功能或计算机图形的背景知识,这被证明是非常困难的。我使用 Catmull-Rom 样条插值绘制了一个过山车,并使用 glVertex3f 绘制了每个点。现在我想update()每 50 毫秒调用一个函数来围绕轨道移动相机。gluLookAt()正在产生奇怪的结果,要么从屏幕上删除轨道,要么产生黑屏,等等。我想我需要移动一些矩阵函数,但我不确定将每个函数放在哪里。到目前为止,这是我的代码:

这个想法是我保留了一个全局双端队列allpoints,其中包括样条曲线的控制点和插值点。完成后,我update()每 50 毫秒调用一次,并沿allpoints. 在项目的早期版本中,我可以看到过山车被正确绘制。这gluLookAt()似乎并不像我想要的那样工作。使用上面的代码,程序开始时相机用过山车的一部分看着天空盒的一侧,然后当update()被调用时,过山车消失但相机不动。我一直在搞乱我放置 OpenGL 矩阵函数的位置,并且根据它们的位置,有时update()也会导致空白屏幕。

0 投票
1 回答
359 浏览

c++ - gluLookAt 中的不连续性

这就是我计算视线向量和向上向量的方式。

倾角是视线矢量与 xz 平面的角度,方位角是 xz 平面中的角度。

这工作正常,直到我的倾角达到 225 度。在这一点上,由于某种原因,旋转出现了不连续性。(注意 225 度,我的意思是它超过了倒置点)

关于为什么会这样的任何想法?

编辑:没关系,想通了。方位角不需要 180 度。向上矢量倾斜。

0 投票
1 回答
3244 浏览

opengl - OpenGL 使用 gluLookat()

我需要 gluLookAt() 方面的帮助。我在调用 glOrtho() 后尝试使用它(我认为这是正确的),试图从 y 轴上略微抬高的视图向下查看 z 轴。根据我对 gluLookAt() 的了解,前三个参数是视图的来源或“眼睛”,接下来的三个参数是眼睛注视的位置,最后三个参数是视角?

我尝试了很多不同的设置,但无论如何都无法在屏幕上呈现任何内容,所有尝试都导致黑屏出现空白。我已经在网上搜索了整个例子来实践它的用法,除了函数的解释之外找不到任何东西(我认为我理解但无法开始工作)。

我不会发布我尝试过的任何代码,因为我尝试过的不同方法太多了,现在我留下了一堆乱七八糟的代码,坦率地说,我不想让任何人眼睛流血。

我的问题是,任何人都可以发布或更好地描述一个使用 gluLookAt() 的小程序的例子吗?

这是我目前拥有的糟糕的代码(仅用于测试):

0 投票
1 回答
398 浏览

c++ - 我们怎样才能制作聚光灯

我需要画路灯,但它照亮了整个环境,我不能让它看起来像一个聚光灯。下面的代码是我试过的

0 投票
3 回答
6116 浏览

opengl - gluLookAt() 最佳用法,在 GL_PROJECTION 矩阵或 GL_MODELVIEW 矩阵上

OpenGL 文档说 gluLookAt() 调用应该在 GL_MODELVIEW 矩阵上完成:

http://www.opengl.org/resources/faq/technical/viewing.htm

事实上,文档链接到一篇文章,该文章说在 GL_PROJECTION 矩阵上使用 gluLookAt() 非常糟糕:

帮助杜绝 GL_PROJECTION 滥用行为

另一方面,有很多教程和示例实际上在 GL_PROJECTION 矩阵上调用了 gluLookAt()。同时,虽然上面提到的文章确实说不要在 GL_PROJECTION 矩阵上使用它,但它说在大多数这样的用法中这样做没有明显的问题。

那么我的问题是:在现实生活项目中使用 gluLookAt() 的最佳方式是什么?在 GL_PROJECTION 矩阵上使用它真的有那么大的禁忌吗?

0 投票
1 回答
466 浏览

opengl - 如何确定OpenGL中视线平面的法线向量?

我正在为应用程序开发一种相机轨道功能,我需要知道视线平面的法线向量。我认为它可能与视线矢量相同,是吗?我不知道怎么解释,所以我画了一个小图:

img http://img714.imageshack.us/img714/6233/explanationo.jpg

0 投票
1 回答
748 浏览

android - OpenGL Android:X轴神秘翻转

我通过 OpenGL 在伪 2D 画布中显示四边形。为此,我通过以下方式使用正交投影:

显示的四边形的坐标是:

这个四边形呈现为 2 个三角形(我省去了代码)。我也在应用纹理,效果很好。“相机”在渲染四边形之前定义,如下所示:

如您所见,视口以 [-10, -10, 0] 为中心,应该以四边形的左下角为中心。但是,在渲染场景时,它看起来像这样:

OpenGL 截图

这似乎是右下角 - 但事实并非如此。我检查了它,结果发现 X 轴被翻转了。我在 gluLookAt 上做错了吗?还是我错过了什么?

0 投票
1 回答
1889 浏览

android - OpenGL ES:glOrtho() 显示对象,但 gluPerspective() 不显示

我正在展示一个带纹理的方格,以 [0,0,-10] 为中心,宽度和高度 = 10000。相机位于 [0,0,0] 并向下看负 z 轴(眼点 = [0, 0,0],中心=[0,0,-1]):

照明和深度测试被禁用。

在正交模式下,小队完美显示,具有纹理和所有 - 我什至可以缩放和平移。但是,当切换到透视模式时,通过:

那么视图只是空白。有没有人知道是什么原因造成的?

更新:

使用 glFrustum 而不是 gluPerspective,它可以工作:

但是为什么 gluPerspective 不显示任何内容?

0 投票
1 回答
335 浏览

opengl - OpenGL透视投影和相机位置

我正在用OpenGL中的一些地图图像渲染一个场景,并直接使用地图的纬度、经度作为坐标。所以我的场景不是从 0,0 开始,而是上升到宽度、高度。虽然我可以看到我的多边形(非常小),但我无法通过更改 gluLookAt() 中眼睛的 z 值来进行缩放。

0 投票
2 回答
1182 浏览

opengl - 设置opengl透视投影

我在设置观看投影时遇到问题。我正在绘制一个顶点为 (0, 0, 0) (0, 0, 1) (0, 1, 1) (0, 1, 0) (1, 0, 0) (1, 1, 0) 的立方体(1, 1, 1) 和 (1, 0, 1)。这就是我初始化视图的方式:

出于某种原因,立方体填满了整个屏幕。我尝试更改截锥体和lookAt 方法的值,并且立方体根本不可见,或者它填充了整个视口。在 glLookAt 中,我假设“眼睛”位于 (10, 10, 10) 并注视着立方体表面上的点 (0.5, 0.5, 0)。我认为这将提供足够的距离,以便整个立方体可见。我是否以错误的方式思考这个问题?我还尝试在 z 方向上移动立方体,使其位于 z = 10 到 z = 11 之间,在剪切平面中也是如此,但它给出了类似的结果。