glMulMatrix 和 glTranslate(或 glRotate)之间的区别
Difference between glMulMatrix and glTranslate (or glRotate)
我习惯了现代 OpenGL 语法,但我必须处理使用旧语法的现有代码,这让我很困惑,尽管它应该更简单!
我想知道使用 glMulMatrix
(并传递翻译矩阵)与使用 glTranslate
并传递 x
、y
和 [=14 之间有什么区别=] 翻译?
同样的问题适用于 glMulMatrix
(并传递旋转矩阵)或使用 glRotate
并传递 x
、y
和 z
旋转?
对于 glMultMatrix
,您需要自己创建矩阵(按列主要顺序),然后使用该函数将其传递给 OpenGL。使用glTranslate
或glRotate
,只需要传递参数,让OpenGL构造即可。
之后的处理都是一样的。过去,对于初学者来说,使用glTranslate
或glRotate
更容易理解和使用,而对于更高级的用户,glMultMatrix
更自然,因为通常你会积累转换(场景图)并将其传递给复合场景。
我习惯了现代 OpenGL 语法,但我必须处理使用旧语法的现有代码,这让我很困惑,尽管它应该更简单!
我想知道使用 glMulMatrix
(并传递翻译矩阵)与使用 glTranslate
并传递 x
、y
和 [=14 之间有什么区别=] 翻译?
同样的问题适用于 glMulMatrix
(并传递旋转矩阵)或使用 glRotate
并传递 x
、y
和 z
旋转?
对于 glMultMatrix
,您需要自己创建矩阵(按列主要顺序),然后使用该函数将其传递给 OpenGL。使用glTranslate
或glRotate
,只需要传递参数,让OpenGL构造即可。
之后的处理都是一样的。过去,对于初学者来说,使用glTranslate
或glRotate
更容易理解和使用,而对于更高级的用户,glMultMatrix
更自然,因为通常你会积累转换(场景图)并将其传递给复合场景。