2012-03-10 84 views
2

有在GLKit一个头文件有以下评论:如何使用GLKit的GLKMatrixStack库生成模型视图矩阵?

GLKMatrixStack是CFType允许创建类似于OpenGL的矩阵堆栈4x4矩阵堆栈。任何数量的矩阵堆栈都可以创建和操作,其功能类似于固定功能版本的OpenGL中的功能。

你将如何去根据堆栈的内容生成模型视图矩阵?我找不到GLKMatrixStack标题以外的GLKMatrixStackRef类型的任何参考。

回答

2

在Apple的C库中,<whatever>Ref是指向<whatever>的指针的typedef。所以适当的文件是GLMatrixStack。所以你会使用GLMatrixStackCreate,然后GLMatrixStackRotate,GLMatrixStackScale,GLMatrixStackPush/Pop等的任何组合,当你想要将结果传递给你的着色器时,可以使用GLMatrixStackGetMatrix4之类的东西。

+0

根据文档,['GLKMatrixStackGetMatrix4'](https://developer.apple.com/library/ios/#DOCUMENTATION/GLkit/Reference/GLKMatrixStack/Reference/reference.html)从_top_返回矩阵堆栈,而不是结果转换矩阵。 – 2012-03-11 14:53:37

+0

刚刚意识到'GLKMatrixStackPush'将堆栈中顶层矩阵的副本推送出来,然后您执行转换。所以最顶层矩阵总是结果。你是对的。谢谢你的帮助。 – 2012-03-11 15:38:45

+0

我喜欢你所说的话,但是短小的样本片段会非常方便。我遇到的困难是与父对象“附着”的对象,例如(当我旋转上臂围绕肩膀,前臂和手跟随时)。如何获得前臂和手形物体的起始矩阵(离开堆叠?)?谢谢! – Olie 2013-05-24 17:32:12