Мультик на ЭВМ БЭСМ-4 или Как в 1968 году в СССР начиналась компьютерная анимация
Про БЭСМ-4 (НА ФОТО). Эта советская ЭВМ была создана в 1962 году и относилась ко второму поколению советских компьютеров. Быстродействие по тем временам было хорошим: 20 тысяч операций в секунду. Использовалась оперативная память на ферритных сердечниках емкостью 16384. Для внешней памяти применялись магнитные барабаны. Машина имела 4 входа с телефонных линий связи и 32 входа с телеграфных линий связи.
Но вернемся к «Кошечке». Идеологом проекта был Николай Константинов, известный математик, сделавший немало для популяризации этой науки и ее развития в нашей стране. В работе над мультиком использовали базу ИТЭФ (Института теоретической и экспериментальной физики), ИПУ (Института проблем управления) и Педагогического института имени Ленина. Расчеты проводились на разных экземплярах ЭВМ БЭСМ-4, во время их выполнения возникала проблема несовместимости некоторых машинных кодов, и авторы поправляли их самостоятельно. Вот как описывали в своей статье, вышедшей в 1974 году в специализированном журнале «Проблемы кибернетики», свою работу ученые:
При моделировании механизма полезно иметь возможность получать изображения различных состояний механизма. При этом удобно использовать такой способ задания формы механизма, при котором информация о его положении в данном состоянии и информация о его устройстве были бы разделены. Это требование вполне естественно. В человеческом языке такое разделение имеет место. Скажем, слова «моя кошка» обозначают определенный предмет. При этом ничего не сказано о позе кошки. Можно сказать, что мы стремились к такому способу задания информации о форме предмета, чтобы все, что относится к понятию «кошка вообще», было отделено от информации о положении и позе кошки в данный момент. Практическим признаком того, что информация обладает указанным свойством, является то, что становится просто и удобно задавать машине законы движения механизма. В случае кошки информация о ее походке и траектории, т. е. сценарий ее движения, задается совершенно независимо от информации о форме. Нужно только, чтобы в описании формы присутствовали переменные, о которых говорится в описании движения. Требования, которые мы предъявляем к информационной системе, можно сформулировать так: это должна быть такая система задания информации о предмете, пользуясь которой легко писать программы, которые выдают мультфильм о предмете по самым разнообразным сценариям. Наша работа задумана как пробный шаг в направлении создания программ, моделирующих механизмы, и не преследовала никаких целей, кроме опробования некоторой системы задания формы предмета с точки зрения вышеуказанных требований. Мы задаем программе строение тела кошки и законы ее движения и получаем мультфильм, на котором кошка делает несколько шагов, постепенно замедляясь, поворачивает голову и останавливается. Подбирая уравнения, определяющие походку, мы заботились только о внешнем благополучии, а не о том, чтобы описывать истинные физиологические механизмы управления. Но наша программа может быть полезна и для физиологов. Если мы имеем гипотезу о механизме походки, которую мы можем записать в виде дифференциальных уравнений (как правило, второго порядка) относительно переменных, участвующих в описании позы кошки, то мы можем с помощью нашей программы посмотреть, как эта гипотеза работает. Принятая система задания информации удобна для механизмов, являющихся шарнирными системами, состоящими из твердых частей. С известным приближением такой системой является молекула. Программу, подобную нашей, можно применять для визуализации гипотез о строении и работе молекул при химических реакциях. Интересно провести опыт использования программ, рисующих мультфильм, в качестве вспомогательной техники при создании художественных мультфильмов. Работу над одним монтажным куском длительностью от 10 до 30 сек можно представить себе так. Художник-математик должен записать действующих лиц этого куска в виде нашей или подобной информационной системы, а их движения в пределах этого куска — в виде дифференциальных уравнений. Затем машина печатает бумажную ленту — «папирфильм». После этого художники рисуют по папирфильму мультфильм. Таким образом, по-прежнему зритель увидит руку художника. Смысл же всего этого в том, что моделирование движения сделано машиной — это как раз та часть работы, с которой человек справляется плохо (сошлемся на одного из мультипликаторов; для того чтобы нарисовать танец лягушки, он заснял танец настоящей балерины и, используя этот фильм как модель движения, рисовал по нему фильм о лягушке).В качестве рисующего устройства использовалась широкая печать — АЦПУ-128. Градация яркости не применялась, и качество изображения сравнительно невысокое. Но большее и не требуется при нашей системе задания формы предметов — рисунки производят неприятное впечатление, если качество передачи формы на бумаге выше, чем качество информации о форме. Когда передача на бумаге приблизительная, воображение зрителя восполняет недостающие детали именно так, как нужно, и впечатление от рисунков получается приличное. Еще лучше выглядит фильм в движении, так как моделирование движения имеет более высокое качество, чем моделирование формы. Зритель получает много «хорошей» информации, и восполнение недостающего облегчается. Интересно, что многие зрители после просмотра фильма не помнили, что изображение было просто теневой проекцией.Изображения, прежде чем попасть на страницы этого издания, прошли следующие стадии:1) на папирфильме, выходящем из АЦПУ-128, проекция кошки остается белой, а весь остальной фон выбит некоторой буквой (бралась буква Ш как самая чёрная);2) кадр фотографируется; на негативе — чёрная кошка и серый фон;3) серый фон убирается вручную с целью придания этим рисункам более высокого качества как полиграфической продукции.Работа выполнена на кафедре общих проблем управления механико-математического факультета Московского университета. Отладка программы и ее эксплуатация проводились в Вычислительном центре Московского государственного педагогического института им. В. И. Ленина.