Сам экран компьютера можно считать решеткой, и в таком случае игра — это серия изображений, которые мы контролируем (снова представлениев действии).
Изображения можно создавать самыми разными способами с помощью компьютерной графики.Простые растровыеметоды подразумевают сохранение каждого пиксела. Нашу первую картинку можно сохранить в виде 64 цифр:
Здесь 0 означает белый пиксел, а 1 — черный пиксел. Мы создаем изображения, продвигаясь по линиям сверху вниз и быстро устанавливая значение пикселов.
Чем больше пикселов, тем яснее изображение, но и тем больше цифр необходимо сохранить, чтобы представитьего. Чтобы сохранить изображение робота в более высоком разрешении, нам понадобится 256 цифр вместо всего лишь 64:
Для этих изображений мы выбираем одну из всего двух цифр на каждый пиксел — 1 или 0, поэтому у нас всего два цвета, белый и черный. Если использовать больше цифр, где каждая будет представлять свой цвет, то можно подобным образом сохранять цветные изображения.
Альтернативное представлениеизображения — сохранить его в виде линий и фигур, из которых оно состоит. Это так называемые векторныеметоды. Мы определяем начальные и конечные точки для тысяч линий и быстро рисуем их на экране. Например, чтобы нарисовать квадрат, вместо обозначения каждого пиксела в сетке вы сохраняете серию инструкций:
Линия (Север, 50)
Линия (Восток, 50)
Линия (Юг, 50)
Линия (Запад, 50)
Чтобы нарисовать изображение, мы просто выполняем инструкции. Такое представлениев целом занимает гораздо меньше места, но у него есть еще одно большое преимущество. Инструкция выше позволяет нарисовать квадрат со стороной 50. Допустим, мы хотим получить изображение в 10 раз больше. В этом случае просто умножаем все значения на 10. Если же мы хотим, чтобы квадрат был в 10 раз меньше, то делим их на 10. Благодаря этому представлениюмы можем увеличить изображение до любого размера, например чтобы показать его на большом экране, но без необходимости хранить еще больше данных и не теряя точности.
Вот почему представлениедиаграмм как в pdf-файлах занимает меньше места и выглядит одинаково хорошо, как бы вы ни увеличивали изображение. В таких файлах хранятся векторные версии. Изображение в формате jpeg требует больше памяти, чтобы сохранить картинку в более высоком разрешении, и при сохранении нужно указать, каким именно оно будет. Вот почему, приближая изображение в формате jpeg, вы видите, что все расплывается и линии становятся неровными.
С помощью векторных методов мы создаем трехмерные формы, объединяя много, порой десятки тысяч, так называемых графических примитивов —сфер, кубов, цилиндров и так далее. Различные комбинации позволяют нам создавать желаемые сложные формы.
Существуют системы, которые симулируют распределение световых лучей в искусственном мире (для этого требуется компьютерное моделирование— на сей раз чтобы показать, как источники света освещают предметы). С их помощью создают фотореалистичные изображения. Кроме того, к нашим графическим примитивам добавляют скрипты, отвечающие за сложные движения персонажей, — их часто создают, снимая движения настоящих актеров, — и таким образом фигуры будут двигаться как мы хотим. Ограничения — это объем доступных вычислительных мощностей, качество кода, который пишут кодировщики-программисты, чтобы графика выглядела еще естественнее, и воображение творческого человеческого разума. Но даже простая сетка и несложные правила кодирования могут дать замечательные результаты.
Играем в сетке
Давайте начнем с простого — с игры, в которой есть квадратная сетка и набор правил, в зависимости от которых на ней появляются и исчезают пикселы. Значение пиксела меняется и зависит от того, сколько других пикселов находится рядом. Звучит не очень интересно, правда? Но не торопитесь с выводами. Даже в этой простой игре происходит много интересного, и мы используем ее, чтобы кое-что понять о мире природы.
Игра называется «Жизнь», ее автор — математик Джон Конвей. Впервые правила игры были опубликованы в 1970 г., и впоследствии она приобрела популярность у программистов по всему миру. Правила просты, хотя Конвей приложил массу усилий, чтобы их правильно сбалансировать и гарантировать интересный игровой процесс.
Читать дальше
Конец ознакомительного отрывка
Купить книгу