Пиксель. История одной точки - Элви Рэй Смит
Шрифт:
Интервал:
Скорее всего, даже буквы шрифта, которыми набран этот текст, созданы с помощью кривых Безье. А на рисунке 6.26 показано их забавное использование — слово «Безье», созданное с помощью кривых Безье. Короткие прямые линии показывают наклон в тех точках, где кривые соединяются (кстати, все они горизонтальные или вертикальные).
Рис. 6.26
Форма патча: патч Безье
Патч Безье — это патч, каждое ребро которого определяется кривой Безье (или де Кастельжо). Это еще один инструмент для моделирования сложных поверхностей. На рисунке 6.27 чайная чашка и блюдце Мартина Ньюэлла — не такие известные, как его чайник, — смоделированы с помощью 26 патчей Безье. Слева направо патчи разделяются на всё более мелкие «заплатки», чтобы продемонстрировать, как в компьютерной графике достигается плавная кривизна. Паутина точек, не расположенных на поверхности чашки или блюдца, представляет собой точки на концах аппроксимирующих отрезков. В отличие от лоскутов Кунса, которые интерполируют, патчи Безье (частично) аппроксимируют.
Робин Форрест перевел одну из книг Безье и получил от него копию французского издания с посвящением: «Робину Форресту, которому я обязан больше, чем он, возможно, думает». Робин говорил: «Я так и не разгадал эту загадку». Возможно, дело в том, что Робин показал Безье и всему миру связь между математикой, первоначально использованной Безье, и изощренным математическим аппаратом, предложенным Сергеем Натановичем Бернштейном, еще одним великим русским. Бернштейн был экспертом в нескольких областях, но здесь ключевое значение имеет теория аппроксимации. Для нее он сыграл такую же роль, как и Эдмунд Уиттекер для теории интерполяции.
Рис. 6.27
Забытая история компьютерной графики: триумвират
Из главы «Восход Цифрового Света» мы узнали, что первые его ростки появились в 1947 году и расцвели в начале 1950-х. Точно так же развивалась и компьютерная графика — область Цифрового Света, которая преобразует внутренние геометрические модели в видимые изображения. Первое десятилетие компьютерной графики, как и более ранние работы Кунса и Безье в области САПР, редко удостаивается упоминаний. Обычно ее историю начинают со Sketchpad. Отчасти в этой книге я ставлю перед собо задачу сформулировать, что сделало Sketchpad таким важным.
Айвен Эдвард Сазерленд впервые продемонстрировал Sketchpad в 1962 году в Массачусетском технологическом институте, полностью завершил разработку в январе 1963-го и тогда же опубликовал результаты в своей докторской диссертации. Это была программа для двумерного геометрического проектирования, обеспечивающая взаимодействие с пользователем. Ее очень высоко оценили в те годы, ценят до сих пор и будут ценить впредь. Но настоящее великолепие компьютерной графики — это трехмерные сцены и объекты, воплощенные в двумерной перспективе.
Сокурсник Сазерленда по аспирантуре Тимоти Эдвард «Тим» Джонсон доработал Sketchpad для операций с трехмерным пространством и перспективой. Он назвал программу Sketchpad III и обнародовал ее в своей магистерской диссертации в мае 1963 года. «III» обозначало три измерения, а не третью версию (соответственно, Sketchpad II не существует). Почему Sketchpad III не обрела такой же известности, как первая версия? Можно предположить, что переход от двух измерений к трем не воспринимался таким уж большим прорывом и казался довольно банальным шагом. Однако в результате открывались огромные, нетривиальные и далеко не очевидные возможности. Sketchpad III включала в себя решение для отображения перспективы, которое Джонсону предложил еще один аспирант — Лоуренс Гилман «Ларри» Робертс. Робертс защитил докторскую диссертацию в июне 1963 года. Таким образом, 1963-й стал годом триумвирата компьютерной графики в Лаборатории Линкольна Массачусетского технологического института: Айвен Сазерленд, Тим Джонсон и Ларри Робертс (рис. 6.29). И двое, Сазерленд и Джонсон, были учениками Стивена Кунса.
На рисунке 6.28 показаны значки, схематически изображающие три соответствующих достижения: квадрат для Sketchpad Сазерленда, куб для Sketchpad III Джонсона и куб в перспективе для вклада Робертса в Sketchpad III.
TX-2 — векторный дисплей на сетке
Триумвират делал свои разработки на компьютере TX-2, сыне Tixo и правнуке Whirlwind. Первые компьютеры конца 1940-х — 1950-х годов имели в основном растровые дисплеи. Затем на несколько десятилетий вошли в обиход векторные, которые отвлекли специалистов в области компьютерной графики, — тот самый каллиграфический обходной путь, о котором я упоминал в главе 4. Великая цифровая конвергенция вернула нас к растровым дисплеям, которые до сих пор остаются мировым стандартом.
Дисплей TX-2 представлял собой некую помесь растрового и векторного. Доступ к нему был произвольным, но он отображал только точки из фиксированного массива. В диссертации Айвена Сазерленда 1963 года он описывается как массив точек 1024 на 1024, что предполагает растровое отображение. Но точки можно было включать в случайном порядке, а не строку за строкой. Они через некоторое время гасли, если их не обновляли, из-за выгорания люминофора на экране электронно-лучевой трубки.
Рис. 6.28
Рис. 6.29
В главе «Восход Цифрового Света» мы говорили о двух типах каллиграфического отображения. В наиболее «каллиграфическом», соответствующем обычному письму типе непрерывная световая линия рисуется по мере движения луча. В другом типе такая линия возникает из отдельных световых пятен, не превращаясь в сплошной штрих. Рисунок 6.30 (слева, повторяющий иллюстрацию из главы «Восход Цифрового Света») каллиграфический. Он пунктирный, но пятна не ограничены точными координатами сетки.
Рисунок 6.30 (справа) выглядит как растровое изображение, но с существенным отличием: точки отображаются в векторном, а не в растровом порядке. Таким образом, этот дисплей отличается от любого из предыдущих. Световые пятна на нем — это не отображенные пиксели. Они лишь приближенно отображают каллиграфический штрих на фиксированной сетке. Дисплей TX-2 относится именно к такому типу. Вот что на самом деле происходило в TX-2: отрезки отображаемой линии рисовались последовательно, по порядку. Каждый из них преобразовывался в точки с помощью алгоритма рендеринга, подобного алгоритму Брезенхэма, и точки в нужных позициях последовательно включались электронной схемой дисплея.
Рис. 6.30
Должно быть, иногда возникали нежелательные эффекты, потому что значительную часть усилий Сазерленд потратил на предотвращение мигания экрана. Несколько отрезков линии отображались без мигания, но с большим количеством дисплей уже не справлялся и начинал мерцать. Сазерленд применил метод, при котором отображалась только каждая восьмая точка, а затем с каждым следующим проходом луча по очереди отображались остальные семь, но в результате линии выглядели так, словно «состояли из ползающих точек». Получилась некая форма чересстрочной развертки для векторного, а не растрового отображения. Сазерленд также использовал прием со стохастическим (случайным) выбором отображаемых точек, из-за чего экран
Поделиться книгой в соц сетях:
Обратите внимание, что комментарий должен быть не короче 20 символов. Покажите уважение к себе и другим пользователям!