les paramètres gluPerspective - que signifient-ils?

je me demande à propos de l' gluPerspective paramètres.

dans tous les exemples je vois fovy est réglé à environ 45-60degrés J'ai essayé de le définir à différentes valeurs et l'objet disparaît quelle est l'explication pour cela?

<!-La valeur devrait toujours être le rapport? pourquoi aurait-on le changer?

zNear, zFar - encore une fois, les valeurs habituelles sont d'environ 10 et 500+ que reflète-t-elle?

34
demandé sur Andreas Haferburg 2013-05-15 22:02:49

1 réponses

le but des 4 paramètres est de définir un view frustum, comme ceci:

perspective frustum

où rien en dehors du frustum ne doit être visible à l'écran ( pour ce faire, les paramètres sont utilisés pour calculer une matrice 4x4, qui est ensuite utilisé pour transformer chaque sommet dans le soi-disant espace de clip. Là, tester si un vertex est à l'intérieur du frustum ou non est trivial)

Le champ paramètre est fondamentalement, 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 la position de la caméra et le bas de votre écran. Plus cet angle est grand, plus vous pouvez voir du monde, mais dans le même temps, les objets, vous pouvez voir deviennent plus petits.

pour observer son influence, je suggérerais de coder une application simple où vous pouvez augmenter / diminuer graduellement la fov via keypress - puis rendre certaines sphères ou autres objets de base & voir ce qui se passe lorsque vous le changez.

Le ratio d'aspect est le rapport d'aspect de votre viewport. (Dans le graphique ci-dessus, le viewport est situé sur le plan de découpage Proche ) être capable de le définir à volonté a du sens, puisque le rapport d'aspect de votre viewport peut varier.

Le zNear & zFar définissent la distance entre la position de la caméra et les plans de coupure proches et éloignés, respectivement. Rien de ce qui est plus proche de la caméra de zNear ou plus loin que zFar sera visible. Les deux valeurs doivent être > 0, et évidemment, zFar > zNear. Zfar devrait idéalement être choisi de sorte que tout ce que vous voulez rendre soit visible, mais le faire plus grand que nécessaire gaspille la précision du tampon de profondeur et peut conduire à des effets de scintillement, appelé z-fighting. De même, placer 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 ce se produit, vous devez lire certains des explications détaillées, comme celui-ci ou celui-ci

69
répondu gemse 2017-02-08 14:41:24