web-dev-qa-db-fra.com

Paramètres globaux - que signifient-ils?

Je me pose des questions sur les paramètres gluPerspective.

Dans tous les exemples, je vois que fovy est défini sur environ 45 à 60 degrés. J'ai essayé de le définir sur différentes valeurs et l'objet disparaît. Quelle est l'explication?

La valeur aspect doit toujours être le rapport? pourquoi le changerait-on?

zNear, zFar - encore une fois, les valeurs habituelles se situent autour de 10 et 500+ à quoi cela correspond-il?

42
Despair

Le but des 4 paramètres est de définir une vue tronc , comme ceci:

perspective frustum

où rien en dehors du tronc devrait être visible à l'écran (Pour ce faire, les paramètres sont utilisés pour calculer une matrice 4x4, qui est ensuite utilisée pour transformer chaque sommet en ce qu'on appelle l'espace de clip. Là, tester si un sommet est à l'intérieur du tronc ou non est trivial)

Le paramètre du champ de vision est essentiellement l'angle entre un plan passant par la position de la caméra ainsi que le haut de votre écran et un autre plan passant par le position de la caméra et le bas de votre écran. Plus cet angle est grand, plus vous pouvez voir le monde - mais en même temps, les objets que vous pouvez voir deviendront plus petits.

Pour observer son influence, je suggère de coder une application simple où vous pouvez augmenter/diminuer progressivement la fov via une pression sur une touche - puis rendre certaines sphères ou d'autres objets de base et voir ce qui se passe lorsque vous le changez.

Le rapport d'aspect est le rapport d'aspect de votre fenêtre. (Dans le graphique ci-dessus, la fenêtre est située sur le plan de détourage proche). La possibilité de la définir à volonté est logique, car le rapport hauteur/largeur de votre fenêtre peut varier.

Les valeurs zNear & zFar définissent la distance entre la position de la caméra et les plans de détourage proche et éloigné, respectivement. Rien de plus proche de l'appareil photo que zNear ou plus éloigné que zFar ne sera visible. Les deux valeurs doivent être> 0 et, évidemment, zFar> zNear. zFar devrait idéalement être choisi de manière à ce que tout ce que vous voulez rendre soit visible, mais en le rendant plus grand que nécessaire, prescision du tampon de profondeur des déchets et peut conduire à des effets de scintillement, appelés z-combats. De même, régler zNear trop près de la caméra peut avoir le même effet - en fait, avoir une valeur zNear raisonnable est plus important que zFar. Si vous voulez savoir exactement pourquoi cela se produit, vous devriez lire quelques explications détaillées, comme celle-ci ou celle-ci

79
gemse