BEFLIX — это название первого встроенного предметно-ориентированного языка для компьютерной анимации , изобретенного Кеном Ноултоном в Bell Labs в 1963 году. [1] Название происходит от сочетания Bell Flicks . Кен Ноултон использовал BEFLIX для создания анимационных фильмов в образовательных и инженерных целях. Он также сотрудничал с художником Стэном Вандербиком в Bell Labs для создания серии компьютерных анимационных фильмов под названием Poemfields между 1966 и 1969 годами.
BEFLIX был разработан на мэйнфрейме IBM 7090 с использованием микрофильм-рекордера Stromberg-Carlson SC4020 для вывода. Среда программирования, на которую ориентировался BEFLIX, состояла из реализации FORTRAN II с макросами FORTRAN II Assembly Program (FAP). Первая версия BEFLIX была реализована с помощью макроса FAP. Более поздняя версия, ориентированная на FORTRAN IV, напоминала более традиционную библиотеку подпрограмм и утратила часть уникального колорита языка.
Пиксели производятся путем записи символов на экран микрофильм-рекордера с помощью расфокусированного электронного луча. SC4020 использовала характеристическую трубку для экспонирования микрофильма. В BEFLIX электронный луч расфокусируется для рисования пикселей в виде размытых форм символов. Символы выбираются для создания диапазона значений оттенков серого для пикселей. Микрофильм-рекордер не подключен напрямую к 7090, а взаимодействует через магнитную ленту. BEFLIX записывает вывод магнитной ленты на 7090, а пленочный рекордер считывает ленту для создания вывода пленки. BEFLIX также поддерживает режим предварительного просмотра, в котором выбранные кадры вывода записываются на линейный принтер.
Память 7090 организована в прямоугольные поверхности пикселей. Поверхности обозначены двухбуквенным кодом, который идентифицирует определенную геометрию поверхности. BEFLIX поддерживает два разрешения для выходных кадров: высокое (252x184) и низкое (126x92). 7090 имеет достаточно памяти для поддержки двух кадров высокого разрешения. Организация поверхности в BEFLIX допускает различные геометрические комбинации меньших поверхностей в пределах доступной памяти. Пиксели BEFLIX хранят значения 0-7, что позволяет упаковывать их по 12 в 36-битное слово 7090.
BEFLIX предоставляет операции низкого уровня и операции высокого уровня. Для операций низкого уровня BEFLIX предоставляет 26 сканеров с именами от A до Z. Сканер имеет значение и координатную позицию на поверхности. Операторы низкого уровня в BEFLIX применяют операции к сканеру на основе набора условий, которые выполняются. Пример операции низкого уровня:
IFANY (B,R,10)(B,A,C)(A,E,7)T(A,T,B)(A,U,2)(A,W,3)LOC5
Который говорит, что если выполняется любое из следующих условий:
затем выполняются следующие операции:
и затем управление передается оператору с меткой LOC5
.
Таким образом, сложные шаблоны могут быть запрограммированы в поведение сканеров по мере вывода пленки. Все операции сканера являются немедленными операциями и обновляют поверхности без какого-либо вывода кадров между операциями.
Высокоуровневые операции в BEFLIX можно условно разделить на четыре категории:
Рисование примитивов и динамических операций с прямоугольниками можно выполнять поэтапно в серии выходных кадров, что является быстрым способом кодирования анимации.