将转换应用于对象时,我们使用glPushMatrix/glPopMatrix。但是为什么我们不只使用glLoadIdentity呢?

因此

    glPushMatrix()
    ..apply tranformations
    ...draw object
    glPopMatrix()
    glPushMatrix()
    ..apply tranformations
    ...draw object
    glPopMatrix()

这应该怎么做才对?

可以变成
    glLoadIdentity()
    ..apply tranformations
    ...draw object
    glLoadIdentity()
    ..apply tranformations
    ...draw object

最佳答案

因为您将无法执行此操作:

glPushMatrix()
..apply tranformations
glPushMatrix()
..apply ADDITIONAL transformations
..draw object with combined transforms
glPopMatrix()
...draw object without the additional transforms.
glPopMatrix()

关于opengl - glLoadIdentity和glPushMatrix/glPopMatrix,为什么不只使用前者呢?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11697583/

10-09 17:01