glMulMatrix 和 glTranslate(或 glRotate)之间的区别

Difference between glMulMatrix and glTranslate (or glRotate)

我习惯了现代 OpenGL 语法,但我必须处理使用旧语法的现有代码,这让我很困惑,尽管它应该更简单!

我想知道使用 glMulMatrix(并传递翻译矩阵)与使用 glTranslate 并传递 xy 和 [=14 之间有什么区别=] 翻译?

同样的问题适用于 glMulMatrix(并传递旋转矩阵)或使用 glRotate 并传递 xyz 旋转?

对于 glMultMatrix,您需要自己创建矩阵(按列主要顺序),然​​后使用该函数将其传递给 OpenGL。使用glTranslateglRotate,只需要传递参数,让OpenGL构造即可。

之后的处理都是一样的。过去,对于初学者来说,使用glTranslateglRotate更容易理解和使用,而对于更高级的用户,glMultMatrix更自然,因为通常你会积累转换(场景图)并将其传递给复合场景。