Oto moje zdanie na ten temat. Piksel nie jest kwadratem, a nawet prostokątem. Piksel to punkt (nieskończenie mały), z którym powiązany jest kolor.
Jedynym sposobem, w jaki osobiście widziałem piksele oglądane (interpretowane) przez wyświetlacz, jest próbkowanie „najbliższego sąsiada”, gdzie piksele znajdowały się na prostokątnej siatce, co oznacza, że kolor dowolnej przestrzeni na ekranie jest kolorem piksel, który jest najbliżej.
Jest to fantazyjny sposób powiedzenia „piksele są prostokątne i ułożone na siatce”, ale zostańcie ze mną w tej sprawie: P
W rezultacie formaty obrazów mają również swoje piksele przechowywane w siatce, przy założeniu, że do wyświetlenia zostanie również użyty najbliższy sąsiad w siatce. Na przykład wiele obrazów ma wbudowane wygładzanie, dzięki czemu będą dobrze wyglądać, gdy zostaną wyświetlone na „najbliższej sąsiedniej siatce”.
Interaktywne aplikacje (gry) mogą używać tekstur, które nie mają być wyświetlane tak, jak na siatkach najbliższych sąsiadów, dlatego stanowią pewien wyjątek od tej reguły. Robią to, ponieważ w ramach wykonywania robią wygładzanie krawędzi, dwuliniowe próbkowanie tekstur itp., Aby każdy obraz wypychany na ekran wyglądał dobrze, gdy wyświetlacz pokazuje go jako najbliższą sąsiednią siatkę!
Zbliżając się do pytania: czy siatka sześciokątna miałaby jakieś zalety?
Myślę, że tak!
Po pierwsze, myślę, że najbliższy sąsiad wyglądałby lepiej. Nie mam żadnego prawdziwego dowodu na to, przepraszam, ale sześciokąt bardziej zbliża się do koła, a ponieważ nie jest to zwykła siatka danych, myślę, że twoje oko dostaje lepszą dystrybucję danych. Przepraszam, to trochę falująca ręka.
Myślę, że dużą część tego, dlaczego lepiej by to wyglądało, jest to, że filtrowanie liniowe pobierałoby informacje od 6 sąsiadów zamiast 4 i interpolowałoby na osi 3 zamiast 2. Więcej informacji z mniej regularnie rozmieszczonych próbek niż siatka daje = lepszy wynikowy obraz.
Wykonywanie interpolacji sześciennej byłoby również lepsze niż interpolacja sześcienna na siatce, więc jakość skaluje się wraz ze wzrostem jakości algorytmu.
Jeśli chodzi o to, czy przechowuje dane bardziej wydajnie, fakt, że może on lepiej filtrować przy mniejszej ilości danych, oznacza dla mnie, że tak, mógłby przechowywać dane bardziej wydajnie.
I myślę, że wreszcie ... może mógłbyś wykorzystać te właściwości na swoją korzyść. Być może możesz mieć format obrazu zapisany w formacie heksagonalnym niższej rozdzielczości, a następnie, zanim będziesz musiał wyświetlić obraz w czasie wykonywania, możesz użyć algorytmów próbkowania, aby przekonwertować go z powrotem na siatkę.
Może byłby nawet dobry sposób, aby zrobić to skutecznie w module cieniującym piksele, aby zużywałby mniej pamięci w czasie wykonywania?
To ciekawy pomysł (:
PS - jak fajnie byłoby mieć wyświetlacz analogowy (bez pojedynczych pikseli, ale ciągła kolorowa powierzchnia), który patrzyłby na dane w pikselach, które przesłałeś nie jako prostokąty, ale jako punkty próbkowania na ciągłej powierzchni. Może trochę tam…