Как топили "Титаник"

Многим известна одна из последних киноверсий гибели "Титаника", снятая Джеймсом Камероном. Фильм этот был выпущен в прокат 19 декабря 1997 года, и прославился в числе прочего неплохими компьютерными спецэффектами. Интересен этот фильм не только с художественой точки зрения, но и с технической - вместо декораций в нем используется виртуальная копия океанского лайнера, плывущая по совершенно виртуальному океану. Кроме того, техника и программное обеспечение, использованные в нем, свидетельствуют о падении авторитета Silicon Graphics в Голливуде. Впрочем, обо всем по порядку.

Работала над возвращением "Титаника" к жизни студия Digital Domain (www.d2.com), известная по фильмам "Интервью с вампиром", "Правдивая ложь", "Аполлон 13", "Пик Данте" и "Пятый элемент". Я думаю, профессионализм этих работ доказывать не нужно.

Построение модели "Титаника" в натуральную величину показалось создателям фильма слишком дорогим удовольствием, и поэтому для большинства сцен использовались миниатюрные модели в сочетании с дополнительными элементами вроде океана, дыма, людей и птиц. Для обработки всего этого использовались 350 процессоров SGI, 200 станций Digital Alpha и 5 терабайт дискового пространства, соединенные сетью 100 Мбит/с.

Создание спецэффектов начинается с подготовки фотографий, снятых традиционными методами и отсканированных. Каждая сцена фильма представляется набором каталогов, один из которых - "каталог элементов" - содержит все снимки, используемые в создании сцены. Первоначальная обработка этих снимков производится на компьютере художника (рабочей станции SGI или NT) и может включать как создание новых элементов (например, создание трехмерных моделей), так и модификацию существующих. Художник выбирает, какие виды обработки в какой последовательности применить к исходным изображениям-элементам.

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

После того, как все элементы созданы, осуществляется "композиция": цвета отдельных элементов приводятся в соответствие с оригинальной фотографией и разбиваются на составляющие для создания окончательного изображения. Здесь также установки подбираются на компьютерах художников, а пакетная обработка производится всеми машинами в упряжке.

Теперь о том, как все это было реализовано в Digital Domain. Цель очевидна: из ограниченного бюджета выжать максимум спецэффектов за минимальное время. Ускорить первый, интерактивный, этап очень сложно. Он зависит от человеческого таланта, и к тому же связан со специфическими пакетами под ограниченным набором платформ и высококлассными графическими ускорителями, которые подходят не для всех этих пакетов и платформ. С другой стороны, стадия пакетной обработки ускоряется достаточно просто, ведь для нее требуются только вычислительная мощь, большие хранилища данных и быстрая сеть.

Для ускорения пакетной обработки студия Digital Domain решила сменить станции SGI на DEC Alpha, обеспечивающие максимальную скорость вычислений с плавающей точкой и неплохо вписавшиеся в бюджет фильма.

После этого осталось выбрать операционную систему. Выбор систем для Alpha довольно богат: Windows NT, Digital Unix и Linux. NT отпала сразу, поскольку под ней стандартные приложения SGI, с которыми работали в Digital Domain, не идут, а перевод их из-под SGI Irix обошелся бы слишком дорого. Кроме того, NT не поддерживает ни сетевой файловой системы NFS, ни автомонтировки, ни символических ссылок, в то время как на этих средствах построена модель распределенных вычислений Digital Domain.

Digital Unix на испытаниях вписалась в вычислительную среду DD и показала неплохую производительность, но ее подвела высокая стоимость и недостаток гибкости - каждый экземпляр системы нужно приобретать и конфигурировать отдельно. Также эта система не справилась с такими экзотическими, но критичными для Digital Domain задачами, как управление несколькими редкими ленточными накопителями, подключение большого числа пользователей к одной системе и использование файл-сервера на NT.

Со всеми этими и многими другими задачами справилась Linux, превзошедшая Digital Unix и по гибкости, и по производительности. Единственным недостатком свободной операционной системы оказалась необходимость выделить инженера для ее установки и поддержки. К счастью, в Digital Domain нашлись специалисты, имеющие опыт работы с Linux на платформе Intel. Помог и опыт работы студии с другой версией Unix - SGI Irix.

Итак, выбор платформы остановился на комбинации Alpha/Linux. Было закуплено 160 станций, на 105 из них был установлен дистрибутив RedHat Linux 4.1, в котором пришлось заменить ядро версии 2.0.18, не поддерживающее материнскую плату PC164, на новое 2.1.42. Единственная возникшая при этом проблема, связанная с некорректной обработкой одного исключения и приводившая к падению программ Digital Domain, была устранена в версии ядра 2.1.43. Машины были установлены в небольшой комнате, связаны с общими мышью, клавиатурой и монитором через переключатель, и с помощью специальной программы-сценария автоматически сконфигурированы.

Наконец, главное. О том, как новые машины справились со своей задачей. Скачок скорости по сравнению со старыми машинами SGI составил 3,5 раза. С начала июня до конца августа было создано более трехсот тысяч кадров, все это время машины работали без перезагрузок 24 часа в сутки семь дней в неделю. Переход на новую платформу студия оценила как успешный - переписывать наработанные программы не пришлось, большая часть работы по переходу была связана с настройкой Linux под специфические нужды Digital Domain. В дальнейшем студия собирается использовать Alpha Linux не только для пакетной обработки, но и для более творческих задач, и призывает разработчиков графических программ поддерживать эту платформу. А это значит, что SGI оказывается между двух огней: с одной стороны, графические станции вроде Kayak на Windows NT теснят продукцию Silicon Graphics на нижнем уровне, с другой - преимущество SGI в области параллельных вычислений также начинает таять.

Подготовил Дмитрий БОРОДАЕНКО по материалам Digital Domain

Версия для печатиВерсия для печати

Номер: 

10 за 1998 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!