Остальные магистранты того периода будут играть ключевые роли в развитии графики современных персональных компьютеров. Список имен звучит как перекличка гениев. Алан Кей (защитивший диссертацию в 1969-м) кроме всего прочего станет изобретателем объектно-ориентированного программирования и современного графического интерфейса пользователя («указал и щелкнул») — и то и другое сегодня используется повсеместно. В начале 70-х он будет отстаивать безумную (как тогда казалось) идею создания компьютера размером с блокнот, который можно носить с собой. Джон Уорнок (защитился в 1969-м) будет заниматься новаторскими изысканиями в области цифровых типографских шрифтов и подготовки публикаций с помощью настольных издательских систем, что в итоге приведет его к креслу соучредителя Adobe Systems. Джим Кларк (защита состоялась в 1974 году) посвятил свою диссертацию виртуальным дисплеям, основал компанию Silicon Graphics, которая стала заниматься производством компьютеров для высокоскоростной 3D-графики, и стал соучредителем Netscape на рассвете эры Всемирной паутины. Студент Нолан Бушнелл (диплом бакалавра получит в 1969-м) занялся популяризацией видеоигр и с этой целью основал компанию Atari. Еще одно светило, которое Дэйву Эвансу удалось заполучить на факультет, Том Стокхэм, станет основоположником цифровой обработки фотографий и цифровой звукозаписи.
Кэтмелл оказался в этих компьютерных Афинах почти случайно. Он был обычным местным мальчишкой из школы Granite[14] на другом конце города. Он родился 31 марта 1945 года в Паркерсберге, штат Западная Вирджиния, вырос в Солт-Лейк-Сити, был старшим из пяти детей в семье мормонов. Поступил в университет в 1963-м, но на два года прервал обучение, отправившись с миссионерскими целями в Нью-Йорк — сначала в Кони-Айленд, затем в Скарсдейл. Приобретение миссионерского опыта было типичной школой для молодых членов общины мормонов.
* * *
Перерыв в учебе оказался судьбоносным. Он вернулся в университетский кампус как раз тогда, когда компьютерная наука набирала обороты. Алан Кей, к тому времени уже получивший степень, вел у Кэтмелла введение в программирование. Кей вспоминает, что Кэтмелл обычно из любопытства выходил за рамки задания. «Ему просто нравилось программирование, и по обыкновению он добавлял к заданию любые мелочи, которые приходили ему в голову во время работы, — говорит Кей. — Это всегда хороший знак».
Окончив университет в 1969-м и получив диплом бакалавра вычислительной техники и физики, Кэтмелл начал карьеру в Boeing, но вскоре попал под волну массовых увольнений вместе с тысячами других сотрудников. Он вернулся на факультет в магистратуру, обдумывая радикальную идею. В детстве он мечтал работать художником в Disney, боготворил Уолта Диснея и делал книжки с бегущими картинками, готовясь к будущей карьере художника мультфильмов. Однако уже в старших классах он с сожалением обнаружил, что не умеет рисовать. Теперь его занимала новая мысль: с анимацией ему могут помочь компьютеры! Используя компьютерную графику, он смог бы создавать не только отдельные картинки, но и полнометражные художественные анимационные фильмы.
«Компьютерная анимация в то время всех просто свела с ума, — рассказывает Фред Парк, однокурсник Кэтмелла по магистратуре, который тоже работал над анимацией. — Люди были абсолютно зациклены на том, где взять компьютер, чтобы заставить двигаться неподвижные картинки».
Было очевидно, что потребуются годы, чтобы аппаратное обеспечение смогло удовлетворять всем требованиям этой сумасшедшей идеи, да и в программировании и математике проблем хватало. Несмотря на это, Кэтмелл был уверен, что лучшего места и времени, чем «здесь и сейчас», для реализации задуманного не найти.
В 1972-м Кэтмелл сделал короткометражный ролик в качестве выпускного проекта. Он решил оцифровать и оживить то, что было ближе всего, под рукой, — собственную левую руку. При работе над роликом постоянно возникали сложности. Начал Кэтмелл с того, что обмазал руку гипсом, чтобы сделать слепок. Когда настало время его снимать, вместе с гипсом с наружной стороны кисти пришлось с ужасной болью выдернуть все волоски. Затем из слепка он сделал гипсовый макет, а на нем нарисовал чернилами около трехсот пятидесяти маленьких треугольников и многоугольников.
Когда все было готово, изображения многоугольников покрыли гипсовую руку настоящей сетью. Так же, как кривую линию можно представить последовательностью маленьких прямых отрезков, криволинейный объект можно представить сетью многоугольников. Цифровые аналоги этих многоугольников могут представить поверхность руки на компьютере. Он старательно измерил координаты каждого угла многоугольника и вбил их в компьютер с помощью клавиатуры для телетайпа. Используя написанную им программу 3D-анимации, он смог изобразить на экране руку и заставить ее двигаться.
Увидеть это было непростой задачей. Дисплей никогда не показывал целого изображения одномоментно — требовалось около тридцати секунд, чтобы зациклить картинку. Кэтмелл мог увидеть общие очертания того, что получилось, только сняв все это на фотоаппарат при длинной экспозиции и затем посмотрев на снимок. Как только результат оправдал ожидания, он взял в руки 35-миллиметровую видеокамеру, которой на факультете пользовались для съемки с лучевых мониторов, и снял ролик.
Этот ролик длиной примерно в минуту был чем-то невероятным для того времени. Он показывал кисть, которая поворачивалась, раскрывалась, закрывалась, а потом — самое поразительное — зритель оказывался сверху и внутри кисти и смотрел по сторонам. Примерно в это же время Парк создал компьютерную анимацию лица своей жены. Эти два ролика долгие годы оставались лучшими в компьютерной анимации. (Фрагменты обоих роликов были использованы в фантастическом фильме «Мир будущего» 1976 года, о котором мало кто теперь помнит.)
Профессор Сазерленд начал переговоры с Walt Disney Со. по поводу использования компьютерной графики в процессе производства традиционных мультфильмов. Зная о любви Кэтмелла к мультипликации, Сазерленд взял его с собой на встречу с руководством компании. Компьютерная графика была им неинтересна, однако Кэтмеллу предложили присоединиться к команде моделирования, чтобы он помог использовать компьютер для создания нового аттракциона «Космическая гора», построенного по принципу американских горок, который должны были установить в новом Дисней-ворлде[15] в Орландо (Флорида). Кэтмелл отказался, и они вернулись в Солт-Лейк-Сити.
При работе над дипломным проектом Кэтмелл бился еще над одной задачей, связанной с трехмерными кривыми. Ему хотелось использовать бикубические фрагменты — математическую модель представления криволинейных поверхностей, которая позволяет сделать объект более гладким, чем сетка многоугольников со всеми их углами. Кэтмеллу удалось вычислить, как компьютер сможет решить, какой объект из бикубических фрагментов сделать видимым, а какой — нет (потому что он находился за чем-то еще). Это была одна из тех задач в компьютерной графике, которые на первый взгляд кажутся простыми, но оказываются очень сложными для реализации на практике. Решение Кэтмелла основывалось на изобретении, которое он назвал Z-буфер — область памяти, в которой хранилась информация о расстоянии между зрителем и ближайшей поверхностью в каждой точке изображения.
Использование бикубических фрагментов и Z-буфера уже было настоящим прорывом. Однако главное достижение дипломной работы Кэтмелла заключалось в другом. Играя с математикой криволинейных объектов, он нашел способ проектировать изображение — любое — на внешнюю поверхность объекта. Благодаря этому изобретению, известному как наложение текстуры, поверхность любого объекта в компьютерной графике можно сделать, скажем, мраморной или древесной. Первым наложением текстуры стала проекция изображения Микки Мауса на волнистую поверхность. В своей диссертации он проиллюстрировал эту идею проекцией изображения Винни-Пуха и Тигры.
Трех изобретений Кэтмелла, описанных им в 1974 году в диссертации, — бикубические фрагменты, Z-буфер и наложение текстуры — уже было достаточно, чтобы он стал знаменитостью в компьютерной графике, даже если бы больше он ничего не сделал. Но сам Кэтмелл их воспринимал только как промежуточные шаги по направлению к главной цели — созданию полнометражных анимационных фильмов в компьютерной графике.
Однако дальнейший путь недавнего выпускника магистратуры по компьютерной графике был не так легко предсказуем. Ни ученые, ни бизнесмены Америки, ни, естественно, индустрия развлечений не собирались нанимать на работу людей с опытом Кэтмелла. Преподавателем в Университет Огайо, где хоть как-то развивалась компьютерная графика, его не взяли. Он возложил все надежды на новый проект профессора Сазерленда, который только что уехал в Голливуд, чтобы основать новую компанию по работе с компьютерной анимацией — Picture/Design Group. Она должна была заниматься производством роликов с помощью компьютерной анимации для последующего использования в рекламе, телевизионных шоу и фильмах. Кэтмелл ждал в Юте, пока Сазерленд вместе с партнерами искал инвесторов.