Пионеры отечественной машинной графики

Автор: Леонид Карпов, Дмитрий Волков, Ноябрь 24, 2021

Любое современное приложение трудно представить без элементов компьютерной графики, и может сложиться впечатление, что так было всегда, а машинная графика — это легко и просто. Однако это не так.

В становлении машинной графики как дисциплины активное участие принимали отечественные пионеры машинной графики, работы которых до сих пор оказывают влияние на развитие компьютерной графики в мире, а ученики первопроходцев работают в исследовательских центрах многих стран.

Один из первых этапов развития машинной графики в стране связан с известной во всем мире вычислительной машиной, разработанной в Институте точной механики и вычислительной техники (ИТМиВТ) АН СССР. Речь идет о БЭСМ-6 — именно шесть нулей в записи числа 1 миллион и именно столько операций в секунду выполняла эта отечественная суперЭВМ. Сергей Алексеевич Лебедев очень любил эту машину: тщательно готовил ее разработку [1], участвовал в ее создании в качестве главного конструктора. За эту работу он и его коллеги получили Государственную премию СССР за 1969 год, а в 1996-м Лебедев был удостоен медали Бэббиджа «Пионер вычислительной техники» Общества инженеров электротехники и электроники IEEE. Сегодня эту ЭВМ могут увидеть посетители Политехнического музея в Москве, а также Лондонского музея науки, где она стоит рядом с CDC-6600.

Пионеры отечественной машинной графики Пионеры отечественной машинной графики
Медаль Бэббиджа, которой был награжден С. А. Лебедев

Вадим Валерьянович Кобелев

На БЭСМ-6 начинал работать один из пионеров машинной графики, сотрудник ИТМиВТ Вадим Валерьянович Кобелев. В юности он на велосипеде приехал в Москву из Средней Азии, где находился в эвакуации, поступил в МГУ и стал студентом первого набора на физико-технический факультет МГУ, а впоследствии вошел в первый выпуск МФТИ.

Публикация В. В. Кобелева по системе ГРАФАЛ
Письмо Кобелева Ершову (архив А. П. Ершова, http://ershov.iis.nsk.su/node/774660)

Получив образование в МФТИ и занимаясь разработкой систем памяти на магнитных сердечниках, Кобелев увлекся программированием и на языке Алгол-60 создал библиотеку графических программ ГРАФАЛ, предназначенную для создания фотошаблонов проектируемых в ИТМиВТ многослойных печатных плат [2], а вскоре защитил кандидатскую диссертацию «Методы обработки графических объектов в системе машинной графики». В качестве оппонента был приглашен Андрей Петрович Ершов, который в отзыве отметил: «Диссертация основана на оригинальной идее автора о представлении рисуемых объектов в дифференциальной форме, причем — и это самое интересное — в качестве представления этой дифференциальной формы берется сама программа прямой обрисовки двумерного объекта… Значимость работы подкреплена успешной эксплуатацией системы ГРАФАЛ и многократно усилена выходом монографии автора, уже освоенной сотнями читателей». Ершов считал работу Кобелева «нечастым примером почти идеального инженерного исследования» и отмечал «неподражаемость таланта» автора диссертации, а также то, что «программистский стиль автора полностью отвечает важнейшему принципу системного программирования: сначала увидеть, как должна работать машина, а потом выразить это в программных конструкциях» (http://ershov.iis.nsk.su/node/791439).

Примеры работ из коллекции В. В. Кобелева

Вадим Валерьянович увлекался и любительским графическим программированием: написал на Алголе-60 комплекс программ, позволявший на индикационных лампах операторского пульта БЭСМ-6 (буферных регистрах чисел, записи и команд, а также индексных регистрах) рисовать бегущие надписи, и на праздниках развлекал сотрудников, их детей и внуков электронными поздравительными открытками. На всех типовых элементах замены БЭСМ-6 были неоновые лампочки, которые загорались при занесении в элементы памяти заранее согласованных кодов. Зная правила согласования, можно было управлять включением и выключением лампочек, а когда светящихся лампочек становилось много, они составляли своеобразное панно, на котором формировались произвольные картинки — например, надписи или падающие снежинки. Для показа букв была создана библиотека — можно было, имея алфавитно-цифровую строку, обращаться к процедуре на Алголе, которая отображала на пульте БЭСМ-6 соответствующую надпись. Одной из первых надписей, которую Кобелев сделал на буферных регистрах записи, была: «Сходите в аптеку и купите что-нибудь к чаю». Рисовать можно было и на АЦПУ-128, отображая на алфавитно-цифровом печатающем устройстве сложные сцены с тенями и полутенями. На 8 Марта Кобелев готовил сотрудницам ИТМиВТ запрограммированные и отрисованные открытки, а выезжая в командировки, устраивал выставки рисунков, выполненных вычислительной машиной. Им и его коллегами были созданы первые компьютерные игры на БЭСМ-6 с графикой на алфавитно-цифровых дисплеях VT-340 и VDT 32100: игра в «Ним», «Скачки» (для самых маленьких), «Уголовное расследование», «Пещера» и др.

Кобелев устраивал для своих коллег выставки монет из собственной коллекции — одна из таких выставок, на которой было представлено несколько сотен монет Аргентины и Великобритании, была устроена им в самый разгар конфликта этих стран из-за Фолклендских (Мальвинских) островов.

Работая в ИТМиВТ, Кобелев одновременно вел большую преподавательскую деятельность в МФТИ, читая студентам кафедры ЭВМ курс теоретической кибернетики, который включал, в частности, теорию кодирования, коды Хэмминга, теорию и практику шифрования. Однажды, при попытке выполнить одно из упражнений по расшифровке текстового сообщения, которое предлагалось лектором, студент получил неожиданный результат: «Аресты начнутся в полночь». Кобелев очень любил учить молодых и еще неопытных программистов. Он становился другом своих студентов, приглашал домой и угощал чаем собственной оригинальной заварки. Запомнилась история одного из его учеников, которого он еще на третьем курсе так научил технологии и дисциплине программирования, что тот, написав три программы и не сделав в них ни одной ошибки, разочаровался в этой профессии (в которой одним из главных считалось удовлетворение от исправления какой-либо нетривиальной ошибки) и провел свою жизнь, занимаясь физикой твердого тела и поисками течей в подводных нефтепроводах. Он увлекался функциональным программированием, а его любимым языком программирования был Лисп.

Работы по компьютерной графике разворачивались и в Институте прикладной математики (ИПМ) АН СССР, где они были неразрывно связаны с именем Юрия Матвеевича Баяковского, начавшего работать в этом направлении еще в 1964 году, когда совместно с Тамарой Алексеевной Сушкевич для ее проекта [3] был сделан фильм, демонстрирующий возможности визуализации обтекания плазмой объемного геометрического тела.

Визуализация процесса обтекания цилиндра плазмой

На электронно-лучевую трубку дисплея выводилась последовательность кадров — в это время уже существовали «знакопечатающие» трубки (разновидность алфавитно-цифровых), позволяющие выводить текстовые данные, поступающие от ЭВМ. Но были и модификации трубок, содержащие второй электронный прожектор с собственной отклоняющей системой, способный накладывать на символьную информацию дополнительное графическое изображение.

Вклад Баяковского в становление машинной графики как нового научного направления заключался, в частности, в начатой в ИПМ в конце 1960-х годов разработке библиотеки ГРАФОР для программ на языке Фортран, трансляторы которого в то время уже имелись почти на всех выпускавшихся в стране вычислительных машинах. Появлялось и специализированное периферийное графическое оборудование: в СССР выпускались собственные и закупались зарубежные графопостроители и графические дисплеи. А в качестве одной из основных задач тогда рассматривалась задача автоматизации изготовления фотошаблонов для печатных плат. В то время быстро развивались технологии фотопечати токопроводящих слоев на пластмассовые платы, позволяющие практически полностью избавляться от навесного монтажа элементов и существенно снижать трудоемкость изготовления средств вычислительной техники на серийных заводах, — ГРАФОР давал возможность решить эту задачу [4].

Юрий Баяковский (справа) с коллегами в ИПМ АН СССР: Владимир Галактионов (в центре) и Татьяна Михайлова (слева)
Первая публикация Ю. М. Баяковского и его коллег по комплексу ГРАФОР

Библиотека ГРАФОР включала более 400 различных программ, доступ к которым был возможен из пользовательских приложений, написанных на Фортране, Алголе-60, ПЛ/1, автокодах и языках ассемблеров. Поскольку сама библиотека была на Фортране, она была мобильна, интероперабельна, как сейчас бы говорили, хотя изначально создавалась для БЭСМ-4 (полупроводниковой версии ЭВМ М-20), но затем была перенесена и на М-222, БЭСМ-6, ЕС ЭВМ, СМ-2, СМ-4, М-6000, Минск-32, а также на CDC-6500, Cyber-172, Eclipse, Nord, PDP-11, IRIS-80. В качестве периферийных устройств допускалось использование графопостроителей (ЕС-705*, АП-7251, АП-7252, ИТЕКАН, АТЛАС, CALCOMP, BENSON) и дисплеев (ЕС-7064, СИГДА, ЭПГ СМ, VU-2000, TEKTRONIX).

Работы Баяковского были очень востребованы: в июне 1973 года пакет ГРАФОР применялся даже для съемок кинофильма [5], содержащего семь фрагментов (по 2000 кадров каждый) различных вариантов пролета массивного тела (жирная точка на рисунках) мимо галактики. Рисунки (в проекции на галактическую плоскость) относятся к варианту пролета тела с массой, равной массе галактики, которое перемещается вблизи галактического диска (с параметрами порядка нашей галактики) перпендикулярно его плоскости с удвоенной параболической скоростью. Время дается в миллиардах лет, начальный момент соответствует наибольшему сближению. Всего период моделирования охватывает четыре с половиной миллиарда лет.

Кадры из фильма по графическому моделированию процессов межгалактического взаимодействия

ГРАФОР использовался и в системах автоматизированного проектирования и автоматизации чертежно-конструкторских работ в машиностроении, авиационной и космической промышленности. Пакет работал в сотнях вычислительных центров СССР и стран Восточной Европы. Как вспоминает коллега Баяковского Владимир Галактионов, во второй половине 1980-х годов активно выполнялся проект создания отечественного космического корабля многоразового использования «Буран». Для ускорения работ его главный конструктор, генеральный директор НПО «Молния» академик Г. Е. Лозино-Лозинский, обратился к директору ИПМ академику А. Н. Тихонову с просьбой направить разработчиков ГРАФОРа прочесть лекции и провести занятия для сотрудников предприятия. Работы по «Бурану» и даже само это название были тогда абсолютно секретны. Пакет программ применялся в этом проекте для проектирования тысяч теплозащитных пластин, размещенных на корпусе корабля, причем каждая пластина была индивидуальна. В 1990-е годы ГРАФОР был даже включен в программу кандидатских экзаменов по специальности «математическое обеспечение вычислительных машин и систем».

Со временем библиотека была существенно усовершенствована, что позволило академику Ершову называть ее не просто библиотекой, а системой программирования — полноценным программным продуктом в современном понимании. В 1985 году была издана книга по ГРАФОРу, ставшая руководством для армии программистов, создававших графические приложения. Книга получила высокую оценку Ершова. Баяковский очень гордился отзывом Андрея Петровича, а пользователи получили в свое распоряжение мощный инструмент, позволявший работать с плоскими и пространственными объектами, описываемыми функциями двух переменных. Допускались различные виды представления объектов: проекции поверхностей, карты изолиний и пр.

В подготовленном в 1970 году совместно с Всеволодом Штаркманом докладе для второй Всесоюзной конференции по программированию Баяковский впервые использовал термин «машинная графика» [6]. В 1989 году Юрий Матвеевич вошел в состав редакционной коллегии журнала «Программирование» — и в его постоянных рубриках, посвященных обработке графической информации, появилось устойчивое словосочетание «машинная графика». Собственная диссертация Баяковского также была посвящена машинной графике: «Анализ методов разработки графического обеспечения ЭВМ». Более 30 лет Баяковский читал в МГУ курс «Машинная графика».

В 1990 году Баяковский был признан ведущей мировой ассоциацией по компьютерной графике ACM SIGGRAPH пионером компьютерной графики: ему был вручен соответствующий сертификат о внесении неоспоримого вклада в рождение и становление новой отрасли.

Нельзя забывать и о вкладе, который он внес в организацию международных конференций «Графикон»: во многом именно благодаря ему конференция смогла преодолеть трудности переходного периода и стать значимым ежегодным форумом, с 1991 года ежегодно и без перерыва собирающим специалистов по машинной графике из разных стран.

Письмо академика А. П. Ершова Ю. М. Баяковскому
Ю. М. Баяковский — пионер машинной графики

Наша страна многим обязана людям, труд которых позволяет говорить сегодня об отечественной вычислительной технике в целом и о разработках в области машинной графики в частности. Таких людей, к счастью, много, и обо всех в одной статье рассказать невозможно, но можно надеяться на то, что все, кто интересуется историей отечественной вычислительной техники и разработками в области машинной графики, смогут еще найти в наследии пионеров множество интересных фактов, идей и формулировок не решенных до сих пор задач [7].

Литература

1. Сергей Лебедев. ЭВМ посредством ЭВМ // Открытые системы.СУБД. — 2008. — № 4. — С. 74–79. URL: https://www.osp.ru/os/2008/04/5115149 (дата обращения: 21.11.2021).

2. В. В. Кобелев. Машинная графика для системы БЭСМ-алгол. М.: Наука. Главная редакция физико-математической литературы, 1978.

3. М. В. Масленников, Т. А. Сушкевич. Асимптотические свойства решения характеристического уравнения теории переноса излучения в сильно поглощающих средах // Журнал вычислительной математики и математической физики. — 1964. — Т. 4. — № 1. — С. 23–34. // U.S.S.R. Comput. Math. Math. Phys. — 1964. Т. 4. № 1. — С. 29–46.

4. Ю. М. Баяковский, Т. Н. Михайлова, С. Т. Мишакова. ГРАФОР: комплекс графических программ. Основные элементы и графики. Институт прикладной математики Академии наук СССР. Препринт № 41, 1972.

5. Н. Н. Козлов, Р. А. Сюняев, Т. М. Энеев. Приливное взаимодействие галактик. Доклады Академии Наук. — 1972. — Т. 204. — № 3. — С. 579–582.

6. В. С. Штаркман, Ю. М. Баяковский. Машинная графика. Препринт ИПМ АН СССР, 1970.

7. Баяковский Ю. М., Галактионов В. А. О некоторых фундаментальных проблемах компьютерной (машинной) графики // Информационные технологии и вычислительные системы. — 2004. — № 4. — С. 3–24. URL: https://www.keldysh.ru/pages/cgraph/articles/dep20/comgra.pdf (дата обращения: 22.11.2021).

Леонид Карпов (mak@ispras.ru) — главный научный сотрудник Института системного программирования им. В. П. Иванникова РАН; Дмитрий Волков (vlk@keldysh.ru) — старший научный сотрудник, ИПМ им. М. В. Келдыша РАН (Москва). В статье использованы материалы из доклада: Карпов Л., Карпова В., Томилин А. Пионеры отечественной вычислительной техники и машинная графика // Пятая международная конференция «Развитие вычислительной техники в России, странах бывшего СССР и СЭВ: история и перспективы» (Москва, 6–7 октября 2020 г.). — М.: МИЭТ, 2020. — 368 с. URL: https://www.sorucom.org/books/SORUCOM-2020_RU2.pdf.

DOI: 10.51793/OS.2021.16.52.002

Ваше сообщение успешно отправлено.