Voici mon point de vue là-dessus. Un pixel n'est pas un carré et ce n'est même pas un rectangle. Un pixel est un point (infiniment petit) auquel une couleur lui est associée.
La seule façon dont j'ai personnellement vu des pixels vus (interprétés) par un écran est d'utiliser l'échantillonnage du "plus proche voisin" là où les pixels étaient sur une grille rectangulaire, ce qui signifie que la couleur de tout espace donné sur un écran est la couleur du pixel dont il est le plus proche.
C'est une façon élégante de dire "les pixels sont rectangulaires et disposés sur une grille", mais restez avec moi sur ce point: P
Par conséquent, les formats d'image ont également leurs pixels stockés dans une grille, avec l'hypothèse que le plus proche voisin dans une grille sera également utilisé pour l'afficher. Par exemple, de nombreuses images auront un anti-crénelage intégré afin qu'elles soient belles lorsqu'elles sont affichées sur une "grille de voisin le plus proche".
Les applications interactives (jeux) peuvent utiliser des textures qui ne sont pas censées être affichées telles quelles sur les grilles des voisins les plus proches, elles constituent donc une sorte d'exception à cette règle. Ils le font parce que dans le cadre de leur exécution, ils font de l'anti-aliasing, de l'échantillonnage de la texture bilinéaire, etc.
Maintenant, se rapprochant de votre question: une grille hexagonale aurait-elle des avantages?
Je pense que oui, ce serait le cas!
Tout d'abord, je pense que le voisin le plus proche serait mieux. Je n'ai aucune preuve réelle de cela, mais l'hexagone se rapproche plus étroitement d'un cercle, et comme il ne s'agit pas d'une grille de données régulière, je pense que votre œil obtient une meilleure distribution des données. Désolé, c'est un peu onduleux.
Je pense que la raison principale pour laquelle cela semblerait mieux est que le filtrage linéaire prendrait des informations de 6 voisins au lieu de 4, et interpolerait sur 3 axes au lieu de 2. Plus d'informations provenant d'échantillons moins régulièrement espacés qu'une grille vous donne = meilleure image résultante.
Faire une interpolation cubique serait également préférable à une interpolation cubique sur une grille, donc la qualité évolue à mesure que vous augmentez la qualité de votre algorithme.
En ce qui concerne le stockage plus efficace des données, le fait qu'il puisse mieux filtrer avec moins de données signifie pour moi que oui, il pourrait stocker les données plus efficacement.
Et je suppose enfin ... vous pourriez peut-être utiliser ces propriétés à votre avantage. Peut-être pourriez-vous avoir un format d'image stocké dans un format hexagonal de résolution inférieure, puis avant d'avoir besoin d'afficher l'image au moment de l'exécution, vous pouvez utiliser des algorithmes d'échantillonnage pour la reconvertir en grille.
Peut-être qu'il y aurait même un bon moyen de le faire efficacement dans un pixel shader, de sorte qu'il utiliserait également moins de mémoire lors de l'exécution?
C'est une idée intéressante (:
PS - ce serait cool d'avoir un affichage analogique (pas de pixels individuels, mais une surface colorée continue) qui regardait les données de pixels que vous avez envoyées non pas sous forme de rectangles, mais plutôt comme points d'échantillonnage sur une surface continue. Peut-être un peu là-bas cependant ...