Базовые принципы геометрии известны уже как минимум 600 лет. В эпоху итальянского Возрождения ряд видных художников начали понимать геометрию перспективного рисунка. Эта техника позволяет художнику создавать реалистичные изображения трехмерного мира на двумерном холсте. Человеческий глаз делает примерно то же самое, только роль холста играет сетчатка. Полное описание довольно сложно, но в принципе художник
Это геометрическое описание можно перевести в простую математическую формулу, которая превращает три координаты точки в пространстве в две координаты соответствующего изображения на холсте. Чтобы применять эту формулу, нужно только знать положение холста и глаза зрителя по отношению к объекту. По практическим соображениям эту трансформацию, называемую проекцией, применяют не к
Именно это, в сущности, происходит, когда нам показывают вид деревни глазами дракона. У компьютера в памяти уже хранятся репрезентативные координаты всех значимых элементов деревни. Сетчатка драконьего глаза играет роль холста. Если мы знаем, где она находится и под каким углом располагается, то можем воспользоваться формулой и вычислить, что дракон должен видеть. Это дает один кадр фильма, который показывает зрителю деревню в конкретный момент времени. На следующем кадре деревня остается на том же месте, но дракон – и, соответственно, сетчатка его глаза – немного смещается. Вычисляем, куда именно, повторяем расчет – и получаем следующий кадр. Следуем по маршруту дракона в небесах и кадр за кадром складываем картину того, что он видит.
Гравюра «Художник, рисующий лютню» Альбрехта Дюрера иллюстрирует проецирование трехмерного пространства на двумерный холст
Это не буквальное описание процесса, разумеется, а всего лишь основная идея, лежащая в его основе. Существуют специальные приемы, позволяющие сделать расчеты более эффективными и сэкономить компьютерное время. Для простоты мы их проигнорируем.
Аналогичный расчет применяется и для сцен с приближающимся драконом, наблюдаемых с земли. Здесь нам нужно другое множество точек, определяющее положение дракона в пространстве, а экран, на который все проецируется, находится на земле, а не в глазу дракона. Для определенности возьмем вид со стороны дракона. С его точки зрения, его глаз неподвижен, зато
Мы при этом представляем все в драконовой «системе отсчета», которая неподвижна
Любое жесткое движение является комбинацией параллельного переноса и вращения (но параллельный перенос может осуществляться на нулевое расстояние, а вращение – на нулевой угол, в этих случаях преобразования не производят никакого действия). На самом деле это неправда: существует еще один тип движения – отражение, которое работает по принципу зеркала. Но отражение невозможно получить при помощи непрерывного перемещения, так что про него можно забыть.