102 votes

c ++ opengl: glOrtho () - veuillez expliquer l'utilisation de cette commande

Salut J'ai commencé à apprendre OpenGL et je ne comprends pas l'utilisation de glOrtho. quelqu'un peut-il s'il vous plaît expliquer à quoi sert-il?

Merci

mettre à jour

est-il utilisé pour définir la plage des coordonnées xy et z?

 glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
 

cela signifie que les plages x, y et z vont de -1 à 1?

Merci!

164voto

Mikepote Points 798

Jetez un oeil à cette image: Graphique des Projections

L' glOrtho commande produit un "Oblique" de la projection que vous voyez dans la partie inférieure de deux panneaux. Peu importe comment loin des sommets sont dans la direction z, ils ne seront pas relégués à la distance.

J'utilise glOrtho chaque fois que j'ai besoin de faire des graphismes en 2D avec OpenGL (comme les barres de santé, les menus, etc) en utilisant le code suivant chaque fois que la fenêtre est redimensionnée:

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0f, windowWidth, windowHeight, 0.0f, 0.0f, 1.0f);

4voto

ChrisF Points 74295

glOrtho décrit une transformation qui produit un parallèle de la projection. La matrice courante (voir gl_modelview) est multipliée par la matrice et le résultat remplace la matrice actuelle, comme si glMultMatrix ont été appelés à la suite de la matrice en argument:

Documentation OpenGL (mon gras)

Les numéros de définir les emplacements des plans de clipping (gauche, droite, bas, haut, de près et de loin).

Le "normal" de la projection est une projection de perspective qui donne l'illusion de la profondeur. Wikipedia définit une projection parallèle comme:

Les projections parallèles ont des lignes de projection, qui sont parallèles à la fois dans la réalité et dans le plan de projection.

Projection parallèle correspond à une projection en perspective avec un hypothétique point de vue-par exemple, celui où la caméra se trouve à une distance infinie de l'objet et a une infinie longueur focale, ou "zoom".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X