Lors de la transition à partir de l'élément de l'espace de coordonnées de l'écran se produire?
J'étudiais le pipeline de rendu et quand je suis à la capture stade, il a été expliqué que à partir de la vue de l'œil ou de la caméra) de l'espace, nous devons passer pour le clip de l'espace, également appelé normalisé de l'appareil de l'espace (NDC), qui est un espace cubique de -1 à 1.
Cependant, maintenant, je ne comprends pas lorsque le passage de cet espace à l'écran des coordonnées de l'espace qui se passe:
-
Juste après le découpage et avant de tramage?
-
Après le tramage et avant de ciseaux et z-test?
-
À la fin juste avant d'écrire sur le frame buffer?
Vous devez vous connecter pour publier un commentaire.
Non, clip de l'espace et à la SDN de l'espace ne sont pas la même chose.
Clip de l'espace est en fait une étape loin de la SDN, toutes les coordonnées sont divisés par
Clip.W
pour produire de la SDN. Rien en dehors de l'intervalle [-1,1] en résultant à la SDN de l'espace correspond à un point qui est à l'extérieur du volume de clipping. Il y a une raison, l'espace de coordonnées avant de la SDN est appelé clip de l'espace 😉À proprement parler, cependant, NDC l'espace n'est pas nécessairement cubes. Il est vrai que la SDN de l'espace est un cube en OpenGL, mais en Direct3D il ne l'est pas. En D3D la coordonnée Z de la SDN de l'espace varie de 0.0 à 1.0, alors qu'il varie de -1.0 à 1.0 dans le GL. X et Y ont le même comportement dans GL et D3D (qui est, ils vont de -1.0 à 1.0). La SDN est une norme de coordonnées de l'espace, mais il y a différents représentation dans les différentes Api.
Enfin, la SDN de l'espace à l'espace de l'écran (ALIAS de la fenêtre de l'espace) se produit au cours de la pixellisation et est défini par votre fenêtre et de profondeur. Fragment emplacements ne serait vraiment pas de sens que dans tout autre espace de coordonnées, et c'est ce que le tramage produit: fragments.
Mise à jour:
Introduit en OpenGL 4.5, l'extension
GL_ARB_clip_control
permet d'adopter D3D du NDC convention dans le GL.Traditionnel OpenGL comportement est le suivant:
Direct3D comportement peut être atteint grâce à:
w
coordonner définit la mesure du volume de clip en clip de l'espace et de la SDN-espace, mais dans NDC-espace,w
est 1.0 et tout ce qui a été normalisé. Dans le clip de l'espace, chaque sommet peut exister avec sa propre échelle définie par un autrew
coordonner; une fois transformé en NDC-espace, tous les sommets sont en accord et beaucoup plus simple de travailler avec.w
basé sur la valeur dez
-- ce que la perspective vient, mais ce n'est pas une fonction automatique de clip-espace. Après le point de vue de diviser, une fois que tout est en NDC-l'espace, la perspective sera la cause de tous les vertices avec différentes clip-espacew
coordonnées à se répandre. Projection orthographique est tout aussi valable dans le clip de l'espace et de ne pas la cause de cela.Clip de l'espace et à la SDN (normalisé les coordonnées de périphérique) ne sont pas la même chose, sinon ils ne seraient pas des noms différents.
Clip de l'espace est l'endroit où les points de l'espace sont au-delà du point de transformation par la matrice de projection, mais avant la normalisation par
w
.NDC espace est l'espace des points sont dans après la normalisation par
w
.w
composant n'est pas appelé "normalisation", il est appelé point de vue de la division, et son but est de transformer les sommets de espace Homogène dans l'espace Cartésien (c'est à dire projet de mer). C'est vrai qu'ils finissent dans normalisé de l'appareil de l'espace, mais cela ne signifie pas que les sommets ont été "normalisé". Normaliser un sommet, qui est en fait représenté comme un vecteur, est quelque chose de très différent.Apparemment, selon Apple, clip de l'espace est le même que la SDN.
https://developer.apple.com/documentation/metal/hello_triangle
Citation:
"La tâche principale de l'un des sommets de la fonction (aussi connu comme un vertex shader) est de traiter entrant sommet de données et la carte de chaque sommet à un poste dans la fenêtre d'affichage. De cette façon, les étapes suivantes dans le pipeline peut se référer à cette fenêtre d'affichage de la position et de rendre des pixels à un emplacement précis dans le drawable. Le sommet de la fonction accomplit cette tâche en traduisant arbitraire les coordonnées des vertices dans normalisé les coordonnées de périphérique, aussi connu comme clip-coordonnées de l'espace."
Une autre citation de commentaires dans l'exemple de code:
"La position de sortie de chaque vertex shader est dans le clip de l'espace (aussi connu comme normalisées de l'appareil de coordonnées de l'espace, ou la SDN)."
C'est peut-être parce que le tutoriel est en 2D? Des déclarations trompeuses..
NDC espace est le clip de l'espace, de la SDN de l'espace à l'espace de fenêtre se fait par le matériel, qui est arrivé après la SDN et avant de tramage.
Il y a de l'API pour définir la largeur et la hauteur, la valeur par défaut est de même taille avec la taille de la fenêtre.
NDC espace pour l'OpenGL, xyz intervalle [-1, 1]. Pour le Métal, Z) est de 0 à 1
NDC espace est généralement de la main gauche du système.