5 votes

Coordonnées normalisées du dispositif

J'écris une bibliothèque qui traite des formes graphiques en 2D.

Je me demande juste pourquoi mon système de coordonnées devrait aller de [-1, 1] pour les axes x et y enter image description here

au lieu de [0, largeur] pour x et [0, hauteur] pour y ? enter image description here

J'ai opté pour ce dernier système parce qu'il me semblait simple à mettre en œuvre.

8voto

luser droog Points 9030

De Jim Blinn Un voyage dans le pipeline graphique , p. 138.

Commençons par ce qui peut sembler, à première vue, la transformation la plus simple : les coordonnées normalisées du dispositif vers l'espace pixel. Cette transformation est

s_x * X_NDC + d_x = X_pixel
s_y * Y_NDC + d_y = Y_pixel

Un utilisateur/programmeur se charge de la conception des écrans dans NDC. Il y a trois réalités désagréables du matériel que NDC nous cache :

  1. Le nombre réel de pixels dans x y y .

  2. Espacement non uniforme des pixels dans x y y .

  3. La hausse contre la baisse pour le Y coordonnées. La transformation de NDC en pixel inversera Y si nécessaire, afin que Y dans les points NDC vers le haut.

...

s_x = ( N_x - epsilon ) / 2
d_x = ( N_x - epsilon ) / 2

s_y = ( N_y - epsilon ) / (-2*a)
d_y = ( N_y - epsilon ) / 2

epsilon = .001
a = N_y/N_x  (physical screen aspect ratio)

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