Я хотел бы предложить альтернативу хорошо продуманному ответу Дэвида Постилла. В своем ответе он подошел к вопросу о квадратах пикселей, как и предполагалось в названии. Тем не менее, он сделал очень проницательный комментарий в своем ответе:
Некоторые утверждают, что они никогда не бывают квадратными («Пиксель - это точечный образец. Он существует только в точке»).
Эта позиция может на самом деле породить совершенно другой ответ. Вместо того чтобы сосредоточиться на том, почему каждый пиксель является квадратом (или нет), он может сосредоточиться на том, почему мы склонны организовывать эти точечные выборки в прямоугольные сетки. На самом деле так было не всегда!
Чтобы привести этот аргумент, мы будем играть взад-вперед между обработкой изображения как абстрактных данных (таких как сетка точек) и его реализацией в аппаратном обеспечении. Иногда одна точка зрения более значима, чем другая.
Для начала давайте пойдем довольно далеко назад. Традиционная пленочная фотография вообще не имела «сетки», и это одна из причин, почему фотографии всегда выглядели такими четкими по сравнению с современными цифровыми. Вместо этого он имел «зерно», которое представляло собой случайное распределение кристаллов на пленке. Это было примерно равномерно, но это не было хорошим прямолинейным массивом. Организация этих зерен возникла в процессе производства пленки, используя химические свойства. В результате у фильма действительно не было «направления». Это было просто 2-е распространение информации.
Перейдем к телевизору, в частности к старым сканирующим электронно-лучевым трубкам. ЭЛТ нуждались в чем-то отличном от фотографий: они должны были иметь возможность представлять свой контент в виде данных. В частности, это должны быть данные, которые могут передаваться аналоговым образом по проводам (обычно в виде непрерывно меняющегося набора напряжений). Фотография была двухмерной, но нам нужно было превратить ее в одномерную структуру, чтобы она могла варьироваться в одном измерении (времени). Решением было нарезать изображение по линиям (а не по пикселям!). Изображение было закодировано построчно. Каждая строка представляла собой аналоговый поток данных, а не цифровую выборку, но линии были отделены друг от друга. Таким образом, данные были дискретными в вертикальном направлении, но непрерывными в горизонтальном направлении.
Телевизоры должны были визуализировать эти данные с использованием физических люминофоров, а цветному телевизору требовалась сетка для разделения их на пиксели. Каждый телевизор мог делать это по-разному в горизонтальном направлении, предлагая больше пикселей или меньше пикселей, но они должны были иметь одинаковое количество строк. Теоретически, они могли бы сместить любой второй ряд пикселей в точности так, как вы предлагаете. Однако на практике это было не нужно. На самом деле они пошли еще дальше. Было быстро понято, что человеческий глаз обрабатывал движение таким образом, что он фактически посылал только половину изображения в каждом кадре! В одном кадре они отправляли нечетные строки, а в следующем кадре отправляли четные строки и склеивали их вместе.
С тех пор оцифровка этих чересстрочных изображений стала хитростью. Если бы у меня было 480-строчное изображение, то из-за чересстрочной развертки у меня было только половина данных в каждом кадре. Результат этого является очень заметен , когда вы пытаетесь увидеть что - то двигаться быстро по экрану: каждая линия временно смещается на 1 кадр из других, создавая горизонтальные полосы в быстро двигающихся вещах. Я упоминаю об этом, потому что это довольно забавно: ваше предложение смещает каждую строку в сетке на полпикселя вправо, а чересстрочное смещение сдвигает каждую вторую строку в сетке вдвое!
Честно говоря, проще сделать эти симпатичные прямоугольные сетки для вещей. Без каких-либо технических причин, чтобы сделать что-то лучше, он застрял. Тогда мы достигли компьютерной эры. Компьютеры должны были генерировать эти видеосигналы, но у них не было аналоговых возможностей для записи аналоговой линии. Решение было естественным, данные были разбиты на пиксели. Теперь данные были дискретными как по вертикали, так и по горизонтали. Осталось только выбрать способ изготовления сетки.
Создание прямоугольной сетки было чрезвычайно естественным. Во-первых, каждый телевизор там уже делал это! Во-вторых, математика для рисования линий на прямоугольной сетке намного проще, чем на шестиугольной. Вы можете сказать: «но вы можете нарисовать плавные линии в 3 направлениях на шестиугольной сетке, но только 2 в прямоугольной». Тем не менее, прямоугольные сетки позволяют легко рисовать горизонтальные и вертикальные линии. Шестиугольные сетки могут быть сделаны только для рисования одного или другого. В ту эпоху не многие люди использовали гексагональные формы для любых своих не вычислительных усилий (прямоугольная бумага, прямоугольные двери, прямоугольные дома ...). Способность делать плавные горизонтальные ивертикальные линии намного превосходили ценность создания гладких полноцветных изображений ... особенно учитывая, что первые дисплеи были монохромными, и прошло бы много времени, прежде чем плавность изображений сыграла важную роль в мышлении.
Оттуда у вас есть очень сильный прецедент для прямоугольной сетки. Графическое оборудование поддерживало то, что делало программное обеспечение (прямоугольные сетки), а программное обеспечение предназначалось для аппаратного обеспечения (прямоугольные сетки). Теоретически, некоторые аппаратные средства могли пытаться создать гексагональную сетку, но программное обеспечение просто не вознаграждает их, и никто не хотел платить за вдвое больше оборудования!
Это быстро отправляет нас на сегодня. Нам все еще нужны красивые плавные горизонтальные и вертикальные линии, но с высококачественными дисплеями сетчатки это становится все проще и проще. Тем не менее, разработчики все еще обучены думать в терминах старой прямоугольной сетки. Мы видим, что некоторые новые API поддерживают «логические координаты» и делают сглаживание, чтобы создать впечатление, что есть полностью непрерывное 2-мерное пространство для игры, а не сетка из жестких 2-мерных пикселей, но она медленная. В конце концов, мы можем увидеть гексагональные сетки.
Мы на самом деле видим их, но не с экранами. В печати очень часто используется шестиугольная сетка. Человеческий глаз воспринимает шестиугольную сетку гораздо быстрее, чем прямоугольную. Это связано с тем, как линии "псевдоним" в разных системах. Псевдоним шестиугольных сеток менее резким способом, с которым глазу удобнее (если шестнадцатеричная сетка должна идти на один ряд вверх или вниз, они могут плавно делать это при диагональном переходе. Прямоугольные сетки нужно пропускать, создавая очень явный разрыв)