OpenGL transformations (glScale, glTranslate, etc)
J'apprends sur openGL et comment faire des transformations telles que la traduction et de la mise à l'échelle. Je sais que vous avez à traduire à l'origine, puis faire ce que vous voulez (permet de dire à l'échelle), puis traduire en arrière. De ma compréhension de ce qui est fait à la main, mais vous pouvez faire la même chose avec glScale().
Ma question est dois-je encore besoin de le traduire à l'origine et à l'arrière si j'utilise le glScale fonction?
OriginalL'auteur Katianie | 2011-03-19
Vous devez vous connecter pour publier un commentaire.
Vous n'avez probablement pas besoin de faire une traduction à l'origine et à l'arrière, il suffit de faire les transformations dans l'ordre requis. Rappelez-vous que la dernière transformation appliquée prend place dans la transformation de l'espace des précédents. Par exemple:
contre
Non, elles ne le faites pas pour vous, mais souvent, il n'a pas d'importance. Il n'existe pas de règle ici: Vous avez besoin de comprendre ce qu'il se passe. E. g. si vous voulez avoir une planète en orbite autour d'un soleil, tu ferais rotation d'abord, puis de la traduction. La direction de la traduction pourrait être mis en rotation par la rotation précédente, tout comme vous le souhaitez. Mais pour le quotidien de la rotation de la planète elle-même, vous voulez une autre rotation après la traduction. L'espoir qui fait sens.
Dans le premier exemple, nous avons une échelle de traduire, dans la deuxième, nous traduisons à 1,2,3 échelle et puis, comment est-ce que dessiner l'objet dans 10,20,30?
La traduction est mise à l'échelle, en plus de l'objet.
OriginalL'auteur Martin Stone
Que vous avez à penser les transformations qui ont lieu sur une pile. En d'autres termes, la dernière transformation que vous spécifiez a lieu en premier. Donc,
va d'abord faire pivoter de 45 degrés autour de l'axe des x, puis à l'échelle de l'objet (10,10,10), puis à traduire (1,2,3). Cependant, vous avez également de se rappeler que toute transformation d'appliquer affecte transformations plus bas sur la ligne. Si on inverse l'ordre de la au-dessus de transformations, la rotation va alors tourner autour d'un point différent.
OriginalL'auteur Davido
Tous
glScale
n'est multiplier la matrice courante par une échelle de la matrice. Donc oui, à ce qu'il sonne comme vous voulez le faire, vous souhaitez appliquer l'échelle de la matrice avant l'application d'une traduction.Voir aussi glScale de référence.
OriginalL'auteur tJener