【问题标题】:OpenGL ES 2.0 Modify Geometry in modelMatrixOpenGL ES 2.0 在 modelMatrix 中修改几何
【发布时间】:2012-08-01 22:32:17
【问题描述】:

我在 iOS 平台上使用 OpenGL ES 2.0 构建的环境。我有在启动时制作的元素,所以我有几何的初始点。这些点包含在模型和模型视图矩阵中,但包含初始点的数组在应用程序的整个生命周期中永远不会更新。结果,我无法再参考这些要点以获取任何有用的信息。有没有办法以其他方式(从模型或模型视图矩阵)获取这块几何图形的当前 3d 坐标?如果是这样,谁能提供一个非常清楚的例子来说明如何做到这一点?

【问题讨论】:

  • “这些点包含在模型和模型视图矩阵中”是什么意思?你的意思是他们被它改变了?并且您想要转换后的世界位置而不是程序开始时生成的模型空间坐标?
  • 是的,这正是我的问题所在。

标签: ios 3d opengl-es-2.0


【解决方案1】:

您想要做的是在您应用了所有您想要的转换的位置获取当前模型视图矩阵。

    GLfloat matrix[16]; 
    glGetFloatv (GL_MODELVIEW_MATRIX, matrix);

这将为您返回整个矩阵,您可以将其与模型的所有顶点相乘,然后将在世界空间中做任何您想做的事情:)

希望这会有所帮助!

【讨论】:

  • 哦,是的,这确实有帮助。谢谢!
  • 实际上,如果您不介意再进一步,它可能会有所帮助...我正在使用 GLKit,将我拥有的顶点数组相乘的正确方法是什么我从中得到的模型视图矩阵?
  • 这是 (stackoverflow.com/questions/9029796/…) Stackoverflow 上的一个链接,它有一段代码可以用 GLKit 执行矩阵乘法。
  • 好吧,现在我有一个数组中的模型视图矩阵,并且我有一个包含几何图形的所有点(其中 180 个)的数组。我不太确定我应该在这里乘以什么
  • :) 矩阵 mult 是(行 x 列)4x4 和 4x180(每个 X、Y、Z、W 是一列),这将为您提供另一个 4x180 矩阵。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-13
  • 2015-08-08
  • 1970-01-01
  • 1970-01-01
  • 2011-06-14
  • 1970-01-01
  • 2011-07-01
相关资源
最近更新 更多