OpenGL中的矩阵堆栈有什么意义?

Cla*_*bel 5 c opengl

为什么我会使用OpenGL的矩阵堆栈(而不是包装我自己的矩阵类而只是使用它)?我不确定为什么这么简单的任务会如此复杂.它有一些特殊用例吗?

如果没有必要,有什么好的替代品呢?

Dre*_*all 12

OpenGL的矩阵堆栈(有多个 - 每个矩阵模式一个)用于分层模型.也就是说,您可以定义子对象(例如,轮子)相对于其父体(例如,汽车)的绑定,而不考虑绘制子项时父项的位置/方向.也就是说,它允许您轻松直观地组合变换.

matix堆栈(以及一般的GL矩阵运算)不能替代通用矩阵数学库.它们只是存在以允许组合变换有效地应用于顶点数据.正如其他人所说,随着固定功能管道的消亡,这个功能已从OpenGL中删除,因为着色器程序的需求不如旧管道的需要统一.