当前位置: 首页 > 面试题库 >

OpenGL获取投影矩阵

马博学
2023-03-14
问题内容

我试图在OpenGL中使用gluUnProject,首先我需要获取projectoin,model_view和viewort矩阵。根据我在网上找到的例子

 glGetFloatv(GL_PROJECTION_MATRIX, projection)
 glGetFloatv(GL_MODELVIEW_MATRIX, model_view)
 glGetInteger(GL_VIEWPORT, viewport)

但是我收到错误消息“ ValueError:glGetFloatv需要1个参数(pname),收到2:(GL_PROJECTION_MATRIX,[])”

那么,我应该使用什么来获取这些矩阵?


问题答案:

也许:

projection = glGetFloatv(GL_PROJECTION_MATRIX)
# and so on ...

之后在projection变量中应该是投影矩阵



 类似资料:
  • 我有一个基本的OpenGL应用程序,我想使用我的投影矩阵。 这是我的矩阵: (WorldCoordinates是Matrix4结构,它只包含一个名为m的变量,即浮点[4][4])(宽度和高度是两个s)。然后,我使用以下方法将此坐标应用于我的<code>顶点 (Shader是一个类,并且有一个绑定()方法,它只是glUseProgram)。 这是我的顶点着色器GLSL 使用这个,它不起作用。但将gl

  • 我使用OpenGL进行2D渲染,并希望使用实际像素坐标。我的意思是,我希望(0,0)位于窗口的左上角,而(宽度,高度)位于窗口右下角(其中宽度和高度是窗口的像素尺寸)。为了做到这一点,我使用了一个投影矩阵,该矩阵由glOrtho生成,然后传递给顶点着色器: 我使用的是LWJGL,它没有glm的绑定,所以我使用上面的OpenGL调用获得2D正交矩阵。我重置了投影矩阵,这样它就不会影响我以后的绘图调用

  • 有很多关于3D的opengl投影矩阵的很棒的教程,但我不是在做3D。我真的很难根据自己的喜好进行正交投影设置。 int宽=320;int高=480; 我使用这些设置创建了一个视图投影矩阵。 创建此视图和投影矩阵并将它们传递给gpu之后。 然后我创建一个从的四边形,以便它的原点位于中心。 然后我为四边形制作一个比例矩阵,这样我就可以在屏幕上看到它了。它呈现为一个完美的正方形,但当然glViewpor

  • 我制作了一个简单的OpenGL程序,在屏幕上绘制2D纹理。当你调整窗口大小时,它不能正确调整,所以要修复这个问题,我只需要再次运行投影矩阵代码: 但是,运行这段代码会扭曲图像。根据我的理解,为了使我能在屏幕上画出类似2D的效果,我的纹理是用正投影矩阵绘制的,这意味着有一个平面与窗口或类似我所画的东西“平行”。当我试图重新调整它以适应新的窗口大小时,它无法正确调整。这段代码出了什么问题?

  • 本章节主要给大家引入视图矩阵和投影矩阵两个新的概念,如果你没有图形学基础,对这两个概念暂时还没有认知,也没有关系。通过前面的学习相信你对平移、旋转等矩阵有了一定的认知,至于投影和视图矩阵和平移、旋转等模型矩阵一样也会对WebGL顶点进行坐标变换,至于如何变换下面会逐步讲解。 在学习本章节之前,如果你对Three.js已经有了一定的了解,可以尝试从WebGL视图矩阵和投影矩阵的角度去深入理解Thre

  • 我想在图像空间中把3D点转换成2D点。根据hartley和zisserman的《多视图几何学》一书,我们用DLT计算摄像机射影矩阵只需要6个点,我做到了。有了矩阵,我能够准确地重新投影点。 虽然投影矩阵工作正常,但从投影矩阵中提取的固有参数却不正常,每次都相差很小mm。 下面是我能够提取的内在参数的示例 谢谢你。