Pourquoi utiliser glTranslatef? Pourquoi ne pas tout simplement changer le rendu de co-ords?

Je suis en train de faire un simple jeu de Pacman en C++, en utilisant OpenGL et SDL. J'allais utiliser le glTranslatef fonction, mais il a semblé plus simple de juste changer la co-ords que la fonction de dessin utilisé. Je me demandais, pourquoi voudriez-vous/devriez-vous utiliser glTranslatef?

Voici un exemple rapide de deux glTranslatef et il suffit de changer de co-ords

glPushMatrix()
glTranslatef(10,0,0)
draw()
glPopMatrix()

ou

//Assuming the draw function took co-ords
draw(x+10 ,y ,z)

Ma conjecture est qu'ils sont effectivement les mêmes, c'est le seul de préférence. Pouvez-vous m'éclairer?

MODIFIER

Veuillez noter que je ne parle que de la fonction de traduction. Tout sur le redimensionnement et la rotation n'est pas pertinent, je parle SEULEMENT à propos des traductions. (C'est parce que les traductions sont facile sans glTranslatef fonction, alors que les deux autres sont plus complexes sans leurs fonctions)

  • Savez-vous que l'appel de glTranslate, glRotate et glScale modifier le maxtrix de la pile tout en ajoutant simplement un décalage de quelques coordonner ne l'est pas?
  • Oui, mais je n'avais pas pensé à ça. Donc, vous êtes en soulignant que, en modifiant la matrice actuelle, vous pouvez déplacer/pivoter/échelle de TOUT dessiné dans cette matrice, correct?
  • Tout ce que vous dessinez c'est multiplier par le madelview de la matrice, donc après le déplacement/rotation/échelle des appels tout ce qui est dessiné est affectée par ces transformations. Vous pouvez avoir un coup d'oeil à ceci: glprogramming.com/red/chapter03.html#name2
  • Exactement, ce qui permettrait de simplifier le déplacement/rotation/mise à l'échelle des lots d'objets. Merci pour cette sortie les gars.