Читать «Корпорация гениев: Как управлять командой творческих людей» онлайн - страница 16
Эд Кэтмелл
Подобно Уолту Диснею и пионерам ручной анимации, мы — люди, жаждавшие рисовать с помощью компьютеров — пытались создавать нечто новое. Когда одному из моих коллег по лаборатории приходило в голову что-то необычное, все остальные немедленно цеплялись за эту идею и двигали ее дальше. Конечно, у нас бывали и неудачи. Однако нас не покидало постоянное ощущение неуклонного движения к цели, пусть пока и далекой.
Задолго до того, как я услышал о проблеме Disney с пузырьками, мы с моими коллегами провели немало бессонных ночей, размышляя над возможностью создания плавно изогнутых поверхностей с помощью компьютера — а также над тем, как добавить создаваемым нами изображениям насыщенности и сложности. Решение этой проблемы было сформулировано в моей диссертации под названием «Алгоритм моделирования подразбиений при создании изогнутых поверхностей на экране компьютера».
Значительная часть моих размышлений в каждый миг бодрствования в то время носит технический характер и сложна для объяснения, однако я тем не менее попытаюсь. Идея «подразбиения поверхностей» состояла в том, что вместо изображения всей поверхности целиком — к примеру, ярко-красной бутылки — мы могли бы разделить эту поверхность на множество небольших кусочков. Значительно проще раскрасить и изобразить на экране каждый крошечный кусочек, а затем соединить их для создания изображения в целом (как я уже отметил, возможности компьютерной памяти в те времена были довольно слабыми, поэтому мы потратили кучу времени и сил на придумывание различных трюков для преодоления этого ограничения). Но что, если бы мы захотели, чтобы наша бутылка была не красной, а полосатой? В своей диссертации я разработал способ, с помощью которого вокруг любого объекта можно «обернуть» тот или иной шаблон с текстурой.
Чтобы понять, как работает этот метод (который я назвал «наложение текстур»), представьте себе эластичную оберточную бумагу, которую можно плотно приложить к изогнутой поверхности. В качестве первого примера я смог наложить изображение Микки-Мауса на волнистую поверхность.
Для иллюстрации некоторых других своих идей я использовал образы Винни-Пуха и Тигры. Может быть, я и не был готов работать на Disney, однако персонажи этой компании, как и прежде, были для меня идеалом.
В лаборатории Университета штата Юта мы изобретали новый язык. Один из нас мог придумать глагол, второй — существительное, а третий ломал голову над соединением этих элементов в нечто осмысленное. Мое изобретение, Z-buffer, стало прекрасным примером развития сделанного другими. Z-buffer был призван решить проблему, возникающую, когда один анимированный объект полностью или частично спрятан за другим. И хотя данные, описывающие каждый фрагмент спрятанного объекта, находятся в памяти компьютера (то есть при необходимости вы всегда можете увидеть этот объект), зритель должен видеть только то, что мы хотим ему показать. И проблема состояла в том, чтобы научить компьютер это делать. К примеру, если куб на экране частично загорожен сферой, то зритель должен был видеть поверхность сферы и части куба, не заслоненные ею. Z-buffer решал эту задачу, добавляя параметр глубины для каждого объекта в трехмерном пространстве, а затем давая компьютеру указание сопоставлять параметры объекта на переднем плане. На словах звучит просто, но реализовать это на деле оказалось крайне нелегко. Тем не менее Z-buffer присутствует в наши дни в каждой компьютерной игре и каждом компьютерном чипе, произведенном на планете.