Журнал «Компьютерра» № 7 от 21 февраля 2006 года - Компьютерра (мир бесплатных книг TXT) 📗
С недавних пор, благодаря команде сайта «Математические этюды», каждый может самостоятельно оценить «Кошечку», найдя ее на www.etudes.ru. Там же и оригинальная статья о технологии создания фильма, напечатанная в журнале " Проблемы кибернетики" только в 1974 году. Попробуем уточнить место этой работы на эволюционной шкале компьютерной анимации.
Честно говоря, начиная исследовать историю «Кошечки», я одно время даже думал, не окажется ли она самым первым примером компьютерной анимации. Но это, конечно, не так. Например, Юрий Баяковский, один из активных участников «героического периода» становления компьютерной графики, после просмотра «Кошечки» припомнил, что еще во второй половине 50-х в ИПМ имени Келдыша РАН на машине «Стрела» (где память была на электронно-лучевых трубках, единичные биты светились, нулевые – нет) инженеры «делали анимации, заполняя соответствующим образом память ноликами и единичками». Можно предположить, что и на Западе у компьютерной анимации был длительный период «фольклорного» развития. Похоже, что официальной хронологии у компьютерной анимации пока нет, так как временные шкалы, составляемые разными исследователями, не во всем согласуются. В любом случае, «Кошечка» попадает в довольно малонаселенную зону. Компьютерная анимация в конце 60-х еще только готовилась стать индустрией, а работы первых художников, применивших ее в творчестве, иногда сразу оказывались в лучших музеях современного искусства.
Зато вполне возможно, что две базовые для анимационных технологий идеи были впервые реализованы именно в этом фильме, причем задолго до их появления в мэйнстриме.
Представление трехмерной пространственной формы в виде иерархической структуры данных. Структура напоминала октодерево (octree), задающее любую пространственную форму так: в нулевом приближении это куб, содержащий наш объект, в первом приближении – совокупность кубиков половинного размера, содержащая объект, и так далее. «Кошечка» задавалась более экономичной, адаптивной иерархией «брусков» (усеченных пирамид), аппроксимирующих ее торс, ноги, усы и т. д.
Задание траекторий движения тела при помощи дифференциальных уравнений.
Первая из идей, при всей ее важности (Мэттью Уорд даже выделяет октодерево как отдельный этап в истории компьютерной графики, относя его к 1982 году – четырнадцать лет спустя после «Кошечки»), все-таки кажется мне принципиально более простой в придумывании и реализации, чем вторая. Легко представить, что в «фольклоре» подобные методы к тому времени уже существовали (другое дело, что авторы не были связаны с этим только возникавшим тогда сообществом и сами изобретали все с нуля). А вот вторая идея значительно глубже концептуально и сложнее технически. Современные обзоры по моделированию движения человека для целей анимации (обзоров, посвященных специально кошкам или другим животным, я не нашел) относят первые работы такого типа – анимацию ходьбы на основе решения уравнений прямой или обратной кинематики и динамики – к началу или середине 80-х. В биомеханике, без всякой связи с компьютерной анимацией, первые попытки (двухмерного!) моделирования движения человека на основе задач оптимизации, приводящих к дифференциальным уравнениям, делались в начале 1970-х[ Computer animation of Human Walking: a Survey (1999), Franck Multon, Laure France, Marie-Paule Cani-Gascuel, Gilles Debunne]. Вполне возможно, что подобные исследования велись в момент создания «Кошечки» и в робототехнике. Рекорды и приоритеты дело тонкое, и я бы не хотел сейчас всерьез углубляться в эту тему. Но из литературы совершенно очевидно, что вплоть до начала 80-х основной технологией компьютерной анимации оставались те или иные формы интерполяции между кадрами, различные варианты морфинга и т. п. – вещи, принципиально более простые, чем реалистичное матмоделирование живого движения, примененное в «Кошечке».
Отметим, что уравнения «Кошечки» не выводились напрямую из физических моделей мышц и суставов. Они лишь качественно воспроизводят типичные паттерны кошачьей ходьбы (неожиданные подробности читайте в интервью с Константиновым в этом номере). Реализм движений, тем не менее, очевиден. Причем не только мне. Свое мнение во врезке высказывает Рик Парент, профессор Университета Огайо (одной из колыбелей компьютерной графики), автор монографии «Computer Animation: Algorithms and Techniques», специалист по анимации человеческих фигур, а также по истории компьютерной анимации. Благодаря Паренту мы смогли проиллюстрировать этот материал кадрами одного из первых трехмерных компьютерных фильмов «Not Just Reality», сделанного Барри Весслером в Университете Юты в 1973 году.
Когда речь заходит о первых работах по компьютерной графике в нашей стране, сразу же вспоминается имя Юрия Баяковского (в 1990 году на конференции SIGGRaPH ассоциация aCM присвоила ему титул «Computer Graphics Pioneer»). Сейчас Юрий Матвеевич возглавляет в МГУ Лабораторию компьютерной графики и мультимедиа на факультете ВМК (graphics.cs.msu.su), но продолжает работать и в Институте прикладной математики им. Келдыша РАН, где он много лет заведовал отделом компьютерной графики и где еще в 1964 году в соавторстве с физиком Тамарой Сушкевич выполнил первую в СССР работу по «машинной графике». Это была как раз анимация, небольшой фильм об обтекании цилиндра плазмой. В 1971 году в ИПМ был разработан более совершенный софт для создания компьютерных фильмов и установлена камера для съемки кадров с экрана дисплея. При помощи этой системы вскоре были сделаны еще две впечатляющие анимации. Одна визуализировала движение робота, другая – смоделированное " приливное взаимодействие" двух галактик.
Как видим, в нашей стране первые исследования по компьютерной анимации велись в рамках научной визуализации. На мой вопрос о работах, где бы ставились и решались задачи анимации «живых объектов» при помощи нетривиальных математических моделей, Юрий Матвеевич ответил: «Таких работ в России я не знаю. Мой студент Саша Савенко занимался этим, но в Англии, там и защитил диссертацию на эту тему». Таким образом, не исключено, что «практический контекст» для работы Константинова и его соавторов в России все еще не появился.
Самое замечательное в истории возникновения «Кошечки» – команда ее создателей и двигавшие ими мотивы. Уже упоминалось, что инициатором проекта и автором ключевых идей был Николай Николаевич Константинов. Если потребуется назвать самого популярного математика в Москве, им окажется, вне всякого сомнения, Константинов. Очень многие нынешние столпы этой науки начинали в его кружках – а сегодня работают в основанном им Независимом Московском университете, новом математическом центре мирового уровня. Константинов – президент Турнира городов, крупнейшего математического состязания для школьников на территории бывшего СССР, член правления Международной федерации национальных математических соревнований (World Federation of National Mathematics Competitions), где отвечает, ни много ни мало, за всю Европу. Наконец, Николай Николаевич действительный член (по секции применения математики к биологии) Московского общества испытателей природы, старейшего научного общества России (основанного в 1805 году; среди иностранных членов были Ламарк, Дарвин, Фарадей). Для нашей темы важнее всего, что Константинов уже много лет остается кристаллизующим центром живой, активной, самоорганизующейся среды, которая объединяет как молодых, так и маститых исследователей и преподавателей, как вундеркиндов-олимпиадников, так и просто увлеченных наукой студентов и школьников.