Як топили Титанік

Працювала над поверненням "Титаніка" до життя студія 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. Машини були встановлені в невеликій кімнаті, пов'язані із загальними мишею, клавіатурою та монітором через перемикач, та за допомогою спеціальної програми-сценарію автоматично налаштовані.

Підготував Дмитро БОРОДАЄНКО за матеріалами Digital Domain