Partager via


Systèmes de coordonnées (Direct3D 10)

Les systèmes de coordonnées pour Direct3D 10 sont définis pour les pixels et les texels.

Différences entre Direct3D 9 et Direct3D 10 :

  • Direct3D 10 définit l’angle supérieur gauche du pixel supérieur gauche comme origine d’une cible de rendu.
  • Direct3D 9 définit le centre du pixel supérieur gauche comme l’origine d’une cible de rendu.

 

système de coordonnées de pixels

système de coordonnées Texel

rubriques connexes

Système de coordonnées de pixels

Le système de coordonnées de pixels dans Direct3D 10 définit l’origine d’une cible de rendu en haut à gauche. comme illustré dans le diagramme suivant. Les centres de pixels sont décalés par (0,5f,0,5f) à partir des emplacements entiers.

diagramme du système de coordonnées de pixels en direct3d 10

Système de coordonnées de pixels pour Direct3D 9

Pour référence, voici le système de coordonnées de pixels pour Direct3D 9, qui a défini l’origine ou une cible de rendu comme centre du pixel supérieur gauche (0,5,0,5) à l’écart du coin supérieur gauche, comme illustré dans le diagramme suivant. Dans Direct3D 9, les centres de pixels se trouvent à des emplacements entiers.

diagramme du système de coordonnées de pixels en direct3d 9

Système de coordonnées Texel

Le système de coordonnées texels a son origine en haut à gauche de la texture, comme illustré dans le diagramme suivant. Cela rend les textures alignées sur l’écran de rendu triviales (dans Direct3D 10), car le système de coordonnées de pixels est aligné avec le système de coordonnées texel.

diagramme du système de coordonnées texel

Système de coordonnées Texel

Les coordonnées de texture sont représentées avec un nombre normalisé ou mis à l’échelle ; chaque coordonnée de texture est mappée à un texel spécifique comme suit :

Pour une coordonnée normalisée :

  • Échantillonnage de points : Texel # = floor(U * Width)
  • Échantillonnage linéaire : Texel gauche # = floor(U * Width), Right Texel # = Left Texel # + 1

Pour une coordonnée mise à l’échelle :

  • Échantillonnage de points : Texel # = floor(U)
  • Échantillonnage linéaire : Texel gauche # = floor(U - 0,5), Texel de droite # = Texel gauche # + 1

Où la largeur est la largeur de la texture (en texels).

L’habillage de l’adresse de texture se produit après le calcul de l’emplacement du texel.

ressources (Direct3D 10)