📚 Hub Books: Онлайн-чтение книгРазная литератураПиксель. История одной точки - Элви Рэй Смит

Пиксель. История одной точки - Элви Рэй Смит

Шрифт:

-
+

Интервал:

-
+
1 ... 74 75 76 77 78 79 80 81 82 ... 170
Перейти на страницу:
что Ньюэлл смоделировал не только чайник, но и целый сервиз с чашками и блюдцами, ложками и сливочником.

На рисунке 6.11 показано, как смоделировать сложный объект — чайник — на компьютере при помощи геометрии. Та же идея используется для моделирования формы каждого персонажа в фильмах, созданных по тому же принципу, что и фильмы студии Pixar. Перед вами две разные модели чайника Ньюэлла, которые — по понятным причинам — называются каркасными (wireframe) представлениями. Модель слева — это сетка из треугольников. Чайник справа состоит из четырехсторонних полигонов. Диагонали, проведенные в каждом из четырехсторонних полигонов, преобразуют его в модель из треугольников. Треугольники плоские, но мы составляем криволинейные поверхности из такого количества маленьких треугольников, что на соответствующем расстоянии совокупная поверхность кажется гладкой и искривленной. Вскоре мы опишем, как создавать такие сетки, но пока предположим, что они существуют.

На самом деле такие картинки — не то, что находится внутри компьютера. Внутри компьютера нет картинок, даже похожих на геометрию. Изображения — это визуализации геометрических моделей внутри компьютера при помощи пикселей, которые отображаются на дисплее, а в данном случае — на печатной странице, которую вы сейчас читаете.

Что такое «геометрическая модель внутри компьютера»? Вспомним, что внутри компьютера есть только узоры из информации. Хотя биты не обязательны, как мы обсуждали, в наши дни узоры информации всегда хранятся именно в них. Таким образом, модель — определенный узор из высоких и низких напряжений в элементах интегральной микросхемы, расположенной где-то в недрах компьютера.

В предыдущих главах я также отмечал, что биты не обязательно представляют числа, но в геометрических моделях для компьютерной графики они именно так и делают. Каждый отрезок линии, образующий треугольник, то есть каждая из его сторон, представлен числами, обозначающими положение двух его концов. Другими словами, в памяти компьютера хранятся координаты каждой вершины (точки, где сходятся стороны), ее расположение по горизонтали, вертикали и глубине. Таким образом, модель, состоящая из треугольников, внутри компьютера — это просто набор битов, которые представляют числа, обозначающие положение вершин треугольников в трехмерном пространстве. Модель — это, по сути, список чисел, обычно очень длинный. В списке для чайника их будет около 26 000; для Базза Лайтера потребуются миллионы. Усиление — единственный способ, благодаря которому мы справляемся с такими объемами.

Рис. 6.10

Для геометрической модели обычно хранится еще один вид информации. Его можно считать структурой модели: эта точка соединена с той, этот треугольник имеет общее ребро с тем, эта ручка чайника соединена с корпусом или бедренная кость персонажа соединена с берцовой. Такие фрагменты информации — тоже числа, это адреса в памяти компьютера. Например, за тремя координатами точки следует еще одно число. Оно сообщает программе, куда обратиться в массиве памяти, чтобы найти другую точку, связанную с этой.

Компьютер, конечно же, не понимает, что означают эти данные. Он даже не подозревает, что паттерны из высокого и низкого напряжения на самом деле — геометрическая модель. Чтобы разобраться в них, нужна программа. Именно программа «знает», что биты представляют собой числа, а хранящиеся в памяти числа представляют собой треугольники. Или что число — это адрес, по которому находится примыкающий элемент. Длинный список бессмысленных шагов — программа, хранящаяся внутри компьютера, — придает смысл длинному списку чисел — модели, хранящейся внутри компьютера, — и в результате появляется картинка на дисплее. На самом деле именно человек, написавший программу, знает смысл ее самой и данных, которыми она оперирует.

Вам не обязательно видеть модель в процессе ее создания. В первые дни компьютерной графики программисты делали модели, не видя их. Мартин Ньюэлл не видел модель своего чайника, когда программировал ее на компьютере. Но современные программы компьютерной графики позволяют нам видеть модель, по мере того как мы ее проектируем. Как мы скоро узнаем, день, когда стало возможно увидеть модель во время ее создания, считается очень почитаемой датой в календаре истории компьютерной графики.

Как список чисел превращается в чайник или в Базза Лайтера? Если вы знаете, как один треугольник проходит путь от битов до отображенных пикселей, то компьютерная суперспособность Усиление справится со всем остальным — с той частью тяжелой работы, которую ни один человек, независимо от того, насколько он опытен, умен или сведущ в компьютерах, не сделает. Компьютеры очень хорошо справляются с монотонным выполнением множества бессмысленных инструкций. Итак, наша цель — вывести на экран один треугольник. Если мы поймем, как это делается, мы поймем всё.

Как нарисовать треугольник

Модель, состоящая из треугольников, трехмерна, но ее изображение, то есть геометрическая модель, представленная в пикселях пространства Отображения, имеет только два измерения. Два каркасных чайника, изображенные на рисунке 6.11, кажутся трехмерными, потому что они визуализированы в перспективе, в результате чего треугольники несколько сплющились. Но они всё еще остаются треугольниками. Именно эти двумерные треугольники мы сейчас будем учиться рисовать.

Это легко сделать на старомодном векторном дисплее. Программа просто дает указание дисплею провести отрезок — сторону треугольника — от одной из его конечных точек до другой. А затем программа повторяет инструкцию для двух других сторон. Вот и всё. Перед нами на дисплее изображение треугольника. Из короткого списка чисел, хранящихся в памяти в виде битов, мы получили изображение треугольника на дисплее. Используя чудо Усиления, мы заставляем компьютер очень быстро повторять этот простой процесс десятки тысяч раз, чтобы получить геометрическую модель целого чайника в виде каркасного изображения на векторном дисплее.

Хотя в отображении треугольников таким образом концептуально нет ничего сложного, компьютерная графика потратила годы, чтобы сделать этот процесс эффективным. Например, пустая трата драгоценного времени — рисовать сторону треугольника более одного раза, если она общая с другим треугольником. Мы упустили из виду несколько других вопросов, важных для компьютерной графики, но это технические подробности (см. комментарии на сайте). Вам не нужно знать о них, чтобы интуитивно понять, насколько просто преобразовать треугольник из числовых значений, хранящихся в ячейках памяти компьютера, в изображение на экране дисплея. Или в сетку из треугольников, изображающую чайник.

Рис. 6.11

На векторном дисплее легко нарисовать отрезок линии, а значит, и треугольник. Но современные дисплеи не векторные. Они растровые — с изображениями, которые формируются из отображенных пикселей. Как же провести отрезок прямой линии под произвольным углом на устройстве, элементы отображения на котором расположены строго в рядах и столбцах? Этот же вопрос можно задать иначе: как вы визуализируете линейный сегмент на растровом дисплее?

Первым алгоритмом

1 ... 74 75 76 77 78 79 80 81 82 ... 170
Перейти на страницу:

Комментарии

Обратите внимание, что комментарий должен быть не короче 20 символов. Покажите уважение к себе и другим пользователям!

Никто еще не прокомментировал. Хотите быть первым, кто выскажется?