Вектор генерал
Vector General ( VG ) — серия графических терминалов и название калифорнийской компании, производившей их. Впервые они были представлены в 1969 году и использовались в компьютерных лабораториях до начала 1980-х годов.
Терминалы были основаны на общей платформе, которая считывала векторы, предоставляемые главным мини-компьютером , и включали аппаратное обеспечение, которое могло выполнять основные математические преобразования в терминале. Это значительно улучшило производительность таких операций, как вращение объекта или масштабирование. Преобразованные векторы затем отображались на встроенном векторном мониторе терминала .
В отличие от аналогичных терминалов других производителей, системы Vector General имели мало внутренней памяти . Вместо этого они хранили векторы в памяти главного компьютера и получали к ним доступ через прямой доступ к памяти (DMA). Полностью оборудованные терминалы VG3D стоили около 31 000 долларов, включая бюджетный компьютер PDP-11 . [1] по сравнению с такими машинами, как IBM 2250 , стоимость одного только терминала которых составляет 100 000 долларов. [2] [а]
Среди множества известных применений, известных в области компьютерной графики, именно терминал VG3D, подключенный к PDP-11/45 , использовался для создания анимации «Атака Звезды Смерти будет непростой» в «Звездных войнах » . [4] [5]
Описание
[ редактировать ]Аппаратное обеспечение
[ редактировать ]В конце 1960-х годов распространенной попыткой улучшить производительность графического отображения, особенно в 3D, было использование специальных терминалов, которые хранили список векторов во внутренней памяти, а затем использовали аппаратное или программное обеспечение, работающее в контроллере дисплея, для обеспечения основных преобразований, таких как вращение и масштабирование. Поскольку эти преобразования были относительно простыми, их можно было реализовать на терминале с относительно низкой стоимостью и тем самым избежать затрат времени на центральный процессор для выполнения этих операций. Системы, выполняющие по крайней мере некоторые из этих операций, включали IDI, Adage и Imlac PDS-1 . [6]
Ключевым нововведением в терминалах серии VG стало использование прямого доступа к памяти (DMA), позволяющего получить доступ к памяти главного компьютера. Это означало, что терминалам не требовалось много собственного хранилища, и это давало им возможность быстрого доступа к данным без их копирования по более медленному каналу, такому как Tektronix 4010 с последовательным интерфейсом или аналогичные системы. [7] Недостатком этого подхода является то, что его можно использовать только на машинах, поддерживающих DMA, и только через относительно дорогой адаптер. [б]
Основная концепция заключалась в том, что главный компьютер будет выполнять вычисления для получения ряда точек для 2D- или 3D-модели и выражать их в виде 12-битных значений, обычно хранящихся в 16-битных словах с дополнительными заполненными битами состояния. Затем терминал периодически прерывал работу компьютера, от 30 до 60 раз в секунду. [8] и быстро считывать и отображать данные. [9] Каждая точка считывалась одна за другой в регистры локальной памяти для временного хранения, в то время как к ним применялись математические функции для масштабирования, перемещения и (необязательно) поворота, а когда окончательные значения были рассчитаны, эти точки отправлялись на катод. лучевая трубка (ЭЛТ) для дисплея. [9]
Существовало три разные модели аппаратного обеспечения преобразования координат. Самая базовая система включала в себя аппаратное обеспечение, необходимое для панорамирования и масштабирования 2D-изображений, и в этом случае терминал, содержащий ее, будет известен как Vector General 2D. В другой версии добавлена возможность вращать 2D-изображение вокруг произвольной точки, известная как 2DR (от Rotate). Самым дорогим вариантом был 3D, который обеспечивал вращение, панорамирование и масштабирование трехмерных векторов. Еще одна опция, которая могла быть добавлена к любой из этих моделей и не была отражена в названии, — генератор символов . [10]
Квадратные ЭЛТ управлялись непосредственно с выхода оборудования преобразования, а не отображались с использованием традиционного метода растрового сканирования . [9] Компания назвала этот тип операции «случайным сканированием». [8] его повсеместно называют векторным монитором хотя в современных справочниках . Были доступны две базовые модели ЭЛТ с диагональю 17 дюймов (430 мм) и 21 дюйм (530 мм). 21-дюймовая модель также была доступна в специальной «высокоскоростной» версии, которая улучшала скорость вытяжки. В ЭЛТ использовалось электромагнитное отклонение, а не магнитное, как в телевизорах, для обеспечения высокоскоростного сканирования. [11]
К системе можно подключить несколько различных устройств ввода. Наиболее распространенной была клавиатура с 70 клавишами , в то время как другие включали набор кнопок мгновенного действия с внутренними индикаторами, управляемыми регистрами, графический планшет , световое перо , блок набора номера и джойстик . [12] Система в целом была довольно большой, размером с небольшой холодильник . [13]
Концепции рисования
[ редактировать ]Векторы были логически представлены двумя конечными точками в пространстве. Каждая точка определялась двумя или тремя 12-битными значениями, тем самым представляя пространство от 0 до 4095 в X, Y и (необязательно) Z. [11] Терминал имел три 12-битных регистра для хранения значений во время манипуляций с ними. [14]
Система позволяла представлять векторы в памяти разными способами. Самый простой режим, «абсолютный», требовал двух точек, по одной на каждом конце вектора. [15] «Относительные» векторы выражались как смещения от последнего набора значений, поэтому для определения вектора требовалась только одна точка, причем первая точка была конечной точкой последней. Это могло бы вдвое сократить количество точек, необходимых для описания полного рисунка, если бы данные были непрерывными, как линейный график . данные «Инкрементные» векторы еще больше сокращают объем памяти, используя только 6 бит для каждой точки, что позволяет упаковывать в меньший объем памяти на хосте. Систему можно настроить на добавление значений к 6 старшим или младшим битам последнего значения, обеспечивая грубое или точное перемещение. Наконец, «автоинкрементные» векторы еще больше снизили требования к памяти, поскольку требовалось хранить только одно значение, а остальные увеличивались на заданную величину при считывании каждой новой точки. Они были похожи на относительные векторы с одной из двух осей. всегда иметь одно и то же относительное смещение. [16] В системе также была отдельная схема для создания дуг окружности вместо необходимости отправлять серию точек. [17]
Дисплей мог отображать 32 различных уровня яркости. Это можно было запрограммировать напрямую, установив регистр в терминале, но чаще всего оно использовалось в программном режиме в 3D. В этом режиме интенсивность менялась автоматически по мере рисования вектора, при этом элементы, находящиеся глубже в измерении Z, рисовались менее интенсивно. Это привело к появлению сигнала глубины, благодаря которому передняя часть объекта на дисплее выглядела ярче. Скорость этого изменения устанавливалась через регистр ISR. [18]
Отдельный 12-битный регистр PS хранил множитель масштаба. Когда это значение не использовалось, система координат представляла физическую область примерно в два раза большую, чем экран, что позволяло переводить изображение для обеспечения прокрутки. Когда значение помещалось в этот регистр, координаты в векторных регистрах и системе рисования символов умножались на это значение, создавая эффект масштабирования. [19]
Дополнительный генератор символов рисовал символы, используя набор из пяти аппаратно определенных фигур: круг, квадрат с вертикальной линией посередине, квадрат с горизонтальной линией посередине, а также формы песочных часов, ориентированные вертикально, и аналогичные фигуры, ориентированные горизонтально. . Включив и выключив луч во время рисования каждой из этих фигур аппаратным обеспечением, система могла нарисовать любой необходимый символ. Например, буква C была нарисована с использованием формы O и выключением луча, когда он находился справа. Буква D будет нарисована с использованием формы О и выключением ее, пока она находится слева, а затем рисованием рамки с вертикальной линией с включенным лучом только тогда, когда рисуется центральная вертикальная полоса. Для создания законченного персонажа необходимо от одного до трех таких «рисунков». [20] Система включала ряд греческих букв и математических символов в дополнение к обычным символам ASCII . [21]
Программирование
[ редактировать ]Терминал периодически считывает основную память главного компьютера, используя DMA, для обновления дисплея. Дальнейшая связь осуществлялась через один двунаправленный порт ввода-вывода. [9] после создания запроса на прерывание с подробностями запроса в регистре PIR. [22] Настройки и инструкции обрабатывались путем отправки данных в порт ввода-вывода и обратно в один из 85 регистров терминала. [14]
Например, хост может установить значение регистра PS, заставляя изображение масштабироваться. Это можно сделать, вызвав прерывание, 16-битное сообщение которого содержит номер регистра, который нужно установить, в данном случае 17. Терминал ответит отправкой 16-битного сообщения обратно по каналу ввода-вывода. Запись обрабатывалась с использованием аналогичного процесса, но терминал отреагировал на прерывание, вместо этого прочитав значение. [23]
Базовый адрес начала списка векторов и смещение внутри него находились в регистрах 14 и 15. [14] Это позволяло дисплею выполнять своего рода «перелистывание страниц», записывая отдельные наборы точек в память компьютера, а затем одновременно меняя отображение, изменяя значение регистра 14, чтобы оно указывало на другой базовый адрес. Это было ограничено объемом памяти, доступной на главном компьютере. [24]
Инструкции отображения имели различные форматы, что позволяло создавать не только векторы, но и различные команды. Например, существовали инструкции по загрузке данных в заданный регистр, состоящие из двух 16-битных слов: первое с подробностями регистра, а следующее со значением. Другие инструкции выполняли логическое ИЛИ или И над значениями регистров. Сами инструкции по отображению могут быть смешаны с этими операциями, так что система может, например, начать отображать выбранные элементы, включить лампу, повернуть изображение, а затем нарисовать больше векторов. [25]
Известные применения
[ редактировать ]VG3D исторически известен своим использованием в «Звездных войнах» , но также хорошо известен своей ранней ролью в развитии автоматизированного проектирования .
В Звездных войнах
[ редактировать ]Ларри Куба создал два сегмента компьютерной анимации для «Звездных войн» на PDP-11/45 с терминалом VG3D. Для покадровой съемки изображений между одним из индикаторов на кнопочной панели и спусковым крючком камеры был подключен провод. Это было вызвано главным компьютером, заставившим камеру один раз спустить затвор и продвинуть пленку на один кадр. [26] [27]
Первый сегмент, показывающий внешний вид Звезды Смерти , полностью основан на возможностях внутреннего дисплея VG3D. Модель состояла из простой серии трехмерных точек, представляющих контур станции, хранящихся в памяти PDP-11, построенных алгоритмически с использованием кода генерации кривых соответствующего языка программирования GRASS . Чтобы переместить и повернуть изображение, как показано в фильме, соответствующая программа GRASS загружала новые значения вращения и масштабирования в регистры терминала, а затем запускала камеру. [26]
Во втором сегменте показан вид полета по траншее во время финальной атаки, сначала сверху, а затем с точки зрения пилота. Это было гораздо сложнее создать, потому что терминал не поддерживал расчет перспективы, который требовался в этой последовательности. Физическая модель траншеи, использованная во время съемок, состояла из серии из шести элементов, которые были многократно продублированы, а затем собраны разными способами для создания единой модели длиной 40 футов (12 м). Куба оцифровала каждую из этих шести деталей с фотографий, а затем объединила их в различных конфигурациях в более чем 50 U-образных секций. Для каждого кадра пять таких секций были сложены по глубине, а затем были применены расчеты перспективы. Добавление новых разделов по мере развития анимации можно увидеть в фильме. Затем это изображение было отправлено на терминал в виде статического изображения, и камера сработала. Рендеринг каждого кадра занимал около двух минут. [28]
В армии США
[ редактировать ]Майк Муусс рассказывает, что США армии Лаборатория баллистических исследований приобрела Cyber 173 и три рабочие станции, состоящие из терминала VG3D и PDP-11/34 для его управления. Их планировалось соединить вместе, но никто не смог заставить это работать, и в конце концов рабочие станции VG остались неиспользованными. Ему было неприятно видеть, что все это оборудование тратится впустую, поэтому в 1979 году он подключил одну из рабочих станций и создал программу, создававшую вращающийся трехмерный куб. [29]
Другому программисту был предоставлен набор трехмерных точек конструкции танка XM1 , и он писал код для вывода его на плоттер Calcomp . Он спросил Муусса, могут ли они вместо этого отобразить его на терминалах VG, чтобы они могли его вращать. Сначала он вывел его как статическое изображение на Tektronix 4014 , но на следующую ночь ему удалось перенести изображение на VG3D, где его можно было легко вращать с помощью внутреннего векторного оборудования. [30]
Ничего подобного еще никто в армии не видел. На следующий день командующий АРРАДКОМ прилетел посмотреть на это вживую. В течение следующих двух недель Муусс постоянно демонстрировал систему офицерам. [30] Демо стало настолько известным, что Муусс смог начать разработку BRL-CAD . [31]
Примечания
[ редактировать ]- ^ Более поздние модели, такие как IBM 2250 Model III, могли управлять до четырех терминалов, поэтому стоимость одного терминала была ближе к 65 000 долларов плюс хост. [3]
- ^ Хотя в руководстве указано, что с соответствующим адаптером можно использовать «любой» компьютер, во всех сторонних источниках упоминается только используемый PDP-11.
Ссылки
[ редактировать ]Цитаты
[ редактировать ]- ^ Филлипс 1978 , с. С.24.
- ^ Вайсберг 2008 , стр. 13-8–13-9.
- ^ Вайсберг 2008 , с. 13-9.
- ^ Сладкий 1981 .
- ^ Боррелли 2017 .
- ^ Педди 2013 , с. 316.
- ^ Ссылка 1972 , с. 1–1, 1–3.
- ^ Перейти обратно: а б Справочник 1972 , с. 1-4.
- ^ Перейти обратно: а б с д Справочник 1972 , с. 1-3.
- ^ Ссылка 1972 , с. 1-1.
- ^ Перейти обратно: а б Справочник 1972 , с. 1-7.
- ^ Ссылка 1972 , с. 1-2.
- ^ Боррелли 2017 , с. Смотрите изображения..
- ^ Перейти обратно: а б с Справочник 1972 , с. 3-3.
- ^ Ссылка 1972 , с. 1-14.
- ^ Ссылка 1972 , с. 1-16.
- ^ Ссылка 1972 , с. 2-12.
- ^ Ссылка 1972 , с. 1-23.
- ^ Ссылка 1972 , с. 1-9–1-14.
- ^ Ссылка 1972 , с. 1-20.
- ^ Ссылка 1972 , с. 2-13.
- ^ Ссылка 1972 , с. 3-4.
- ^ Ссылка 1972 , с. 3-4–3-6.
- ^ Ссылка 1972 , с. Приложение Б.
- ^ Ссылка 1972 , с. 3-14–3-35.
- ^ Перейти обратно: а б Сладкий 1981 , с. 29.
- ^ ДеФанти и Сандин 1981 , с. 50.
- ^ Сладкий 1981 , с. 30.
- ^ Муусс 2000 , с. 91.
- ^ Перейти обратно: а б Другое 2000 , с. 92.
- ^ «Обзор» . БРЛ-CAD .
Библиография
[ редактировать ]- Боррелли, Кристофер (23 мая 2017 г.). «Чертежи Звезды Смерти из «Звездных войн» были созданы в UIC» . Чикаго Трибьюн .
- ДеФанти, Том; Сандин, Дэн (1981). «Соответствие системы целям – телевидение или не телевидение» . В Кларке, Дэвиде (ред.). Компьютеры для создания изображений . Пергамон Пресс. стр. 39–55. ISBN 9781483294636 .
- Справочное руководство по системе отображения векторной графики . Вектор Генерал. Январь 1972 года.
- Муусс, Майкл (сентябрь 2000 г.). «Новейшая история: суперкомпьютеры и сети» . В Бергине, Томас (ред.). 50 лет армейских вычислений: от ENIAC до MSRC . Издательство ДИАНА. ISBN 9781428916593 .
- Педди, Джон (2013). История визуальной магии в компьютерах . Спрингер. ISBN 9781447149323 .
- Филлипс, Ричард (1978). Приложения компьютерной графики . Мичиганский университет.
- Милая, Ниса (февраль 1981 г.). «Анимация траншеи Звезды Смерти» (PDF) . Самый лучший из фантастических фильмов: журнал Imaginative Media . стр. 26–30.
- Вайсберг, Дэвид (2008). Революция инженерного дизайна (PDF) .
Внешние ссылки
[ редактировать ]- Создание компьютерной графики для «Звездных войн» — короткометражный фильм Ларри Кубы, иллюстрирующий процесс создания анимации « Звездных войн» .