在我研究OpenGL(我认为是OpenGL红皮书)时,我遇到了一个例子,展示了由“上臂”,“下臂”,“手”和五个或更多的“手指”组成的活动机械臂的模型。每个部分都应该能够独立移动,但受到“关节”(上臂和下臂始终在“肘部”连接)的约束。
在立即模式(glBegin/glEnd)中,他们使用一个立方体网格,称为“member”的单个网格,并使用该单个网格的缩放副本为手臂、手等的每个部分。通过将旋转推送到以下关节的变换矩阵堆栈中来完成“移动”:肩膀、肘部、手腕、指节-你明白了。
现在,这解决了问题,但因为它使用了旧的、已弃用的立即模式,我还不理解怎么在现代OpenGL环境下解决这个问题。我的问题是:如何使用现代OpenGL解决这个问题?特别是,由于矩阵堆栈不再被支持,每个单独的“member”是否应该跟踪其自身的当前变换矩阵?
在立即模式(glBegin/glEnd)中,他们使用一个立方体网格,称为“member”的单个网格,并使用该单个网格的缩放副本为手臂、手等的每个部分。通过将旋转推送到以下关节的变换矩阵堆栈中来完成“移动”:肩膀、肘部、手腕、指节-你明白了。
现在,这解决了问题,但因为它使用了旧的、已弃用的立即模式,我还不理解怎么在现代OpenGL环境下解决这个问题。我的问题是:如何使用现代OpenGL解决这个问题?特别是,由于矩阵堆栈不再被支持,每个单独的“member”是否应该跟踪其自身的当前变换矩阵?