【问题标题】:How would I generate a model view matrix using GLKit's GLKMatrixStack library?如何使用 GLKit 的 GLKMatrixStack 库生成模型视图矩阵?
【发布时间】:2012-03-10 20:35:57
【问题描述】:

GLKit中有一个头文件,注释如下:

GLKMatrixStack 是一种 CFType,它允许创建类似于 OpenGL 的矩阵堆栈的 4x4 矩阵堆栈。可以使用类似于 OpenGL 的固定功能版本中的功能来创建和操作任意数量的矩阵堆栈。

您将如何根据堆栈的内容生成模型视图矩阵?我在 GLKMatrixStack 标头之外找不到对 GLKMatrixStackRef 类型的任何引用。

【问题讨论】:

    标签: ios ios5 opengl-es opengl-es-2.0 glkit


    【解决方案1】:

    在 Apple 的 C 库中,<whatever>Ref 是指向 <whatever> 的指针的 typedef。所以适当的文档是GLMatrixStack。因此,当您想将结果传达给着色器时,您可以使用GLMatrixStackCreate,然后使用GLMatrixStackRotateGLMatrixStackScaleGLMatrixStackPush/Pop 等的任意组合以及GLMatrixStackGetMatrix4 之类的东西。

    【讨论】:

    • 根据文档,GLKMatrixStackGetMatrix4 从堆栈的顶部返回矩阵,而不是生成的转换矩阵。
    • 刚刚意识到GLKMatrixStackPush 将最顶层矩阵的副本推入堆栈,然后您对其执行转换。所以最上面的矩阵总是结果。你是对的。感谢您的帮助。
    • 我有点听从你的意思,但是一个简短的示例 sn-p 会很方便。我遇到的困难是“附加”到父对象的对象,例如,当我围绕肩膀旋转上臂时,前臂和手跟随。如何获得前臂和手对象的起始矩阵(从堆栈中?)?谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多