问题标签 [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 投票
1 回答
122 浏览

c++ - 当我更改 gluLookAt 时,我只能看到一个点

我试图展示一个由 7600700 个点组成的 3D 矩阵,我想获得一个表面为黑色,内部为红色的平行六面体。我有平行六面体,它的表面是黑色的,里面是红色的,我使用三个不同的窗口来显示三个不同的平面图,这些平面图将平行六面体切开,按下一个键就可以沿着一个方向移动(在一个窗口中沿着 x,在另一个沿 y 轴和沿 z 轴的第三个)一次观看一个部分。沿 z 和 x 移动不会给我带来任何问题,我可以正确地看到切片计划,但是当我尝试在第三个窗口中显示某些内容时(允许我沿 y 坐标移动的窗口将平行六面体与 xz计划)我得到不同的东西。如果我写

我只得到一个点,但如果我写

或者

我有一个计划。我的平行六面体由 x 的 170 个值、y 的 170 个值和 z 的 263 个值组成,所以我通常以这种方式设置 gluLookAt 的三个参数:我将沿其移动的坐标加倍,将另一个减半两个坐标。这是我的一段代码:

谢谢您的帮助!!!

0 投票
1 回答
602 浏览

opengl - 使用 gluLookat 和 glMultMatrixf 以自己的坐标旋转相机

我必须更改使用gluLookatand构建的相机实现glMultmatrixf

实现的相机是一个轨迹球相机,其中相机围绕一个点旋转。

相机的方向是

然后是

围绕点移动相机,transformViewMatrix从鼠标坐标计算


我必须将 Oculus Rift 与相机集成,以便相机可以原地旋转而不是围绕一个点旋转。

我可以从 Oculus 传感器获得一个旋转矩阵,rotOculus.

我尝试乘以transforViewMatrix.rotOculus

但要知道我正在看的物体是原地旋转而不是相机

然后我尝试用 分配transformViewMatrixrotOculus但这与用鼠标旋转轨迹球相同,只是改为 Oculus。

我认为为了现场旋转相机,我需要将相机转换为原点pCamera,那么glMultMatrixf(rotOculus)

但是我无法访问如何订购glTranslate, gluLookAt,glMultMatrixf方法,因为这些方法是在 dll 中实现的,我只能更改pCamera, pTarget,upviewTransformMatrix.

谁能指出在这种情况下我如何可以现场旋转相机?谢谢你。

0 投票
1 回答
1464 浏览

python - 如何在 PyOpenGL 中使用 gluLookAt?

我正在尝试学习 PyOpenGL,但我不确定如何使用 gluLookAt 来移动相机。我有一个图像显示,但我想我可能会丢失一些允许我使用 gluLookAt 的东西?传入的文字墙,我不确定问题可能出在哪里。我已经删除了着色器和纹理代码,因为我认为它不相关,但如果是,我可以发布它。

无论我修改什么参数,主游戏循环中的 gluLookAt 似乎都没有做任何事情。用按键更改 camX 不会影响任何东西,它只是一直直视表面。据我了解,gluLookAt 的前三个输入应该是“相机”的位置,对吗?因此,如果它正在寻找原点并且相机的 X 位置在移动,它应该在旋转和移动表面,对吗?在设置对象以允许它与 gluLookAt 一起工作时,我需要做些什么特别的事情吗?在调用它以将转换应用于某些东西之后我是否必须做一些事情?它需要在对象的绘制代码中,还是在游戏循环中?

0 投票
0 回答
235 浏览

c++ - 如何旋转相机并向前移动方向(glulookat)

// 我的全局变量

// 我在渲染函数中的 glulookat 函数

结果是相机旋转但只向一个方向前进

0 投票
1 回答
394 浏览

opengl - OpenGL - 错误的对象定位 - gluLookAt()

我从大学得到了一个小例子,必须做一个太阳系的小例子,物体必须旋转等等。问题是当我不调用 GluLookAt() 时一切看起来都很好,但我想改变视图当我调用该函数时,会出现一个轨道完全奇怪地呈现。我不知道问题是由于第一个轨道的创建错误,还是 gluLookAt 参数中的正确值。任何人都可以帮忙吗?

这是不调用 gluLookAt() 时的样子:

这是 gluLookAt() 之后的样子:

这是代码:

0 投票
1 回答
942 浏览

opengl - OpenGL LookAt 混淆

我在网上读到,如果我们想直接计算世界以查看矩阵,我们可以使用 OpenGL 的 LookAt 函数如果你有相机位置,相机正在看的位置和一个向上向量。

但是,这是我的困惑,该函数包含以下内容:

如果我的相机只是用一些任意 z 缓冲区值查看正 z 轴,那么“vAt”向量是什么?我知道它可以告诉你相机正在看哪个点,但是如果我只是沿着 z 轴而不是任何特定点看,那么向量会是什么?

0 投票
1 回答
513 浏览

python - 是否可以将 gluLookAt 与顶点着色器一起使用?

经过相当长的 Google 会话后,我已经受够了!

我有一个带有一些简单 Quad 的 python/opengl 应用程序,我使用 gluLookAt 在场景中移动。然后我在其中一个 Quad 上只需要 1 个纹理,所以我现在显然为这个单个 Quad 使用了着色器程序。

现在,当我使用 gluLookAt 时,带有纹理的四边形不会移动,我也可以理解。

现在有什么方法可以让 gluLookAt 函数与着色器程序一起工作,获取当前矩阵堆栈,这样我就可以用它来提供着色器程序,或者我必须像他一样重写洞应用程序并重新发明 glulookup 函数(在着色器或 CPU 中)?

EDIT1: 我使用:

EDIT2(我的解决方案):

自从我打开这个帖子以来,有些事情发生了变化,但在您的指导下,我设法获得了一个现代且稳定的解决方案。

我必须绘制 3 个主要组件。一个静态场,一些线(为了更好的可视化)和一些可移动的四边形。

该字段现在一次写入数组中的 VBO。(与单个绘图命令相比有重大改进)

可移动的方块和线条的工作原理相同,但它们是动态的,必须随每一帧重新上传。

Foreach 类型的对象我有一个顶点 + 片段着色器程序。我知道我可以只使用一个大的,但这不是应该的。

每个矩阵(模型、视图、投影)都分配给一个制服,然后在顶点着色器中与来自 VBO 的顶点相乘。

场顶点着色器(示例):

我要求的不是正确的方法。(结合新旧 OpenGL)不幸的是,我不能按原样分享孔代码,但我在这里你可以找到所有 opengl 关键代码:

顶点/片段着色器程序加载器:

链接到要点

初始化顶点/片段着色器(在本例中为字段)

屏幕绘制周期

这现在只是 psydo 代码:

所以 SetCamera 设置了 ViewMat 和 ProjectionMat。

绘制场例程

使用此函数,我将从 VBO 中绘制顶点。

使用的图书馆:

0 投票
2 回答
390 浏览

opengl - OpenGL 使用 gluLookAt 后什么也不渲染

这是我的源代码 如果我在没有该功能的情况下构建这个源代码,我只能看到 2 行。但我想看到'z'轴。

所以我添加了这个gluLookAt()功能,但我只能看到黑屏。

我的代码有什么问题?难道是相机的视角不对?它是在 MFC 对话框中创建的。请帮我。

0 投票
0 回答
238 浏览

opengl - pyOpenGL每次调用glReadPixels的时候都要画一个对象吗?

我想获取从 3D 对象的不同视图中捕获的深度缓冲区图像。为此,pyOpenGL我使用以下代码

代码链接:https ://www.linux.com/blog/python-stl-model-loading-and-display-opengl

我用不同的观点来调用这个函数LookAt_x, LookAt_y, LookAt_z. 但是,每次绘制对象都需要花费太多时间。

有没有一种可能的方法,一旦绘制了对象,只需改变视点即可获得深度图像?

0 投票
1 回答
455 浏览

opengl - 为什么在 OpenGL 中使用 glm::LookAt?

在阅读了 OpenGL 中的坐标系之后,我想将相机移动到世界各地,我只需要转换视图坐标。如果我说 use view = glm::translate(view, glm::vec3(0, 0, -50));,我将相机向后平移 50 个单位(通过将世界向前平移 50 个单位)。在我想通了之后,我遇到了 LookAt 函数。我不明白为什么我需要使用这个功能,如果我可以通过平移和旋转视图来移动我的相机。整个事情有点难以理解,所以如果这没有多大意义,我很抱歉!