Читать «Корпорация гениев» онлайн - страница 16

Эд Кэтмелл

Подобно Уолту Диснею и пионерам ручной анимации, мы – люди, жаждавшие рисовать с помощью компьютеров – пытались создавать нечто новое. Когда одному из моих коллег по лаборатории приходило в голову что-то необычное, все остальные немедленно цеплялись за эту идею и двигали ее дальше. Конечно, у нас бывали и неудачи. Однако нас не покидало постоянное ощущение неуклонного движения к цели, пусть пока и далекой.

Задолго до того, как я услышал о проблеме Disney с пузырьками, мы с моими коллегами провели немало бессонных ночей, размышляя над возможностью создания плавно изогнутых поверхностей с помощью компьютера – а также над тем, как добавить создаваемым нами изображениям насыщенности и сложности. Решение этой проблемы было сформулировано в моей диссертации под названием «Алгоритм моделирования подразбиений при создании изогнутых поверхностей на экране компьютера».

Значительная часть моих размышлений в каждый миг бодрствования в то время носит технический характер и сложна для объяснения, однако я тем не менее попытаюсь. Идея «подразбиения поверхностей» состояла в том, что вместо изображения всей поверхности целиком – к примеру, ярко-красной бутылки – мы могли бы разделить эту поверхность на множество небольших кусочков. Значительно проще раскрасить и изобразить на экране каждый крошечный кусочек, а затем соединить их для создания изображения в целом (как я уже отметил, возможности компьютерной памяти в те времена были довольно слабыми, поэтому мы потратили кучу времени и сил на придумывание различных трюков для преодоления этого ограничения). Но что, если бы мы захотели, чтобы наша бутылка была не красной, а полосатой? В своей диссертации я разработал способ, с помощью которого вокруг любого объекта можно «обернуть» тот или иной шаблон с текстурой.

Чтобы понять, как работает этот метод (который я назвал «наложение текстур»), представьте себе эластичную оберточную бумагу, которую можно плотно приложить к изогнутой поверхности. В качестве первого примера я смог наложить изображение Микки-Мауса на волнистую поверхность.

Для иллюстрации некоторых других своих идей я использовал образы Винни-Пуха и Тигры. Может быть, я и не был готов работать на Disney, однако персонажи этой компании, как и прежде, были для меня идеалом.

В лаборатории Университета штата Юта мы изобретали новый язык. Один из нас мог придумать глагол, второй – существительное, а третий ломал голову над соединением этих элементов в нечто осмысленное. Мое изобретение, Z-buffer, стало прекрасным примером развития сделанного другими. Z-buffer был призван решить проблему, возникающую, когда один анимированный объект полностью или частично спрятан за другим. И хотя данные, описывающие каждый фрагмент спрятанного объекта, находятся в памяти компьютера (то есть при необходимости вы всегда можете увидеть этот объект), зритель должен видеть только то, что мы хотим ему показать. И проблема состояла в том, чтобы научить компьютер это делать. К примеру, если куб на экране частично загорожен сферой, то зритель должен был видеть поверхность сферы и части куба, не заслоненные ею. Z-buffer решал эту задачу, добавляя параметр глубины для каждого объекта в трехмерном пространстве, а затем давая компьютеру указание сопоставлять параметры объекта на переднем плане. На словах звучит просто, но реализовать это на деле оказалось крайне нелегко. Тем не менее Z-buffer присутствует в наши дни в каждой компьютерной игре и каждом компьютерном чипе, произведенном на планете.