Je voudrais proposer une alternative à la réponse bien pensée de David Postill. Dans sa réponse, il aborde la question des pixels carrés, comme le suggère le titre. Cependant, il a fait un commentaire très perspicace dans sa réponse :
Certains diront qu'ils ne sont jamais carrés ("Un pixel est un échantillon ponctuel. Il n'existe qu'en un point").
Cette position peut en fait donner lieu à une réponse totalement différente. Au lieu de se concentrer sur la raison pour laquelle chaque pixel est un carré (ou non), elle peut se concentrer sur la raison pour laquelle nous avons tendance à organiser ces échantillonnages de points en grilles rectangulaires. En fait, il n'en a pas toujours été ainsi !
Pour étayer cet argument, nous allons faire des allers-retours entre le traitement d'une image en tant que donnée abstraite (comme une grille de points) et son implémentation dans le matériel. Parfois, une vue est plus significative que l'autre.
Pour commencer, revenons assez loin en arrière. La photographie traditionnelle sur pellicule n'avait pas de "grille" du tout, ce qui explique pourquoi les images avaient toujours l'air si nettes par rapport aux images numériques modernes. Au lieu de cela, il y avait un "grain" qui était une distribution aléatoire de cristaux sur le film. Il était à peu près uniforme, mais il ne s'agissait pas d'un beau réseau rectiligne. L'organisation de ces grains provenait du processus de production du film, en utilisant des propriétés chimiques. Par conséquent, le film n'avait pas vraiment de "direction". C'était juste un éparpillement d'informations.
Avance rapide jusqu'à la télévision, en particulier les vieux tubes cathodiques à balayage. Les tubes cathodiques avaient besoin de quelque chose de différent des photos : ils devaient pouvoir représenter leur contenu sous forme de données. En particulier, il devait s'agir de données pouvant être transmises, en analogique, par un fil (généralement sous la forme d'un ensemble de tensions changeant en permanence). La photo était en 2D, mais nous devions la transformer en une structure en 2D afin qu'elle puisse varier dans une seule dimension (le temps). La solution a consisté à découper l'image en lignes (et non en pixels !). L'image était encodée ligne par ligne. Chaque ligne était un flux analogique de données, et non un échantillonnage numérique, mais les lignes étaient séparées les unes des autres. Ainsi, les données étaient discrètes dans le sens vertical, mais continues dans le sens horizontal.
Les téléviseurs devaient rendre ces données à l'aide de phosphores physiques, et un téléviseur couleur nécessitait une grille pour les diviser en pixels. Chaque téléviseur pouvait procéder différemment dans le sens horizontal, en offrant plus de pixels ou moins de pixels, mais ils devaient avoir le même nombre de lignes. En théorie, ils auraient pu décaler une ligne de pixels sur deux, exactement comme vous le suggérez. Cependant, en pratique, ce n'était pas nécessaire. En fait, ils sont allés encore plus loin. Ils se sont rapidement rendu compte que l'œil humain gérait le mouvement d'une manière qui leur permettait de n'envoyer que la moitié de l'image à chaque trame ! Sur une image, ils envoyaient les lignes impaires, et sur l'image suivante, ils envoyaient les lignes paires, et les assemblaient.
Depuis lors, la numérisation de ces images entrelacées est un véritable casse-tête. Si j'avais une image de 480 lignes, je n'aurais en fait que la moitié des données dans chaque image à cause de l'entrelacement. Le résultat est très visible lorsque vous essayez de voir quelque chose se déplacer rapidement à l'écran : chaque ligne est dans le temps décalé d'une image par rapport à l'autre, créant des bandes horizontales dans les choses qui se déplacent rapidement. Je mentionne ceci parce que c'est plutôt amusant : votre suggestion décale une ligne sur deux de la grille d'un demi-pixel vers la droite, alors que l'entrelacement décale une ligne sur deux de la grille dans le temps !
Franchement, il est plus facile de faire ces jolies grilles rectangulaires pour les choses. Comme il n'y avait aucune raison technique de faire mieux que cela, cette méthode est restée. Puis nous sommes entrés dans l'ère de l'informatique. Les ordinateurs devaient générer ces signaux vidéo, mais ils n'avaient aucune capacité analogique pour écrire une ligne analogique. La solution était naturelle, les données étaient divisées en pixels. Maintenant, les données étaient discrètes à la fois verticalement et horizontalement. Tout ce qui restait à faire était de choisir comment créer la grille.
Faire une grille rectangulaire était extrêmement naturel. Tout d'abord, toutes les télévisions le faisaient déjà ! Ensuite, les mathématiques pour dessiner des lignes sur une grille rectangulaire sont les suivantes beaucoup plus simple que de les dessiner sur un hexagone. Vous pourriez dire "mais vous pouvez dessiner des lignes lisses dans 3 directions sur une grille hexagonale, mais seulement 2 dans la grille rectangulaire". Cependant, les grilles rectangulaires permettent de dessiner facilement des lignes horizontales et verticales. Les grilles hexagonales ne permettent de dessiner qu'une seule direction. ou l'autre. À cette époque, peu de gens utilisaient des formes hexagonales pour leurs activités non informatiques (papier rectangulaire, portes rectangulaires, maisons rectangulaires...). La possibilité de réaliser des formes horizontales lisses et des lignes verticales dépassait de loin l'intérêt de faire des images fluides en couleur... d'autant plus que les premiers écrans étaient monochromes et qu'il serait long temps avant que la fluidité de l'imagerie ne joue un rôle majeur dans la pensée.
À partir de là, vous avez un précédent très fort pour une grille rectangulaire. Le matériel graphique supportait ce que le logiciel faisait (grilles rectangulaires), et le logiciel ciblait le matériel (grilles rectangulaires). En théorie, certains matériels auraient pu essayer de créer une grille hexagonale, mais le logiciel ne l'a pas récompensé, et personne ne voulait payer pour un matériel deux fois plus important !
Cela nous amène à aujourd'hui. Nous voulons toujours des lignes horizontales et verticales fluides, mais avec les écrans rétina haut de gamme, cela devient de plus en plus facile. Cependant, les développeurs sont toujours formés à penser en termes de l'ancienne grille rectangulaire. Nous voyons un peu de Les nouvelles API prennent en charge les "coordonnées logiques" et font de l'anticrénelage pour donner l'impression qu'il y a un espace 2d continu complet avec lequel jouer plutôt qu'une grille de pixels 2d rigides, mais c'est lent. A terme, nous pourrions voir des grilles hexagonales.
Nous les voyons effectivement, mais pas avec des écrans. Dans les imprimés, il est très courant d'utiliser une grille hexagonale. L'œil humain accepte la grille hexagonale beaucoup plus rapidement qu'une grille rectangulaire. Cela est dû à la façon dont les lignes sont "aliasées" dans les différents systèmes. Les grilles hexagonales aliasent d'une manière moins dure, ce qui est plus confortable pour l'œil (si une grille hexagonale doit monter ou descendre d'une rangée, elle peut le faire en douceur sur une transition diagonale. Les grilles rectangulaires doivent sauter, ce qui crée une discontinuité très nette).