Текст
                    СИНТЕЗ
ИЗОБРАЖЕНИЙ
Принципы,
аппаратное
и программное
обеспечение


Ф. Марти нес СИНТЕЗ ИЗОБРАЖЕНИЙ Принципы, аппаратное и программное обеспечение
LA SYNTHESE D’IMAGE concepts, materiels et logiciels par Francis Martinez «*: tests 1984
Ф. Мартинес СИНТЕЗ ИЗОБРАЖЕНИЙ Принципы, аппаратное и программное обеспечение Перевод с французского А. В. Серединского Москва «Радио и связь» 1990
ББК 32.98 М29 УДК 681.327.12.001.362 Редакция переводной литературы Мартинес Ф. М29 Синтез изображений. Принципы, аппаратное и про¬ граммное обеспечение: Пер. с франц. — М.: Радио и связь, 1990.— 192 с.: ил. ISBN 5-256-00409-3. Книга французского специалиста посвящена актуальной про¬ блеме машинного синтеза изображений. Вопросы построения и применения систем машинного синтеза изображений рассмотрены с точек зрения как разработчика, так и пользователя. Большое внимание уделено принципам создания аппаратуры и соответствую¬ щего программного обеспечения. Описаны возможные методы соз¬ дания аппаратно-программных комплексов, предназначенных для решения различных задач синтеза изображений. Для инженерно-технических работников. 2404010000-186 „ „ М 135-91 ББК 32.98 046(01)-90 Производственное издание МАРТИНЕС ФРАНСИС СИНТЕЗ ИЗОБРАЖЕНИЙ. ПРИНЦИПЫ, АППАРАТНОЕ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Заведующий редакцией Ю. Г. Ивашов Редакторы Н. И. Г о р м а к о в а, И. И. Рюжина Обложка художника Р. А. Казакова Художественный редактор А. С. Широков Технический редактор Г. 3. Кузнецова Корректор Н. В. Козлова ИБ 2053 Сдано в набор 15.05.90 Подписано в печать 21.09.90 Формат 60Х90‘/ю Бумага тип. № 1 Гарнитура литературная Печать высокая Уел. печ. л. 12,0 Уел. кр.-отт. 12,38 Уч.-изд. л. 12,66 Тираж 20 000 экз. Изд. № 23052 Зак. № 47 Цена 2 р. 40 к. Издательство «Радио и связь». 101000 Москва, Почтамт, а/я 693 Типография издательства «Радио и связь». 101000 Москва, ул. Кирова, д. 40 ISBN 5-256-00409-3 (рус.) © Editests-5, place du Colonel Fabien — 75491 Paris cedex 10 — 1984 ISBN 2-86699-022-6 (франц.) © Перевод на русский язык, предисло¬ вие к русскому изданию, дополни¬ тельный список литературы, список работ, переведенных на русский язык. Серединский А. В., 1990
ПРЕДИСЛОВИЕ К РУССКОМУ ИЗДАНИЮ Современные ЭВМ позволяют наблюдать на своих выходных устройствах различные изображения, существовавшие до этого только в виде замысла человека-оператора. Направление в ин¬ форматике, связанное с разработкой аппаратуры и программ для реализации таких процессов, называют синтезом изображений. Получившие широкое развитие в последнее время програм¬ мные методы и аппаратные средства синтеза изображений нахо¬ дят разнообразное применение, например: для создания спецэф¬ фектов в телевидении, при разработке тренажеров, в системах автоматического проектирования, робототехнике и т. д. О важно¬ сти этой области информатики свидетельствует обилие ежегодно издаваемой в мире литературы по этой тематике. В нашей стране данное научно-техническое направление, по¬ жалуй, еще не получило достаточного развития. Одной из причин этого, как можно предположить, является практическое отсутст¬ вие литературы на русском языке. Действительно, кроме отдель¬ ных популярных брошюр, к этой области следует отнести лишь одну главу в книге Т. Павлидиса «Алгоритмы машинной графики и обработки изображений» (М.: Радио и связь, 1986). Предлагаемая читателю книга Ф. Мартинеса призвана до не¬ которой степени заполнить указанный пробел. Она является, ве¬ роятно, первой на русском языке книгой, целиком посвященной синтезу изображений в широком смысле слова. В отличие от ча¬ стных проблем машинной графики, здесь рассматриваются изоб¬ ражения объектов с учетом текстуры поверхности, характеристик освещения и отражения, расчет теней и т. п. Особая ценность книги заключается в том, что проблема син¬ теза рассматривается с точек зрения как пользователя, так и раз¬ работчика системы; описаны принципы создания как програм¬ мных, так и аппаратных средств, и т. д. Методическая цельность и достаточно простой язык делают книгу доступной читателю, не имеющему специальной подготовки. Можно надеяться, что появление книги Ф. Мартинеса на рус¬ ском языке поможет специалистам в самых разных областях бо¬ лее эффективно использовать вычислительную технику для уско¬ рения научно-технического прогресса. А.В. Серединский 5
ВВЕДЕНИЕ Необычайно широкие возможности открываются перед поль¬ зователем ЭВМ, память которой хранит информацию в форме изображения. Диалог человека с такой машиной происходит впол¬ не естественно и весьма эффективно. В зависимости от решаемой задачи изображение можно анализировать различными способа¬ ми. Для получения общего представления об имеющихся в изоб¬ ражении объектах его рассматривают в целом. И, наоборот, для получения более подробной информации об отдельных деталях следует сосредоточить внимание именно на них. Известно, что анализ текста требует от читателя глубоких зна¬ ний словаря и используемых правил грамматики. В то же время для понимания изображения не требуется никаких «особых» зна¬ ний, никакого предварительного обучения. В конечном итоге цель любого изображения, каким бы оно ни было, состоит в предостав¬ лении наблюдателю совокупности визуальных сведений, способ¬ ствующих лучшему пониманию рассматриваемой сцены. Визу¬ альные сведения подчиняются законам, определяющим явления визуального восприятия в окружающем нас реальном мире, т. е. законам, в соответствии с которыми действуют механизмы анали¬ за в мозгу человека. Разнообразные возможности применения изображений в раз¬ личных областях информатики и постоянный интерес, повсемест¬ но проявляемый к ним, объясняются их высокой информативно¬ стью. Это означает, что информация, содержащаяся в изображе¬ нии, представлена в наиболее концентрированной форме, а ее вос¬ приятие не требует от получателя ни специальных знаний, ни осо¬ бой «культуры». Задача синтеза изображений с помощью ЭВМ возникла при¬ близительно 20 лет назад. Исследования, проводившиеся в этот период, были неизменно нацелены на увеличение объема обраба¬ тываемой информации. Условно можно выделить отдельные ук¬ рупненные этапы этого процесса. В первую очередь рисование двухмерных, а затем и трехмерных объектов с помощью отрез¬ ков линии. Разработанные для них методы удаления невидимых частей были направлены на устранение неоднозначности воспри¬ ятия. В последнее время область «визуальной» информатики по¬ полнилась работами, связанными с цветом и текстурой объектов а также с условиями их освещения, что позволяет наблюдателю получать новые сведения об объектах, которые представляются при этом более реалистичными. Одновременно большие успехи были достигнуты и в создании аппаратуры. Основу ее составляют элементы с исключительно вы- 6
сокой степенью интеграции, а также микропроцессоры, позволив¬ шие превратить вчерашние мечты в реальность. Достижения в разработке аппаратных средств в большой сте¬ пени способствовали дальнейшему развитию методов синтеза изо¬ бражений, поскольку количество необходимых вычислений и объ¬ ем оборудования являются факторами, ограничивающими слож¬ ность изображаемых объектов. Однако относительный оптимизм столь краткого обзора не должен вводить читателя в заблуждение, поскольку далекий от истинной зрелости синтез изображений с помощью ЭВМ находит¬ ся сейчас на этапе качественных изменений в своем развитии. Действительно, если эффектные изображения, публикуемые в литературе, доказывают, что большинство технических задач уже решено, то углубленное изучение показывает, что речь идет в большинстве случаев о таких решениях, которые разрабатыва¬ лись специально для конкретных изображений, и до сих пор не выделено таких концепций, которые могут быть распространены на изображения различных типов. Доказательством тому явля¬ ется большое разнообразие технических решений, опубликован¬ ных в литературе, и очевидные трудности попыток их упорядо¬ чения. Несмотря на то, что еще нет четких определений программных и аппаратных средств, «графики» и «синтеза изображений», прин¬ ципиально необходимо выделить основные концепции, лежащие в основе любой «визуальной продукции», создаваемой с помощью специализированных или программируемых устройств. Предлагаемая читателю книга построена по нисходящему принципу, т. е. изложение идет от наиболее общих понятий к час¬ тным примерам и их технической реализации. Первая глава посвящена определению основных понятий, свя¬ занных с синтезом изображений. Укрупненные этапы, из которых состоит процесс синтеза, а также необходимая для этого инфор¬ мация анализируются с точки зрения пользователя. В отличие от первой цель второй главы — изложение точки зрения разработчика системы синтеза. Рассматриваются задачи, относящиеся к организации и распределению операций, а также к выбору технических средств для их реализации, и предлагают¬ ся пути решения. В соответствии с принципами, изложенными в двух предыду¬ щих главах, в третьей главе представлено состояние дел в обла¬ сти машинной графики и синтеза изображений. Этот обзор, учи¬ тывающий аппаратный аспект, позволяет оценивать и сравнивать системы, имеющиеся в широкой продаже, с системами, находя¬ щимися еще на стадии разработки в исследовательских лабора¬ ториях. В дополнение к предыдущим в четвертой главе развивается программный аспект систем синтеза изображений. Именно изуче¬ ние главных факторов, влияющих на ход выполнения операций синтеза, позволяет усовершенствовать алгоритмы удаления неви¬ 7
димых линий и организовать наиболее характерные базовые прог¬ раммы. Во второй части данной главы приводится решение, воз¬ лагающее на систему общее управление процессом. В пятой главе отражен функциональный аспект процессов синтеза изображений. Здесь описываются основные операторы — морфологические, геометрические, а также относящиеся к внеш¬ нему виду объектов и предназначенные для придания им боль¬ шей реалистичности. Детально рассмотрены лишь наиболее про¬ стые методы, а по более сложным даются многочисленные биб¬ лиографические ссылки. Последняя, шестая глава посвящена одной конкретной, недав¬ но разработанной системе синтеза реалистических изображений. Она целиком базируется на концепциях, изложенных в предыду¬ щих главах, что позволяет проиллюстрировать на конкретном примере все этапы, начиная е технических требований и кончая выбором аппаратных средств реализации. Обширная библиография позволяет заинтересованному чита¬ телю найти первоисточники описанных методов для более углу¬ бленного изучения отдельных вопросов.
Глава U КОНЦЕПТУАЛЬНЫЙ АСПЕКТ: ТОЧКА ЗРЕНИЯ ПОЛЬЗОВАТЕЛЯ Эта глава посвящена определению основных понятий, исполь¬ зуемых для описания процессов синтеза изображений с. помощью ЭВМ. Система синтеза изображений рассматривается здесь как единое целое, без синтаксических ограничений, без предваритель¬ ного разделения на аппаратные и программные средства вне за¬ висимости от непрерывно развивающихся технических средств, без связи с какой бы то ни было техникой — прошлого или буду¬ щего. В расчет принимается только точка зрения пользователя, для которого и предназначены эти основные понятия. Начнем их изложение с краткой истории развития методов синтеза изображений. Приведенный далее краткий обзор предназ¬ начен не для того, чтобы дать исчерпывающий перечень выпол¬ ненных работ, а скорее для того, чтобы показать основные на¬ правления и тенденции, которые обосновывают выбор подхода, представленного в данной книге. 1.1. ИСТОРИЯ и СОСТОЯНИЕ ВОПРОСА Если несколько схематизировать двадцатилетний отрезок вре¬ мени (именно столько лет насчитывает проблема синтеза изобра¬ жений с помощью ЭВМ), то в нем можно выделить три последо¬ вательных периода: начальный, период ученичества и совре¬ менный. 1.1.1. Начальный период (1963—1970 гг.) Несмотря на то, что первая электронно-лучевая трубка была соединена с вычислительной машиной еще в 1952 г. [37], приш- лость ждать более 10 лет (точнее, до 1963 г.) до появления пер¬ вого реального эффективного пакета программного обеспечения машинной графики SKETCHPAD, разработанного Сазерлендом [103]. В том же году был опубликован и первый алгоритм уда¬ ления невидимых линий [88]. Были сформулированы основные по¬ нятия, связанные с процессом рисования отрезками, и в 1965 г. Брезенем [16] опубликовал набор алгоритмов, позволяющих соз¬ давать рисунки на цифровом графопостроителе. Но надо было .ждать еще до 1967 г., чтобы стать свидетелями настоящего скач¬ ка в этой области. Действительно, тогда впервые были продемон- 9
стрированы сложные поверхности [25], введены понятия освеще¬ ния и затенения [2], разработаны методы описания и моделирова¬ ния [93]. Завершение данного периода отмечено важными веха¬ ми: появлением алгоритмов устранения невидимых частей, пред¬ ложенных в [43] для векторных рисунков, а также в [110, 111] для изображений. Примерно в то же время появились первые цветные растровые дисплеи, сопряженные с памятью изображе¬ ний. 1.1.2. Период ученичества (1971 —1978 гг.) Он характеризовался двумя главными тенденциями, одна из которых была направлена на улучшение и дальнейшее развитие базовых технических средств, а другая — на то, чтобы выявить основные концепции. В рамках первого направления большая часть работ касалась улучшения визуального качества изображе¬ ния. Среди работ этой категории следует отметить метод «сгла¬ живания» поверхностей, предложенный Гуро [44], моделирование эффекта освещения [82], генерирование текстур [10], рельефов [9], а также методы подавления алиайзинга * [29]. Среди нови¬ нок того времени находим алгоритмы удаления невидимых линий, согласованные с новыми возможностями аппаратуры [80, 5], про¬ граммы описания, такие как EUCLID [105], или основанная на методе объединения элементарных базовых блоков программа, разработанная в [15]. Можно назвать также многочисленные ме¬ тоды аппроксимации и представления сложных поверхностей [21,. 56, 61], а также большое число программ для графики размерно¬ стей 2D и 3D [108, 116]. Такой количественный «взрыв» и широкое разнообразие прог¬ раммных методов в то же время вызвали появление работ, на¬ правленных на выделение базовых концепций различных опера¬ ций, зачастую достаточно скрытых чисто техническими приема¬ ми. В 1974 г. были'сделаны две попытки такого рода: классифи¬ кация алгоритмов удаления невидимых линий, предложенная Са¬ зерлендом и др. [99], и подход Ньюмена и Спрулла к определе¬ нию базового графического математического обеспечения, не за¬ висящего от аппаратуры [79]. Впрочем, эта идея независимости стала одной из главных особенностей конца периода ученичества, поскольку она породила последовательно: концепцию програм¬ много обеспечения GRIGRI [58, 59], попытку нормирования гра¬ фических средств, предложенную в [47], и первые шаги стан¬ дарта GKS [34]. Что касается оборудования, то прогресс в обла¬ сти больших интегральных схем (БИС) и успехи в развитии ми¬ кропроцессоров оказали существенное влияние на разработку цветных растровых дисплеев, которое проявилось: в увеличении объема памяти и скорости обработки; * Алиайзинг (aliasing) — паразитные эффекты пространственной дискрети¬ зации, в частности эффект «ступенек» (см. подразд. 5.4.2). — Прим. перев. 10
В использовании процессоров, предназначенных для решения специфических задач, таких как заполнение контуров [36] или особых объектов, как, например, сферы [100]; в разработке видеокомплексов, собранных в едином блоке [71] и обеспечивающих управление памятью изображения, генериро¬ вание векторов и символов, а также выработку синхросигналов, необходимых для управления телевизионным монитором. 1.1.3. Современный период (начиная с 1979 г.) В настоящее время, несмотря на большое число постоянно вы¬ ходящих публикаций по синтезу изображений, «новых идей» сре¬ ди них встречается сравнительно мало. Наиболее заметная тен¬ денция заключается в поисках программных или аппаратных средств улучшения технико-эксплуатационных характеристик (скорости обработки, качества и сложности изображений) и в использовании их для все более специфических приложений. Опу¬ ская здесь библиографические ссылки, которые можно найти в последующих главах, назовем лишь некоторые из наиболее ин¬ тересных узловых моментов: разработка параллельных архитектур, основанных на элемен¬ тах с жесткой логикой или на сверхбольших интегральных схе¬ мах (СБИС); методы подавления алиайзинга с использованием элементов с жесткой логикой или средств микропрограммирования; методы преобразования изображений (повороты, перспектива и др.); методы синтеза специфических объектов, таких как многогран¬ ники, функции двух переменных, сферы и т. д.; моделирование отражения света от объектов с целью повыше¬ ния их реалистичности; адаптация методов к специфическим применениям; использование видеотехники: микширование, врезки изобра¬ жений, запись на видеодисках. Кроме того, были проведены исследования некоторых специ¬ альных вопросов, в частности: преобразований и восприятия цветовых пространств; классификации и сравнения алгоритмов удаления невидимых линий, а также элементарных алгоритмов синтеза изображений; распараллеливания алгоритмов в соответствии с заданными критериями. 1.1.4. Заключение Этот краткий исторический очерк несмотря на свою схематич¬ ность позволяет сделать несколько выводов. Прежде всего с точки зрения техники наблюдалась отчетливая тенденция в направлении ко все более заметной специализации либо по характеру применения, либо по типу оборудования. Ta¬ ll
кая тенденция вызвана, с одной стороны, немалыми трудностями, которые возникли при использовании общих методов, разработан¬ ных в течение первых двух периодов, а с другой стороны — по¬ явлением новых возможностей благодаря бурно развивающейся микроэлектронике. Этот эволюционный процесс является весьма многообещающим и хорошо отражает динамичный характер дан¬ ного раздела информатики. В то же время при знакомстве с основными принципами прог¬ раммного обеспечения и попытками их «нормализации» кажется, что, наоборот, пройдена лишь весьма малая часть пути. Несмотря на то, что в течение 1974—79 гг. много усилий- отдельных авторов и целых коллективов было направлено на унификацию основных принципов, заметных результатов в этом плане к настоящему времени пока еще не получено, о чем свидетельствует то широкое их разнообразие, которое наблюдается в многочисленных пуб¬ ликациях. Чтобы проиллюстрировать причины, вызвавшие такое положение дел, рассмотрим характерный пример: нормирование, предложенное группой Комитета по разработке графических стан¬ дартов Ассоциации по вычислительной технике [47] (см. деталь¬ ную разработку в [59]). Представляется, что эта работа приме¬ чательна несколькими своими «стратегическими» ошибками: прежде всего речь идет о нормировании примитивов (синтак¬ сических и семантических аспектов), хотя еще не определены да¬ же основные понятия; несомненно, что предложения были продиктованы возможно¬ стями аппаратуры, которая в то время имелась в распоряжении их авторов. Для современных, весьма усовершенствованных тер¬ миналов, обладающих большим количеством локальных функций или оперирующих, например, с реалистичными изображениями, эти предложения совершенно не подходят; примитивы касались вначале векторных рисунков, что значи¬ тельно ограничивало интерес к ним. Это «упущение» было ис¬ правлено в 1979 г. дополнением к ранее предложенной норме [48], что оказалось скорее полным пересмотром первоначальной вер¬ сии, чем просто учетом новых факторов. Отсюда видно, что дос¬ таточно ввести несколько понятий, не предусмотренных вначале,, чтобы пересмотреть всю совокупность принципов, излагаемых ни¬ же. Так, динамическое слежение с помощью примитивов, управ¬ ляющих перемещением пучка (MOVE, DRAW), не имеет смысла, если рассматривать площади. Если обратиться к следующему этапу развития стандарта GKS [35], то заметим несомненный прогресс, вызванный именно статическим определением слежения за отрезком (исчезновение примитивов MOVE и DRAW) и принципами организации рабоче¬ го места, позволяющими получить значительно большую незави¬ симость от оборудования. В случае синтеза реалистичных изображений, требующих ге¬ нерирования текстур, вычисления освещенности, учета теней, предложенные примитивы снова становятся недостаточными и 12
значительная часть предложенных понятий перестает удовлетво¬ рять пользователя. Кроме того, не используются особенности раз¬ работанных терминалов, в которых все больше объединяются спе¬ цифические функции: генерирование, накопление и др. Эти утверждения лежат в основе принципов, излагаемых ни¬ же. Действительно, представляется более логичным подойти к проблеме синтеза с самых общих позиций, иначе говоря, выде¬ лить принципы управления синтезом изображений (в самом ши¬ роком смысле слова), перекрывающие весь спектр приложений — от векторных рисунков до реалистичных изображений. Чтобы не быть лишь отражением уровня развития техники на определен¬ ном отрезке времени, предварительный этап изучения будет вес¬ тись независимо от разделения между аппаратными и програм¬ мными средствами, от любых особенностей техники. Лишь на вто¬ ром этапе требуемые характеристики и реальные ограничения послужат основанием для выбора того или иного направления, оборудования того или другого типа, однако в любом случае ос¬ новные принципы останутся неизменными. В следующих разделах данной главы именно такой подход ис¬ пользуется для изложения основных принципов. Конкретные ме¬ тоды и их техническая реализация описаны в других главах. 1.2. ОСНОВНЫЕ ПОНЯТИЯ ИНТЕРАКТИВНОГО СИНТЕЗА ИЗОБРАЖЕНИИ 1.2.1. Типы изображений Любое изображение в конечном итоге предназначено для то¬ го, чтобы донести до наблюдателя некоторую совокупность визу¬ альных сведений, воздействующих на механизмы понимания и анализа данной сцены. Такие визуальные сведения должны, ес¬ тественно, подчиняться законам, управляющим процессами визу¬ ального восприятия в «реальном мире», т. е. законам, которым подчиняются механизмы распознавания человеческого мозга. Далее будет использоваться один и тот же термин сцена для подчеркивания общности двух явлений: того, что задумано как задача синтеза, и того, что воспринимается в мозгу человека как результат синтеза. Виртуальная сцена-замысел, задуманная опе¬ ратором, т. е. сцена, которую предстоит синтезировать, должна пройти несколько промежуточных этапов перед тем, как достиг¬ нуть стадии изображения, а затем снова превратиться в сцену, но уже в сознании наблюдателя, как показано на рис. 1. Что касается термина синтезированное изображение, то им бу¬ дем обозначать любое визуальное представление, которое полу¬ чено с помощью ЭВМ, выполняющей только директивы наблю¬ дателя вне всякой связи с реальным изображением. Множество изображений можно классифицировать в зависимости от методов их создания, т. е. от типов базовых элементов, из которых они со¬ стоят: точки, линии, площади и т. д. 13
Рис. 1. Этапы представления информации Можно создать и другой вариант классификации изображений, если положить в ее основу характер передаваемой информации: абстрактные изображения, которые не содержат никакой ре¬ альной информации, а скорее создают впечатление или вызыва¬ ют определенные эмоции; символические изображения, такие как диаграммы, графики, карты погоды, которые отображают информацию количественную, топологическую, структурную и т. д.; упрощенно-фигурные изображения, которые представляют с помощью рисунка или эскиза предметы реального мира в упро¬ щенном виде; реалистичные изображения, которые стремятся придать изоб¬ ражаемым объектам вид реальных предметов. Граница между различными категориями часто бывает субъ¬ ективной. Особенно это заметно при сопоставлении упрощенно¬ фигурных и реалистичных изображений, для оценки которых мо¬ жно ввести различные степени реалистичности. 1.2.2. Участники диалогового процесса синтеза В процессе интерактивного синтеза изображений участвуют два главных «собеседника»: человек-оператор и прикладная про¬ грамма (под последним термином будем понимать всю совокуп¬ ность программ — саму прикладную программу вместе с исполь¬ зуемыми ею специальными средствами программного обеспече¬ ния). Такой «визуальный» диалог может быть представлен своего рода петлей обратной связи, по которой движется большой поток информации, обрабатываемой собеседниками (рис. 2). Рассмот¬ рим более подробно роли, которые играют участники процесса. Прикладная программа. Она является главным «действующим лицом» в диалоге, управляя с помощью меню пошаговых дейст¬ вий, предлагаемых пользователю и соединяемых в единую пос¬ ледовательную цепь благодаря программируемому автомату. Ее основная задача заключается в том, чтобы с помощью всей име¬ ющейся в ее распоряжении информации дать наблюдателю такие сведения, которых ему будет достаточно для лучшего понимания сцены. Выполнение этой операции требует определенных знаний о механизмах анализа, действующих в мозгу человека, а также о физических явлениях окружающего мира. Основные проблемы, возникающие на уровне программ синтеза изображений, связаны главным образом с трудностями моделирования тех физических 14
Рис. 2. Интерактивное взаимодействие в процессе синтеза явлений, которые управляют процессами визуального восприятия. Оператор. Его главная задача заключается в анализе пред¬ ставленных изображений для извлечения синтезированной в них информации. Взамен оператор поставляет новые графические данные, используемые для внесения изменений в изображения. Эти данные описываются в аналитической форме с помощью клас¬ сических устройств связи, имеющихся в его распоряжении на ра¬ бочем месте, например, таких, как цифровой планшет графичес¬ кого ввода, световое перо и т. д. Ясно, что основная трудность заключается в «квантовании» различных параметров, которые на¬ до сообщать прикладной программе. Это хорошо видно на при¬ мерах описания цвета и представления поворотов в трехмерном пространстве. Таким образом, на прикладную программу или на сопровож¬ дающие ее вспомогательные программные средства возлагается до¬ полнительная задача — обеспечить оператору возможность описа¬ ния визуальных данных в дискретной форме с помощью «само- квантующих» устройств. Например, для описания цвета удобнее всего предоставить оператору некую палитру, на которой тот мог бы указать желательный оттенок (см. описание вида). Кроме того, чрезвычайно интересной оказалась возможность описывать информацию в синтетической форме, например, с по¬ мощью изображений (реальных или синтезированных), получен¬ ных посредством цифровой камеры. Тем самым в распоряжение оператора предоставляются многочисленные методы, давно при¬ меняющиеся в области анализа и обработки изображений. В об¬ ласти синтеза эти же методы позволяют существенно расширить возможности описания изображений. 15
1.2.3. Основные определения 1.2.3.1. Понятие о классе информации В рамках приведенного выше подхода можно утверждать, что для наблюдателя важно не само по себе изображение, а то впе¬ чатление, которое оно создает. Действительно, изображение слу¬ жит всего лишь переносчиком существенной информации и поз¬ воляет успешно передавать ее от источника (телевизионный мо¬ нитор) к получателю (глаз человека), как это показано на рис. 3. Однако здесь, как и при всякой передаче, следует учитывать некоторые потери информации, происходящие как на передаю¬ щей, так и на приемной стороне. Следовательно, синтезированное изображение должно по крайней мере содержать всю информа¬ цию, предназначенную для извлечения ее человеком в процессе анализа, но, как правило, значительная часть представленной в изображении информации в действительности наблюдателем не воспринимается. Информация, содержащаяся в изображении, может быть раз¬ делена на шесть независимых классов: I — идентификация (Identite) М — морфология (Morphologie) А — внешний вид (Aspect) G — геометрия (Geometrie) Е — освещение (Eclairage) S — структура (Structure) *. Идентификация (I) содержит информацию, относящуюся к наименованию объектов или множеств объектов, представленных в изображении. Морфология (М) выражает форму, присущую каждому объ¬ екту независимо от его положения, размеров или положения на- Телевизионный монитор Рис. 3. Процесс прохождения информации * Первые буквы используемых в оригинале терминов образуют французское слово IMAGES—«изображения» (во множественном числе). — Прим. перев. 16
блюдателя. Эта информация имеет решающее значение для ме¬ ханизмов распознавания объектов. Внешний вид (А) характеризует облик объекта независимо от условий его освещения, т. е. отражение света или, другими сло¬ вами, информацию, относящуюся к материалу, из которого сос¬ тоит объект. Эти свойства описываются такими параметрами, как цвет, текстура, яркость, прозрачность и т. д. Геометрия (G) дополняет морфологию. В ней содержатся дан¬ ные, позволяющие располагать объекты в определенном порядке по отношению друг к другу, а также параметры, управляющие «съемкой», областями видимости и т. д. В этой информации за¬ ключены в основном сведения о перемещениях, поворотах, проек¬ циях, разрезах и др. Освещение (Е) в случае реалистичных изображений указыва¬ ет на природу, число и расположение источников света, а также на условия видимости: туман, дым, атмосферные явления и т. д. Структура (S) отражает отношения, связывающие предметы между собой, которые по своей природе могут быть логическими (принадлежность, включение и т. д.), топологическими (близость, касание и т. д.) и функциональными (по выбору пользователя). Заметим, что эти шесть классов информации могут быть раз¬ делены на три категории, которые на уровне конечного изобра¬ жения отображают различные по своей природе фундаменталь¬ ные свойства. Топологическая информация (морфология и геометрия) опре¬ деляет в конечном итоге области на плоскости изображения, со¬ ответствующие различным видимым объектам. Она воспринима¬ ется наблюдателем лишь путем анализа, который может быть иногда трудным или неоднозначным. Визуальная информация (внешний вид и освещение), напро¬ тив, характеризует каждую точку изображения, и для каждой она должна быть обязательно однозначно определена. Название это¬ го вида информации основано на том, что только она непосредст¬ венно воспринимается наблюдателем. Определительная информация (идентификация и структура) в отличие от предыдущей не является характеристикой изобра¬ жения. О ней, основываясь на полученном изображении, делает вывод человек-наблюдатель в соответствии с контекстом, со сво¬ ими способностями к распознаванию и сведениями б сюжете ви¬ зуализируемой сцены. Можно уже сейчас отметить, что такая ин¬ формация теряется в процессе синтеза и эта потеря влечет за со¬ бой серьезные последствия, особенно на стадии интерактивного взаимодействия, как будет видно из следующей главы. 1.2.3.2. Понятие о типе информации Информацию каждого из шести основных классов можно раз¬ делить на несколько различных типов. Понятие типа вытекает из необходимости определения информации в зависимости от следу¬ ющих критериев: 17
семантических, т. е. относящихся к природе информации, о ко¬ торой идеть речь. Если иметь в виду морфологию, то можно наз¬ вать такие типы: круг, вектор, область, буква, многогранник и т. д.; синтаксических, т. е. относящихся к моделированию инфор¬ мации (например, координаты — декартовы или полярные, чис¬ ло— целое или вещественное, изображение — сжатое или растя¬ нутое и т. д. ); структурных, позволяющих группировать объекты одинаковой природы: последовательность точек, совокупность пятен и т. д. Однако понятие о типе выходит за пределы шести первичных классов информации, поскольку в процессе работы эта информа¬ ция синтезируется так, что образуются «смешанные» классы, е которых разделение по типам необходимо проводить таким же образом. Отметим также, что понятие типа информации включа¬ ет в себя тот класс, к которому она принадлежит. Элементарные операторы синтеза, необходимые для перехода от шести типов исходной информации к конечной, выражающей цвет в каждой точке экрана, видоизменяют тип информации, к которому она относится. Можно сформулировать несколько характерных правил, соот¬ ветствующих наиболее часто встречающимся операторам: синтез (M.G.). Речь идет обычно о простом геометрическом преобразовании, выполняемом с помощью матричного умножения. Результат определяет новую морфологию и принадлежит к клас¬ су (М); м зИЗ>— синтез (А.Е.). Этот оператор изменяет цвет, присущий объек¬ ту, в зависимости от условий освещения. Результатом является цвет, определяющий новый внешний вид (А); А — синтез (М.А.). Здесь речь идет об операторе, позволяющем приписывать внешний вид (А) всем точкам области, которая оп¬ ределена классом (М). Сюда включаются, например, операции заполнения площадей, генерирования различных текстур и т. д. Результатом является внешний вид (А) точек изображения. Мор¬ фология восстанавливается в мозгу наблюдателя после анализа. м > ► А А 18
1.2.З.З. Понятие элемента и признака (атрибута) Сцена, которую предстоит синтезировать, состоит из объектов. Сохраним это наименование и для обозначения виртуальных объ¬ ектов, таких как задуманные или воспринимаемые в мозгу чело- века. Термином элемент будем называть различные внутренние представления этих объектов в машине. В широком смысле мож¬ но определить тип элемента в зависимости от типа информации о его: идентификации I, морфологии М, внешнем виде А, геомет¬ рии G. Структура (S) и освещение (Е) относятся к сцене в це¬ лом, а не к отдельным объектам. Отдельные информационные рубрики составляют признаки, связанные с элементами или сценой. Кроме того, некоторые эле¬ менты могли бы быть определены через признаки, синтезирован¬ ные предварительно. Так, элемент мог бы быть определен либо типом признака (I), либо типом признака (М. G. А), т. е. инфор¬ мацией, синтезированной предварительно. Это равносильно тому, что оператор синтеза, примененный к признакам элемента типа X, порождает новый элемент типа Y, в общем случае отличающийся от первоначального, поскольку его признаки изменились. 1.2.4. Укрупненные этапы синтеза изображений Синтез изображения в соответствии с несуществующей заду¬ манной сценой (или реальной, но недоступной), проходит через стадию реализации макета, состоящую, как и в реальной жизни, из трех основных этапов: описания макета, представляющего синтезируемую сцену; конструирования этого макета; собственно визуализации. 1.2.4.1. Описание макета На первом этапе человек-оператор, осуществляющий синтез, описывает составные элементы макета и связывающие их отноше¬ ния. Это в некотором роде представление о плане макета. Каж¬ дый элемент полностью описан, т. е. все его признаки (I, М, A, G) порознь сообщаются машине. Аналогично описываются структу¬ ра и параметры освещения (Е, S), но, естественно, только приме¬ нительно ко всему макету в целом. Устройства, предоставляемые оператору для воплощения описа¬ ния, должны быть, насколько это возможно, независимыми от за¬ дач, относящихся к конструированию и визуализации. Чтобы опи¬ сание было удобным для дальнейшего использования, следует опираться на характеристики самих объектов. 19
1.2.4.2. Конструирование макета На данном этапе, исходя из признаков, дополненных описани¬ ем, эффективно реализуются модели объектов. Для уточнения этой мысли рассмотрим, например, сферу. Она может быть фор¬ мально описана данными о радиусе и координатах центра, одна¬ ко практическое конструирование состоит в том, чтобы аппрокси¬ мировать множество точек ее поверхности с помощью плоских многоугольников, поверхностей второго порядка и т. д. Эта операция, как и в случае «физического» макета, непосред¬ ственно связана с условиями, при которых макет будет обозре¬ ваться, если условия известны заранее. Так, макет, предназначен¬ ный для наблюдения с заданного направления, вообще может не содержать «тыльных» поверхностей представленных в нем объек¬ тов. С другой стороны, широкое разнообразие реальных объектов вынуждает применять различные методы конструирования. В слу¬ чае системы синтеза изображений с помощью ЭВМ разнообразие выражается в использовании в одном и том же макете элементов, относящихся к различным типам. Задачи, возникающие на этом этапе, будут рассмотрены в следующей главе. 1.2.4.3. Визуализация Для выделения и изучения основных операций визуализации сравним их с операциями, встречающимися в повседневной жиз¬ ни в процессе фотографирования. Рассмотрим две главные опе¬ рации: непосредственно съемку и отображение полученного снимка. При реальном фотографировании визуальная информация от макета запоминается на пленке в химической форме, затем про¬ ходит промежуточные этапы (проявление и др.), прежде чем пре¬ вратится в конечное изображение. Число и природа промежуточ¬ ных этапов (кадров) зависит от используемого процесса (фото¬ отпечатки, диапозитивы и т. д.). То же самое происходит и при синтезе: ряд последовательных кадров содержит скрытые изоб¬ ражения, преобразуемые с помощью неполностью синтезирован¬ ных признаков. Второй этап — это просто представление снимка (или его про¬ екция), в которое еще можно вмешаться, например, для разме¬ щения его среди других, представляемых одновременно с ним в результирующем изображении. 1.2.4.4. Промежуточные этапы На рис. 4 схематически представлены основные этапы описан¬ ного выше процесса. Ясно, что для перехода от задуманной опе¬ ратором сцены-замысла к воспринимаемой им сцене требуется пройти через большое число промежуточных этапов. Назовем макетами — все структуры данных, расположенные до съемки; 20
кадрами — все структуры данных, расположенные после съемки. Снимок — это особый вид кадра, в котором синтезирована поч¬ ти вся информация (кроме той, которая относится к отображе¬ нию). Изображение — это кадр, в котором синтезирована вся инфор¬ мация. 1.3. ОСНОВНЫЕ ЭЛЕМЕНТЫ ОБЩЕЙ СИСТЕМЫ СИНТЕЗА ИЗОБРАЖЕНИЙ 1.3.1. Операции Не пытаясь составить исчерпывающий список функций, вы¬ полняемых в процессе синтеза изображений, напомним для каж¬ дого из четырех этапов, рассмотренных в предыдущем разделе, «необходимые» операции, а также относящиеся к ним признаки. 1.3.1.1. Описание макета Первый этап предназначен для получения исходной модели, соответствующей сцене-замыслу, и требует поэтому описания, а 21
затем и моделирования всех классов признаков (I, М, A, G, Е, S). Помимо устройств, предназначенных для морфологического описа¬ ния (М) тех или иных категорий объектов, следует предусмотреть возможность выполнения функций, позволяющих изменять вза¬ имное расположение одних объектов по отношению к другим (G), оказывать влияние на их внешний вид (А), указывать в случае необходимости условия освещения сцены (Е) и, разумеется, иден¬ тифицировать их (I) и придавать им соответствующую структуру (S). Эта последняя операция включает в себя возможность соз¬ дания и упразднения (уничтожения) объектов. 1.3.1.2. Конструирование макета На втором этапе выполняются операции генерирования, позво¬ ляющие получать полную информацию, начиная с параметров управления: с помощью алгоритмов, операторов композиции эле¬ ментарных исходных данных, опираясь на банки информации, пу¬ тем интерполяции, аппроксимации и т. д. Наиболее характерным примером обработки такого рода слу¬ жит, вероятно, воссоздание трехмерных объектов по эскизным плоскостным наброскам, нарисованным пользователем. Все признаки, какими бы они не были, могут, следовательно, создать объект по «синтетическому» описанию в соответствии с несколькими параметрами так, чтобы минимизировать занима¬ емый объем и упростить описание. При этом на этапе констру¬ ирования потребуются более значительные затраты машинного времени. 1.3.1.3. Съемка На третьем этапе, подобно тому, как это делается при фото¬ съемке, выполняются операции: описание параметров, управляющих съемкой, таких как: точ¬ ка съемки, направление визирования, характеристики фотоаппа¬ рата, в частности, тип используемого объектива, его фокусное расстояние, а также формат снимка (эти параметры позволяют определить вид получаемого отображения и границы видимого пространства); непосредственно съемка. Отметим, что все перечисленные признаки можно отнести к классу геометрических признаков (G), но в отличие от признаков, используемых на этапе описания, они применяются глобально и относятся ко всем элементам макета, позволяют выполнять пре¬ образования координат, в которых описан макет, в координаты, в которых описывается снимок. В случае трехмерного макета эта съемка выполняется путем проекции его на плоскость снимка. Чтобы отличать эти признаки, будем обозначать их через (Gv). 22
1.3.1.4. Отображение На последнем этапе синтеза получают результирующее изоб¬ ражение с помощью нескольких геометрических признаков, обоз¬ начаемых (Ga), путем «кадрирования» снимка, аналогично фото¬ графии. Речь идет, следовательно, о преобразовании координат, в которых описан снимок, в координаты, в которых описано изоб¬ ражение, причем и те и другие координаты двухмерные. В то же время этап создания изображения может быть дополнен значи¬ тельно более сложными приемами, характерными для современ¬ ных средств обработки видеоизображений: анаморфотными пре¬ образованиями, наложениями, врезками и т. п. 1.3.1.5. Краткая сводка На рис. 5 представлены признаки, используемые в процессе четырех основных операций синтеза. Можно дать также краткий перечень операций, позволяющих получить представление о том, чем определяется система синтеза изображений. Описание— I Описание — М Описание — А Описание— G Описание— Е Описание— S Описание— Gv Описание — Ga Визуализация -) для каждого элемента для совокупно¬ сти элементов для совокупно¬ сти элементов для совокупно¬ сти элементов для совокупно¬ сти элементов описание и констру¬ ирование макета описание съемки описание отображения 1.3.2. Различные процессы Система синтеза изображений играет роль посредника между двумя основными «собеседниками» — прикладной программой и оператором. Следовательно, система должна взять на себя дву¬ сторонний обмен между обоими участниками с помощью четырех различных процессов: программа —система: присваивание система ->■ программа: запрос 23
Рис. 5. Использование признаков система оператор: визуализация оператор -^система: описание Разумеется, все четыре процесса находятся под управлением прикладной программы, которая воздействует на них с помощью примитивов. Ниже рассматриваются эти процессы и описываются возможные примитивы для их вызова. Это ни в коем случае не означает определение некоего языка, а только простую формали¬ зацию взаимодействия между прикладной программой и сис¬ темой. 1.3.2.1. Присваивание признака Случаи, когда все признаки (атрибуты) получаются непосред¬ ственно при первом же вводе, осуществляемом оператором, отно¬ сительно редки. Значительное их число образуется в процессе вычислений, выполняемых в прикладной программе, и использу¬ ется в структурах данных системы. Этот процесс может быть выз¬ ван прикладной программой с помощью примитива такого вида: ПРИСВОИТЬ (идентиф.-элементы, тип-атрибут, информ.). Здесь идентиф.-элементы представляет собой список из одно¬ го или нескольких элементов, для которых должна быть пред¬ назначена информация информ. типа тип-атрибут. Если признак принадлежит к одному из классов (S, Е, Gv, Ga), то он относится ко всем элементам (или к подмножеству, представленному с помощью «идентиф.-элементы»). 24
Таким образом, речь идет об описании, выполняемом програм¬ мой с помощью переменных, таблиц и т. д., сообщаемых значени¬ ями или адресами. В первом случае данные действительно передаются системе, а во втором — сообщаются только адреса. Процесс присваивания атрибута может быть разбит на два оператора, выполняемых по¬ следовательно: опрос структуры данных системы в поисках элементов, к ко¬ торым этот атрибут относится, непосредственно выполнение. 1.3.2.2. Опрос Программа должна иметь возможность восстанавливать приз¬ наки, выдаваемые системой. Это необходимо главным образом по¬ сле того, как описание уже было ранее выполнено для сообщения прикладной программе описанных признаков. Примитив, дуальный по отношению к примитиву присвоения признака, имеет вид: ОПРОСИТЬ (идентиф.-элементы, тип-атрибут, информ.). Здесь информ. — результат процесса. В случае, когда на уров¬ не системы представлены только адреса, запрос может быть вы¬ полнен непосредственно внутри прикладной программы. 1.3.2.3. Процесс визуализации Визуализация одного или нескольких элементов макета пред¬ ставляет собой процесс синтеза описательных признаков в итого¬ вую информацию, выражающую цвет в каждой точке экрана. Рассмотренный выше обобщенный процесс синтеза, состоящий из последовательно выполняемых описания, конструирования, съемки и отображения, не является универсальным. С одной стороны, в случае изображений, синтезируемых вы¬ числительной машиной, не всегда возможно или желательно рез¬ ко разграничивать конструирование и непосредственно съемку. Этот этап конструирования может быть распространен на весь процесс визуализации и выполняться по мере того, как выполня¬ ются отдельные операции синтеза результирующей информации о цвете на основе первоначальных признаков. С другой стороны, соображения, относящиеся к эффективно¬ сти отдельных операций, могут существенно влиять на процесс визуализации. Следующая глава посвящена главным образом этой проблеме, но можно уже заранее предвидеть, что влияние будет ощущаться в основном на ходе выполнения и характере различных используемых элементарных операторов. Весь процесс пов^аЛИЗаЦИИ состоит из элементаРных операторов четырех ти- синтеза, задачей которых является синтез двух основных приз¬ наков; 25
запоминания, предназначенных для хранения промежуточных результатов процесса; конструирования (или моделирования), занимающихся преоб¬ разованием признака одного заданного типа в другой, например генерирование точек, составляющих линию окружности; композиции (или объединения), позволяющих объединять признаки (относящиеся к одному типу) нескольких элементов ма¬ кета. Результатом их действия может быть выборка элементов или просто отделение тех, которые обладают данным свойством, или действительное объединение (сочетание,’ пересечение и т. п.). Эти операторы используются главным образом в алгоритмах уда¬ ления невидимых линий, и только они воздействуют на группы элементов глобально. Проиллюстрируем действие операторов с помощью примера, представленного на рис. 6. Изображенный здесь процесс мог бы быть применен, например, к плоскому одноцветному многоуголь¬ нику, заданному в пространстве 3D. Многоугольник может пред¬ ставлять собой грань многогранника. Здесь действуют следую¬ щие операторы: 1. Синтез M.G морфологических признаков, определяющих контур, и геометрических признаков, позволяющих расположить прямоугольник в пространстве. 2. Синтез А.Е цвета А и интенсивности освещения Е. 3. Синтез G. (А.Е): цвет (А.Е) изменяется в зависимости от направления на источник света и от направления нормали к плос¬ кости грани (G). Рис. 6. Пример процесса синтеза 26
4 Синтез (M.G).Gv: соответствует операциям проецирования; гоани на плоскость (план). 5. Определение и конструирование внутренних точек грани ней точке цвет, изменяющийся в зависимости от освещения. 7. Синтез (M.G.A.E.Gv).Ga: позволяет кадрировать грань на экране (масштаб, перемещение, поворот, разрезание). 8. Преобразование конечной информации (M.G.A.E.Gv.Ga): выполняет в случае необходимости смену цвета, позволяющую,, например, выделять отдельные явления. Из этого примера видно, что не существует нйкакого специ¬ ального оператора, предназначенного непосредственно для запо¬ минания, и, следовательно, каждое изменение любого из пред¬ ставленных признаков влечет за собой выполнение всего процесса заново. Процесс построен так, будто речь идет об одном единст¬ венном элементе, и поэтому нет необходимости ни в каком опера¬ торе композиции. Различные многочисленные примеры процессов будут даны в последующих главах. Аналогично процессам присваивания признаков и опроса при¬ кладная программа может вызвать процесс визуализации с по¬ мощью одного единственного примитива: ВИЗУАЛИЗИРОВАТЬ (идентиф.-элементы, процесс). Указатель процесса позволяет системе определять порядок и характер необходимых операторов. Такой подход освобождает пользователя от управления процессом визуализации, выполне¬ ние которого целиком возложено на систему. Далее будет пока¬ зано, что в рамках этого подхода открывается широкое поле для исследования таких процессов, которые были бы лучше приспо¬ соблены к возможностям оборудования и к типу обрабатываемой информации. Следует различать два варианта процесса визуализации: ви¬ зуализации отложенной (задержанной), с предварительной за¬ писью, при которой примитив ВИЗУАЛИЗИРОВАТЬ вызывается для того, чтобы сразу отобразить на экране изображение, под¬ готовленное заранее, и процесс визуализации немедленной (непо¬ средственной), при которой процесс начинается неявно после каж¬ дого присваивания или описания. 1.3.2.4. Процесс описания В отличие от процессов присваивания признаков и опроса, ко¬ торые ограничиваются лишь простыми операциями, процесс опи¬ сания, наоборот, может быть чрезвычайно сложным. Действи- тиНд’г 0Г° С^ТЬ состоит в описании основных характеристик ( .M.A.G.E.S.Gv.Ga) синтезируемого макета с помощью инфор¬ мации, которая поступает от пользователя. Главная трудность здесь заключается в том, что аппаратура ввода, связанная с видео¬ терминалом, выдает только пары координатных точек (морфоло¬ 27 («заполнение»). 6. Синтез (M.G.Gv). (G.A.E): приписывает каждой внутрен
гическую информацию), исходя из которых должны быть описань другие типы признаков. Поэтому для описания каждого типа признаков необходщ специфический процесс, позволяющий преобразовывать первичнук информацию, получаемую от аппаратуры ввода, в признаки тре буемого типа. Основными видами первоначальной информацщ являются: координаты (системы координат аппаратуры ввода), которьь определяют синтезируемую информацию (М, G, Gv, Ga); числовые или алфавитно-цифровые параметры, позволяющц выражать отдельные характеристики создаваемых признаков Кроме того, для сокращения времени обработки в процессе визу ализации отдельные операции конструирования могут выполнять ся непосредственно в процессе описания. Отсюда следует, что чет кого разделения между описанием и визуализацией не существу ет, поскольку и то и другое требует выполнения операций, свя занных с конструированием. Следует обратить внимание на рас ширенное толкование используемого термина «описание элемента» он подчеркивает, что это часть глобального процесса, позволяю щая раздельно выделить признаки, связанные с рассматриваемы? элементом. На рис. 7 изображена схема процесса, в котором элемент под вергается нескольким преобразованиям. Здесь весь процесс мо жет рассматриваться как описание изображения. Пример: на рис. 8 показана схема процесса описания, позво ляющая определить в пространстве некоторое число точек пери метра круга по изображенным на экране координатам его цент ра и одной точки окружности. Желаемое число точек сообщает ся в форме параметра. На рисунке обозначены: 1 — моделирование координат путем задания в виде уравне ния или в виде двух величин («центр — радиус»), выраженных 1 координатах изображения; 2 — создание модели (в координатах снимка) в зависимое?: от геометрических признаков, которые были использованы дл отображения (Ga); Входная Описание типа 1 Визуализация типа 1 Описание типа 2 Визуализация типа 2 ’ Описание типа 3 Рис. 7. Разграничение процессов описания и визуализации 28
Координаты Ga Г1 Gv > Число точек Рис. 8. Процесс описания круга 3 — оператор, отображающий модель, например, на плоскость 2 = 0 (в абсолютных координатах макета), поскольку невозмож¬ но воссоздать третье измерение без дополнительной информации; 4 — генерирование точек контура в этой плоскости, причем число точек задается как параметр; 5 — воссоздание третьего измерения в соответствии с уравне¬ нием плоскости в пространстве до того, как выполнено отобра¬ жение (признак (G) элемента). 1.З.2.5. Идентификация Особенно интересным представляется процесс описания, вы¬ полняемый путем указания на элементы, для которых он уже был предварительно осуществлен. Такой тип обработки основан на операторе, позволяющем описывать подмножество макета (приз¬ наки I и S) исходя из указания, выполняемого непосредственно на экране. Этот специальный процесс, идентификация указанием, может оказаться достаточно сложным, если операторы запоми¬ нания не участвуют в процессе визуализации. Действительно, предстоит: 1) объединить координаты точек, указанных на экране; 2) вновь выполнить процесс визуализации вплоть до первой операции запоминания, содержащей признак идентификации. В то же время операции, обратные операторам синтеза, вообще гово¬ ря, не определены, поэтому для идентификации необходима псев- довизуализация «подозрительных» элементов, чтобы убедиться, что указанная точка имеет к ним отношение. Вообще такая псев- довизуализация проще настоящей по трем основным причинам: она начинается с последнего процесса запоминания; в ней не уча¬ ствуют признаки А и Е; нет необходимости определять все точ¬ ки элемента, а следует лишь убедиться в том, что указанная точ¬ ки принадлежит данному элементу. Как и визуализация, процесс описания может быть вызван одним единственным примитивом: ^ПИСАТЬ (идентиф.-элементы, процесс, тип-атрибут). 29
Здесь признак типа тип-атрибут описывается в соответствии q обозначенным процессом и предназначается для элементов, к ко¬ торым относится указание идентиф.-элементы. 1.3.3. Характеристики систем синтеза 1.3.3.1. Общий случай Можно попытаться дать общее определение системы синтеза изображений как интерфейса между исходным пространством I и конечным пространством Т. Каждое пространство, в свою оче¬ редь, определяется парой множеств 1 = {Р(1),Е(1)}, Т = {Р(Т),Е(Т)}, где P(j)—множество процессов визуализации, присваивания признаков, опроса или описания; E(j)—множество элементов, над которыми эти процессы выполняются. Следует заметить, что каждый процесс p(k, j) из P(j) определен не обязательно над всем множеством E(j), а на подмножестве D(k, j) D(k, j)crE(j), E (j) = U D (k, j). к В случае синтеза изображений результирующее пространство Т, в качестве которого выступает пространство экрана электрон¬ но-лучевой трубки, определяется следующим образом: единственный элемент, принадлежащий к Е(Т), есть элемент изображения (пиксел); единственный процесс, принадлежащий к Р(Т), есть процесс присваивания цвета данному пикселу. И, напротив, что касается исходного пространства I, то мно¬ жество процессов Р(1) может быть получено из предыдущих рас- суждений, поскольку множество Е(1) всех элементов, которые следовало бы рассмотреть с учетом разнообразия ситуаций, не¬ ограниченно. Максимальная система содержала бы, таким обра¬ зом, набор следующих процессов: Для каждого типа элемента: Описание Присваивание Опрос ^ Идентификация (I) Морфология (М) Внешний вид (А) Геометрия (G) Описать — I Описать — М Описать — А Описать — G Присвоить — I Присвоить — М Присвоить — А Присвоить — G Запросить — I ^ Запросить — М ( Запросить — А Запросить — G ( 30
Для макета: Описание Присваивание Опрос Е S Gv Ga Описать — Е Описать — S Описать — Gv Описать — Ga Присвоить — Е Присвоить — S Присвоить — Gv Присвоить — Ga Запросить — Е Запросить — S Запросить — Gv Запросить — Ga К этому следует добавить множество процессов визуализации, относящихся ко всем элементам в зависимости от аппаратных средств, выбранного типа представления и требуемых характе¬ ристик. 1.3.3.2. Особые случаи и их свойства Для уменьшения числа необходимых процессов разработчики систем синтеза изображений предложили использовать несколь¬ ко путей упрощения: уменьшить число обрабатываемых элементов, что ограничива¬ ет область применения системы; использовать одни и те же типы признаков для всех элемен¬ тов (особенно I, G, А), что позволяет включать для визуализа¬ ции одни и те же процессы для всех этих элементов, а иногда и одни и те же базовые операторы; применять комбинированные процессы, позволяющие, напри¬ мер, описывать одновременно несколько признаков. Такое объе¬ динение обеспечивает заметное упрощение системы ценой сущест¬ венного уменьшения ее гибкости; представлять данные на уровне прикладной программы для исключения необходимости опроса. Однако этот вариант требует от программиста знания конкретного типа моделирования, исполь¬ зуемого системой для различных элементов; жертвовать отдельными процессами, например предпочитать присваивание, реализуя программное обеспечение на основе при¬ митивов, или, наоборот, предпочитать описание в случае полно¬ стью интерактивного программного обеспечения. Широкое разнообразие возможных решений вызывает необ¬ ходимость выделить свойства, характеризующие системы синтеза изображений. Будем называть систему: согласованной, если имеющиеся в распоряжении процессы оп¬ ределены для всех обрабатываемых элементов и для всех уровней структуры; ^ симметричной, если все элементы пространства могут быть динаково^хорошо описаны как интерактивным методом, так и рограммой (симметрия между описанием и присваиванием); 31
открытой, если все признаки, описанные оператором интерак тивным методом, могут быть запрошены прикладной программой В большинстве случаев эти свойства редко так явно разгра ничены и можно выделить несколько различных их степеней. 1.4. ЗАКЛЮЧЕНИЕ Если рассматривать системы синтеза изображений (пока дос таточно редкие) и системы «графические», уже существующие ] настоящее время, то можно констатировать очень большое числ< предложенных примитивов (например, в [51] их 175) по сравне нию с четырьмя «примитивами-процессами», которые были описа ны выше. Это объясняется несколькими причинами: значительная часть примитивов не имеет никакого отношение к синтезу изображений, а связана либо с действиями, обеспечи в.ающими формирование системы или терминала, либо с опера циями, которые позволяют использовать приборы, не являющиес: графическими, и соединять их с рабочим местом: алфавитно-циф ровую клавиатуру, различные потенциометры и т. д.; примитивы являются, по существу, элементарными оператора ми, а не процессами. Среди них можно найти такие, которые поз воляют проводить окружности, выполнять повороты типа 2D, ап проксимировать кривые и т. д. Число примитивов связано также с ограничениями, наклады ваемыми синтаксическим моделированием различных признаков Так, для двухмерной информации требуется всего два параметра в то время как трехмерный признак требует трех параметров. Ис пользуемые языки программирования определяют для этих слу чаев два разных примитива. Весьма желательно различать понятия и примитивы, предла гаемые пользователю. Их выбирают обычно в соответствии с ис пользуемыми схемами упрощения и с тем, возложено управлении процессами на систему или на оператора. В большинстве случае! управление процессами полностью осуществляется пользователей или выполняется системой лишь частично, что усложняет взаимо действие с ней. Очевидно, что передача управления системе значительно об легчила бы ее применение. При этом пользователю не нужн( знать ни внутреннюю организацию системы, ни особенности обо рудования. Однако такой подход требует решения серьезных вопросов относящихся к разработке и реализации систем. В следующей глз ве даны ответы на эти вопросы, а в гл. 3 исследованы подходы i разработке некоторых конкретных систем синтеза. 32
Глава 2. ТЕХНИЧЕСКИЙ АСПЕКТ: ТОЧКА ЗРЕНИЯ разработчика Эта глава посвящена описанию общих принципов создания системы синтеза изображений. В ней, исходя из понятий, приве¬ денных в предыдущей главе, рассмотрены различные факторы, влияющие на выбор процессов, подпрограмм и оборудования. В литературе описано уже достаточно много различных частных ре¬ шений и было бы полезно изучить их достоинства и недостатки. Здесь будут изложены также некоторые новые решения, непо¬ средственно вытекающие из основных понятий, определенных в предыдущей главе. Разработка и реализация процессов синтеза изображений (описание, визуализация) проходят обычно в три этапа: установление последовательности выполнения операций: опи¬ сания элементов, преобразования (конструирования), синтеза, запоминания на различных стадиях процесса; распределение заданий между различными рабочими местами (процессорами); определение характеристик и взаимное согласование (прог¬ раммное и аппаратное) необходимых процессоров. Такой подход затрудняется тем, что вопрос стоит не просто о создании какого-то частного, отдельного изображения на специ¬ альной машине, а скорее о разработке средства, позволяющего создавать изображения любого типа на любом рабочем месте. Иными словами, задача состоит в том, чтобы предложить некую «обобщенную» систему, способную: обеспечивать независимость от оборудования (видеотермина¬ лов и устройств описания), т. е. визуализацию и описание всех основных элементов на любых используемых рабочих местах; воспринимать разнообразные элементы для расширения воз¬ можностей применения (картография, математика, САПР и т. п.); предложить широкий выбор различных технических характе¬ ристик для лучшего удовлетворения наибольшему числу возмож¬ ных ситуаций (интерактивное взаимодействие с медленно дей¬ ствующим оборудованием, а также трудные случаи, либо связан¬ ные с необходимостью синтеза сложных объектов, либо требую¬ щие быстрых решений, и т. д.). Перечисленные свойства обусловлены выбором общей органи¬ зации системы, установлением порядка выполнения операций и внутренней организацией каждого рабочего места. Все эти воп¬ росы рассмотрены в следующих разделах. 2-47 33
2.1. ОБЩАЯ ОРГАНИЗАЦИЯ СИСТЕМЫ 2.1.1. Понятие о синтезаторе Назовем синтезатором изображения (или просто синтезато¬ ром) некоторое неделимое устройство обработки, содержащее по крайней мере: один процессор, работающий на любом принципе (с жесткой логикой, микропрограммный, программируемый); одно локальное запоминающее устройство какого-либо типа (диски, экран, память с произвольным доступом и т. д.), а также выполняющее как минимум один процесс визуализации и один процесс присваивания признака в локальной памяти; кроме того, могут выполняться процессы описания и опроса. Синтезатор может быть охарактеризован также совокупностью элементов и используемых процессов. Наиболее простой синтеза¬ тор состоит лишь из электронно-лучевой трубки, ее памятью слу¬ жит экран, процесс присваивания обеспечивается электронной пушкой и отклоняющей системой, а процесс визуализации — лю¬ минесценцией экрана. Вся совокупность сводится в этом случае к одному единственному элементу, а именно пикселу, определяемо¬ му своими координатами и цветом, а единственный процесс есть процесс присвоения цвета рассматриваемой точке. 2.1.2. Уровни синтезатора Организация системы синтеза изображений зависит от лока¬ лизации устройств обработки, т. е. синтезаторов, и связей между ними. Можно описать систему синтеза изображений как последова¬ тельное соединение синтезаторов, из которых последний представ¬ ляет собой электронно-лучевую трубку, а обобщенные характе ристики первого определяют характеристики всей системы в це лом. Будем говорить в этом случае об уровнях (слоях) синтеза¬ торов. Через физические соединения между различными синтеза торами (параллельные или последовательные) информация про ходит в форме, определяемой характеристиками приемника. Про цесс синтеза любого элемента должен быть, естественно, разде лен на столько последовательных подпроцессов, сколько сущесг вует уровней синтезаторов. Следовательно, разделение зависит о' числа синтезаторов и от общих характеристик каждого из них. В следующем подразделе представлен наиболее типичный прг мер конфигурации аппаратных средств и ее влияние на общу! организацию системы. 2.1.3. Влияние конфигурации аппаратных средств Разработчик системы синтеза изображений может оказать^ перед необходимостью выбора из следующих вариантов: 34
самому определить число уровней и реализовать все синтеза¬ торы, в том числе и видеотерминал (дисплей) так, чтобы прис¬ пособить их для решения своей задачи; выбрать видеотерминал из тех, которые имеются в продаже; использовать имеющуюся конфигурацию аппаратных средств и программного обеспечения. Если первый вариант дает разработчику полную свободу во всех отношениях, то второй ограничивает его роль созданием программного обеспечения, встроенного в синтезаторы, которые расположены «выше» видеотерминала. Что касается третьего варианта, то маловероятно, чтобы уже имеющееся оборудование и возможности видеотерминала точно соответствовали потребно¬ стям разработчика. Как бы то ни было, взаимное влияние конфигурации аппарат¬ ных средств и намеченных целей весьма существенно. Устройства, содержащие терминал низкого уровня, связанный непосредствен¬ но с главной ЭВМ, и конфигурация, использующая терминал вы¬ сокого уровня, связанный с вспомогательным вычислительным устройством, существенно различны. Конфигурации могут быть подразделены в соответствии: с числом независимых синтезаторов и их типом (программи¬ руемый, микропрограммный, с жесткой логикой); с объемом и типом локальной памяти (с произвольным дос¬ тупом, магнитные носители), связанной с каждым синтезатором; с общими характеристиками каждого синтезатора (элементы и используемые процессы). Поскольку число возможных конфигураций почти неограни¬ ченно, проиллюстрируем это рассуждение тремя характерными ситуациями. Конфигурации, реализованные в существующих сис¬ темах, детально рассматриваются в гл. 3. 2.1.3.1. Терминал низкого уровня ^ Простейшая конфигурация состоит из двух синтезаторов первый главное вычислительное устройство, обладающее сво¬ им программным обеспечением и всеми ресурсами памяти; второй видеотерминал низкого уровня (на его выходе схе¬ матично изображена электронно-лучевая трубка). вы Рис. 9. Простейшая кон¬ фигурация 2* 35
Связь между ними обычно делают асинхронной, последова¬ тельного типа, со средней скоростью от 1200 до 9600 Бод. В этом случае терминал обладает минимальным набором общих харак¬ теристик: на уровне отображаемых элементов — точка, вектор, символ; на уровне процессов — присваивание и явная или неявная ви¬ зуализация элементов. В большинстве случаев программное обес¬ печение встраивают непосредственно в главное вычислительное устройство. В результате получают возможность более простого использования аппаратуры, так как возникает значительно мень¬ ше проблем, связанных с «разрезанием» процессов, которые поч¬ ти полностью выполняются на программном уровне. 2.1.3.2. Терминал высокого уровня В эту категорию объединены устройства, в которых «разви¬ тый» (усовершенствованный) видеотерминал связан непосредст¬ венно с главным вычислительным устройством. Терминал будем называть «развитым», если он выполняет местные функции описания, т. е. позволяет изменять изображе¬ ние без вмешательства главного вычислительного устройства. Терминал такого типа получают путем присоединения проме¬ жуточного синтезатора (со своим программным обеспечением) и обладающего своей местной памятью (ЗУ с произвольным дос¬ тупом и/или гибкие диски). Связь между ними также делают по¬ следовательной, асинхронного типа (рис. 10). Эта ситуация, которая в настоящее время имеет тенденцию к расширению благодаря все более интенсивному использованию микропроцессоров, ставит перед разработчиком общей системы трудные задачи, связанные с рассогласованностью и асимметри¬ ей микропрограммных уровней аппаратуры. Рассогласованность: некоторые функции применимы только к объектам определенных типов (например, повороты неприменимы к буквам). Поэтому программные средства должны вначале об¬ наруживать такие пробелы в аппаратуре, а затем заполнять их, i I I Рис. 10. Терминал высокого уровня 36
лагая взамен другие функции. Второй пример, еще более яительный, это терминалы, позволяющие выполнять геомет¬ рические преобразования 2D и даже 3D над любым элементом: Р функции в большинстве случаев совершенно бесполезны, по¬ скольку они должны выполняться до устранения невидимых ча¬ стей которого нет на аппаратном уровне. Программное обеспе¬ чение должно также «обнаруживать» это рассогласование и ре¬ шать, следует ли использовать специфические функции термина¬ ла что существенно усложняет работу с ним. 'Асимметрия: как было показано в предыдущей главе, невоз¬ можно описать интерактивным методом все типы признаков, вос¬ принимаемых на входе. Такая асимметрия характерна для боль¬ шинства терминалов из-за преждевременного синтеза запомина¬ емых признаков. Эта ситуация включала бы применение весьма сложных операций анализа для восстановления первоначальных признаков. Такова, например, операция заполнения площадей на терминале 4027 фирмы Tektronix, после которой ни на многоуголь¬ ном контуре, ни на используемой текстуре уже нельзя распо¬ ряжаться никакой информацией. Подобная ситуация неизбежно заставляет пользователя (или программу) самому удерживать в памяти эти признаки, из-за чего происходит практически удвое¬ ние информации. Другим неприятным следствием асимметрии яв¬ ляется уменьшение интереса к местным интерактивным функци¬ ям, предоставляемым аппаратурой. Их использование без воз¬ можности возвращения к прикладной программе может привести к рассогласованию между структурами, удерживаемыми в памя¬ ти программными средствами, и изображением, представляемым аппаратными средствами. 2.1.3.3. Связь со вспомогательным вычислительным устрой¬ ством В этом случае видеотерминал соединен с главным вычисли¬ тельным устройством не непосредственно, а через вспомогатель¬ ное, имеющее собственную память, как показано на рис. 11. Та¬ ким образом, конфигурация содержит на один синтезатор больше, чем в предыдущем случае. Используются такие связи, как: Главное вычислительное устройство А Рис- 11. Связь со вспомогательным вычислительным устройством Вспомогательное У вычислительное Видеотерминал А устройство X X 37
последовательная асинхронная среднескоростная между двумя вычислительными устройствами, параллельная высокоскоростная между вспомогательным вы¬ числителем и терминалом. Архитектура такого типа описана в нескольких работах (см., например, [41]). Они касаются в основном частных случаев ис¬ пользования ограниченного числа элементов, обрабатываемых од¬ нотипными процессами синтеза. На первый взгляд эта конфигурация ведьма похожа на преды¬ дущую, за исключением того, что промежуточный синтезатор рас¬ положен вне терминала, но на самом деле между ними существу¬ ет фундаментальное различие: здесь ЭВМ не является устройст¬ вом, обслуживающим терминал, а, наоборот, обеспечивает потреб¬ ности прикладной программы за счет согласованного и симмет¬ ричного слоя, представленного на уровне вспомогательного вы¬ числительного устройства. 2.1.3.4. Мультиплексная организация Часто возникает необходимость одновременного использова¬ ния трех описанных выше ситуаций. Тогда организация может быть реализована в одном из двух вариантов: функции промежуточного вычислительного устройства возло¬ жены на особый терминал, вспомогательное вычислительное устройство связано «фрон¬ тально» со всем парком терминалов. Последний вариант обладает тем преимуществом, что созда¬ ет максимальную независимость от программного обеспечения главной ЭВМ. 2.1.4. Реализация синтезатора После разделения системы на соответствующее число синте¬ заторов и определение их возможностей возникает задача их ор¬ ганизации и эффективной реализации. Синтезаторы могут быть реализованы несколькими различны¬ ми методами на базе: стандартной ЭВМ путем создания специализированного прог¬ раммного обеспечения, стандартного микропроцессора, объединенного общим про¬ граммным обеспечением с программируемым постоянным запо¬ минающим устройством (ППЗУ) или ППЗУ со стиранием, графических процессоров на специальных СБИС, TTJI-элементов с жесткой логикой, СБИС, выполняющих специфические операции на жесткой логике. Выбор метода зависит от желаемого компромисса между тре¬ буемыми характеристиками, гибкостью адаптации и простотой обслуживания. Очевидно, что синтезатор, целиком созданный н£ 38
ментах с жесткой логикой, обладает более совершенными ха- ЭЛктеристиками, чем программируемый синтезатор, но зато по¬ следний может быть расширен или модифицирован более просты¬ ми средствами. Что же касается внутренней организации синтезатора, то про¬ блемы здесь значительно сложнее и существенно зависят от про¬ цесса (или процессов), который требуется реализовать. Следующие разделы касаются именно этих вопросов, причем вначале рассматривается синтезатор, предназначенный для вы¬ полнения только одного процесса визуализации, а затем— синте¬ затор, выполняющий ряд процессов. 2.2. ОРГАНИЗАЦИЯ ОДНОПРОЦЕССНОГО СИНТЕЗАТОРА Наиболее простой вариант синтезатора соответствует следу¬ ющей ситуации: исходные данные содержат элементы только одного типа, ко¬ торые требуется синтезировать, конечный результат — однозначный, т. е. используются возмож¬ ности единственного синтезатора, расположенного «ниже» (по хо¬ ду выполнения процесса). Синтезатор такого типа содержит только по одному типу про¬ цессов: визуализации, описания, присваивания, опроса. Ясно, что из всех реализуемых процессов наиболее «деликат¬ ным» является процесс визуализации, поскольку организация именно этого процесса непосредственно влияет на свойства и воз¬ можности всего синтезатора. Действительно, только процесс ви¬ зуализации относится одновременно ко всем признакам всех эле¬ ментов синтезируемого макета, в то время как описание, присва¬ ивание и опрос относятся только к одному данному типу приз¬ наков. Далее будет показано, какое влияние оказывает процесс ви¬ зуализации на организацию синтезатора в целом. 2.2.1. Ход выполнения процесса 2.2.1.1. Влияние признаков Если еще раз рассмотреть пример процесса визуализации пло¬ ских одинаковых многоугольных граней, представленный в пре¬ дыдущей главе, то можно заметить, что изменение какого-нибудь одного признака одного элемента требует выполнения заново пол¬ стью всего процесса для этого элемента. В соответствии с про¬ цессом такое выполнение производится явно после каждого из¬ менения (непосредственная визуализация) или неявно, для чего нойдТся вызов подпрограммы (визуализация с предваритель- 39
Будем называть влиянием признака число элементарных опе¬ раций, которые необходимо выполнять для визуализации элемен¬ та, которому данный признак принадлежит. В примере, показан¬ ном на рис. 12, влияние каждого признака равно 8. Разумеется это понятие не отражает ни сложности операторов, ни их харак¬ теристик, но оно позволяет различать между собой (относитель¬ ным методом) разнообразные возможные варианты процесса. В большинстве прикладных задач существуют узловые опера¬ ции, характеристики которых определяют характеристики всей си¬ стемы. Так, в случае моделирования поведения необходимо отда¬ вать предпочтение операциям съемки и отображения, если разра¬ ботчик стремится к получению эффекта движения в реальном мас¬ штабе времени. Поэтому следует свести до минимума влияние признаков (Gv) и (Ga), которые непосредственно обусловливают эти операции. Если наиболее значимыми являются операции из¬ менения внешнего вида, то необходимо уменьшить влияние приз¬ наков вида. С целью уменьшения влияния наиболее значимых признаков используют, раздельно или совместно, два метода: запоминание синтезируемых признаков, проникновение несинтезируемых приз¬ наков. 2.2.1.2. Запоминание синтезируемых признаков Здесь предпочтение отдается операциям, относящимся к съем¬ ке и отображению. Как видно из рис. 13, введение операции запо¬ минания после оператора 6 сокращает процесс, необходимый для отображения операторами 7 и 8, что снижает влияние признак (Ga) до величины, равной 2, и значительно сокращает время сра¬ батывания системы. 40
РИС. 1'3- Промежуточное Ga запоминание у Промежуточная память В часто встречающемся случае, когда возникает необходи¬ мость изменить положение наблюдателя относительно макета, следует отдать предпочтение процессу съемки, уменьшив влияние признака (Gv) до 5. Эта величина является минимальной из всех, которые можно получить в данном процессе. Такой подход при¬ водит к включению промежуточных операций запоминания после операторов 1 и 3, как показано на рис. 14. Промежуточное запоминание обеспечивает также явное уско¬ рение процесса идентификации путем указания, поскольку он тре¬ бует псевдовизуализации, которая и сама ускоряется. В этом случае необходимо также запоминать информацию об идентифи¬ кации (и даже структуру) для того, чтобы дать возможность идентифицировать элемент. Если такая информация не представ¬ лена на данном уровне, то необходимо произвести регенерацию исходя из структуры, расположенной «выше», что, естественно, требует больших затрат. 41
2.2.1.3. Проникновение несинтезируемых признаков Предыдущий пример иллюстрирует ограничения метода про- межуточного запоминания. Влияние каждого признака в дейст¬ вительности ограничено самим процессом, что особенно невыгод- но для признаков М, A, G, Е. Для случая, показанного на рис. 14, влияние признака А равняется 7 и не может быть уменьшено. Решение может заключаться в такой перестройке процесса, чтобы признак А, которому следует отдать предпочтение, «про¬ ник» как можно «глубже» в схему. Сочетая этот подход с запо¬ минанием «других синтезируемых признаков», можно добиться заметного уменьшения влияния. На рис. 15 приведен пример то¬ го, как влияние признака вида уменьшено до 2. Проникновение признаков поднимает несколько проблем: во-первых, преобразование процесса возможно только в том случае, если признак, о котором идеть речь, относительно неза¬ висим от других. В предыдущем примере единый цвет поверхно¬ стей действительно независим от морфологии и точки наблюде¬ ния, но совсем не так обстоит дело с текстурами. Преобразо¬ вание должно, по-видимому, ограничивать качество информации, к которой оно относится, а следовательно, и свойства элементов., обрабатываемых в исходном процессе; во-вторых, от большинства «классических» алгоритмов синте¬ за изображений приходится отказываться из-за «задержанного» синтеза предпочитаемой информации. Таким образом, становит¬ ся трудно (в процессе, изображенном на рис. 15) использовать методы выравнивания освещенности [44] или подавления пара¬ зитных эффектов пространственного квантования — алиайзинга [29]. Отметим, что речь здесь идет о новом снижении качества информации, относящейся к признаку А. Что касается процесса идентификации путем указания, то проникновение признака не 42
т эффекта, если это признак А или Е. Для других признаков * весьма желательно, поскольку процесс идентификации обыч¬ но требует псевдовизуализации признаков М, G, Gv, Ga. 2.2.1.4. Межэлементное взаимодействие В предыдущих разделах было показано большое количество возможных решений для визуализации единственного элемента. ■Но, когда одновременно должно быть синтезировано много оди¬ наковых элементов, ситуация снова сильно усложняется. Операторы композиции применяются не к каждому отдельно¬ му элементу, а сразу к группе элементов, что вызывает их вза¬ имное влияние друг на друга. Основными, операторами компози¬ ции, под действием которых проявляется такое взаимное влия¬ ние, являются: удаление невидимых линий (взаимодействие морфологии и ге¬ ометрии), выработка теней, создаваемых предметами (операция, почти идентичная предыдущей), воссоздание прозрачности (взаимодействие признаков внеш¬ него вида), ослабление эффектов алиайзинга — «лестничных ступенек», ис¬ чезновение небольших объектов и т. д. (взаимодействие на уров¬ не конечной синтезируемой информации). Учет этих операций композиции требует обеспечения синхро¬ низации между различными обрабатываемыми элементами. Позд¬ нее будет рассмотрено влияние синхронизации на процессы визу¬ ализации. Можно отметить несколько типов операторов компо¬ зиции: 1. Операторы, которые не изменяют числа элементов: речь идет в основном о простых переборах (сортировке), результаты которых используются в дальнейшем во время действия других операторов композиции. 2. Операторы, которые изменяют число элементов: в сторону увеличения — такие, как разрезание многоугольников в алгорит¬ ме Ньюэлла и др. [80]; в сторону уменьшения — такие, как подав¬ ление скрытых сегментов в алгоритме Уоткинса [1.11]. 3. Операторы сходящиеся, т. е. направленные в одну точку и дающие на выходе единственный элемент, такие, как определе¬ ние видимого элемента в данной точке (использование предыду¬ щего перебора) или синтез нескольких элементов при подавле¬ нии алиайзинга, или создание эффекта прозрачности. Третий тип операции представляет собой настоящий «попе¬ речный» процесс синтеза, связанный со всеми процессами визу¬ ализации элементов. Следует отметить, что названные операто¬ ра композиции в основном определяют индивидуальные процес- сы> относящиеся к элементам. Так, некоторые алгоритмы удале¬ ния невидимых линий, действующие в координатах изображения, 43
требуют предварительного преобразования исходных элементов в более простые для облегчения операции перебора. Эти вопросы будут детально исследованы в следующей главе для основных алгоритмов, которые известны из литературы, ко уже сейчас очевидно, что выбор алгоритма будет иметь решающее значение для определения последовательности выполнения про¬ цесса визуализации. На рис. 16 изображен пример алгоритма Z- буфера [21] применительно к процессу, показанному на рис. 12,. в котором оператор композиции является сходящимся и представ¬ ляет собой «поперечный» процесс. Если п — число обрабатываемых элементов, то влияние каж¬ дого признака будет 5п+2. Можно еще несколько уменьшить это влияние, используя методы, предложенные в предыдущих под¬ разделах. Однако требуемая синхронизация (в том числе между несколькими блоками) ограничивает пределы этой возможности. Что касается «проникновения» признаков, то оно требует такого преобразования всего процесса, которое может оказаться несов¬ местимым с внутренним процессом используемого алгоритма. Так, если алгоритм устранения скрытых частей позволяет обрабаты¬ вать изображения, подвергавшиеся искажениям типа алиайзинга [22], то признаки А и Е должны быть непременно синтезирова¬ ны раньше, чем сработает оператор композиции. Идентификация путем указания, в свою очередь, также ста¬ вит достаточно сложные вопросы. Действительно, для идентифи¬ кации видимого элемента в указанной точке требуется: Рис. 16. Пример алгоритма Z-буфера 44
Рис. 17. Запоминание с целью идентификации либо выполнить «обратное движение» по всему процессу, что обычно невозможно из-за потери информации, вызванной опера¬ торами композиции, либо осуществить псевдовизуализацию всех элементов для про¬ ведения последовательного сравнения точки за точкой, либо реализовать гибридную комбинацию двух предыдущих процессов. Второй этап можно полностью обойти путем запоминания толь¬ ко видимых элементов в общей части процесса. Разумеется, такое запоминание предполагает идентичность всех этих элементов (см. рис. 17). 2.2.2. Архитектуры синтезаторов Схематическое представление процессов синтеза, приведенное в предыдущих подразделах, отчетливо показывает возможности осуществления параллельного взаимодействия внутри или между процессами. В то же время эффективное использование этого по¬ тенциального параллелизма зависит от числа входящих процес¬ соров и их архитектуры, а также от распределения задач между ними. Между минимальным случаем, в котором единственный про¬ цессор выполняет все операции процесса, и максимальным, ког¬ да каждый процессор предназначен для выполнения своей опе¬ рации, имеется множество промежуточных, и следующие подраз¬ делы посвящены тому, чтобы выделить тенденции, получившие Наибольшее распространение.
2.2.2.1. Последовательная интегральная архитектура Для упрощения изложения рассмотрим пример единственного процесса Р, применяемого к п идентичным элементам. Этот про¬ цесс содержит к операций р 1, р2, ..., рк, выполняемых в следую¬ щем порядке: VI, je=[l,k], 1 <j=^(p, является предшествующим по отношению к pj). Здесь и далее через pj(i) обозначено применение j-й операции к i-му элементу. Последовательная интегральная организация характеризуется тем, что в каждый момент времени t выполняется единственная j-я операция над единственным i-м элементом. Эту последова¬ тельность можно представить в виде итерации: для i: = l до п для j: = 1 до к ] | pj(i) | процесс Р (i) конец J конец 2.2.2.2. Архитектура конвейерного типа Речь идет о простейшем случае распараллеливания между нес¬ колькими процессорами, предназначенными для выполнения пос¬ ледовательных фаз процесса. Возьмем случай разделения преды¬ дущего процесса на два последовательных подпроцесса Р1 = = (р1, ps) и P2(ps+1, ..., pk), каждый из которых выполня¬ ется своим процессором. Эту ситуацию можно описать следую¬ щим алгоритмом: Р1(1) для i: = l до п Pl(i+1) и P2(i) (одновременное выполнение) конец Р2(п) Четкое выполнение одновременно двух или нескольких про¬ цессов требует синхронизации, которая может быть осуществле¬ на тремя различными способами: 1. Если процессы Pj имеют в точности одинаковые периоды, то их выполнение может происходить синхронно, но с задержкой на один период для каждого нового этапа. На рис. 18 показан один период «синхронного конвейера», в котором j-я часть про¬ цесса над элементом i выполняется в Pj, в то время как преды- Эг.емемт i + 1 Элемент i Элемент i — 1 Рис. 18. Синхронная сис¬ тема конвейерной обра¬ ботки 46
Рис. 19. Асинхронная система конвейерной обработки дущий этап для элемента i-j-1 выполняется в Pj+i. Такой тип кон¬ вейерной обработки особенно хорошо согласуется с устройствами на жесткой логике, для которых период часто фиксируется общим тактовым генератором. Таким образом, период всего процесса разделен по числу каскадов «конвейерной, линии». 2. Если процесс Pj требует периода, превышающего период следующего за ним процесса Pj+i, то последний должен содер¬ жать элемент задержки. Таким образом, период всей совокуп¬ ности равен большему из периодов. 3. Если можно утверждать, что Vj, период (Pj) ^ период (Pj+i), то следует предусмотреть механизм задержки на уровне Pj или включить между Pj и Pj+i буферную память, способную «сгла¬ дить» все расхождения. Это последнее решение является наиболее распространенным для процессов синтеза изображений, содержащих несколько «про¬ граммируемых» этапов, для которых невозможно вычислить пе¬ риод. На рис. 19 схематически показана конвейерная асинхрон¬ ная архитектура, в которой процессор почти независим от других. Наоборот, если процесс синтеза содержит операцию запоми¬ нания, используемую для выделения некоторых операций, то про¬ межуточная структура данных может играть роль буфера между двумя этапами процесса. На рис. 14 была показана возможность разделения обработки на два асинхронных процесса: конструиро¬ вания, с одной стороны, и съемки/отображения — с другой. Для улучшения характеристик системы следует учитывать раз¬ личие в уровнях, которое существует между синтезатором, рас¬ сматриваемым как единое целое и являющимся главным во всем процессе обработки элемента, и различными внутренними про¬ цессорами, связанными с частными элементарными операторами. 2.2.2.3. Распараллеливание внутри процесса На рис. 20, который возвращает нас к примеру процесса, пред¬ ставленного в начале данной главы, видны возможности распа¬ раллеливания на уровне операторов. Параллельное выполнение °ператоров (1 и 2), а затем (3 и 4) позволяет свести влияние признаков М, G, А и Е к величине 6 вместо 8 при последователь¬ ном варианте. Кроме того, ясно, что проникновение признаков благоприятствует распараллеливанию, в то время как промежу¬ точное запоминание лучше согласуется с конвейерной обработкой, 47
2.2.2А. Распараллеливание между процессами Этот вариант является наиболее интересным, поскольку поз¬ воляет одновременно обрабатывать все элементы макета, но вме¬ сте с тем и наиболее дорогостоящим, а также наиболее трудным в реализации, если учитывать большое число требуемых процес¬ соров. Затруднения возникают главным образом из-за необходи¬ мости синхронизировать все процессы к моменту операции ком¬ позиции. Она представляет собой настоящий «поперечный» про¬ цесс, архитектура которого может быть последовательной, кон¬ вейерной или параллельной. На рис. 21 показана такая двухмер¬ ная организация. 48
Рис. 22. Комбинированное распараллеливание: внутри процессов и между ними Можно комбинировать оба типа распараллеливания. Однако если распараллеливание между процессами проникает более глу¬ боко, чем оператор композиции, то должны быть предусмотрены несколько поперечных процессов. Такая возможность приводит к Достаточно сложной архитектуре, пример которой изображен на рис. 22 как одно из возможных решений использования распарал¬ леливания в алгоритме, предложенном в [80] (см. следующую главу). 2.3. ОРГАНИЗАЦИЯ МНОГОПРОЦЕССНОГО СИНТЕЗАТОРА 2.3.1. Проблемы, свойственные множественным процессам Следствием одновременного выполнения различных процес- Сов являются две проблемы: тРУДность синхронизации операторов композиции, необходимость сокращения числа требуемых элементарных °Ператоров. 49
2.3.1 Л. Синхронизация различных процессов Если процессы, связанные с различными элементами, разлкч* ны, то проблемы синхронизации становятся еще более острыми, Поскольку различие процессов часто связано с различием эле. ментов, трудность усугубляется невозможностью найти операции композиции, пригодные для обработки любого из элементов. Эта проблема особенно ощущается в алгоритмах удаления скрытых частей, которые обычно относятся к одному типу элементов, как, например, поверхности плоских многоугольников. Задача, кото, рая возникает в данном случае, заключается в определении точ- ки сходимости при синхронизации различных процессов. В наиболее сложном случае визуализации пейзажей, где мо¬ гут быть объекты, сильно различающиеся по внешнему виду и морфологии (сооружения, участки земли, деревья, облака и т.д.), именно эта проблема становится решающей и определяет сово¬ купность процессов. Можно наметить три варианта ее решения [66]: 1. Подавление различий. Речь идет лишь о приведении исходных элементов на уровне макета к стандартному виду с тем, чтобы их обработку свести к случаю идентичных процессов. Общим элементом мог бы быть плоский многоугольник, но легло себе представить, сколь мало реалистичной будет при этом модель облаков. 2. Сходимость на уровне элемента изображения. Ясно, что заключительным, конечным элементом всего процес¬ са синтеза является пиксел. Тогда можно предусмотреть совер¬ шенно различные процессы, которые сходятся на уровне пиксела к алгоритму типа Z-буфера. Здесь в каждом процессе должна вы¬ числяться глубина для каждого пиксела рассматриваемого объ¬ екта, и эта информация должна распространяться на все опера¬ торы синтеза. 3. Промежуточная сходимость. Третье решение, наиболее трудное для выполнения, является компромиссом между двумя предыдущими. Оно состоит в разде¬ лении каждого из процессов на одинаковые завершающие под¬ процессы. При таком уровне разделения выполняется удаление невидимых линий, что позволяет применять завершающий под процесс только к видимым элементам. Возможность реализации данного решения зависит от типа синтезируемого элемента [66} 2.3.1.2. Уменьшение числа элементарных операторов Если рассматривать варианты реализации синтезаторов изоб' ражения, предназначенных для нескольких различных ситуаций то следует обсудить: задачу или класс решаемых ими задач, т. е. синтезаторы, рас* положенные «выше» (по ходу выполнения процессов); 50
имеющееся в распоряжении оборудование, т. е. синтезаторы, сположенные «ниже» (по ходу выполнения процессов). Ра задача позволяет определить: р типов элементов, подлежа¬ щих рассмотрению; m характеристик (быстродействие, качество, ложность), требующихся для выполнения каждой операции. С оборудование, в свою очередь, позволяет фиксировать име¬ ющиеся в распоряжении типы элементов и элементарные опера¬ торы- Синтезатор, предназначенный для одного класса задач и сос¬ тоящий из одного набора оборудования, может быть определен в виде библиотеки из n = pm процессов, где р — число типов эле¬ ментов, а ш — число характеристик. Если каждый процесс состо¬ ит в среднем из к операторов, то общее число необходимых опе¬ раторов Т=пк. И, наоборот, если желательно создать синтезатор общего вида, применимый к максимальному числу операций, то следует учиты¬ вать классы задач, которые он должен решать, и типы имеюще¬ гося в наличии оборудования. Так, можно организовать совокупность независимых синтеза¬ торов, применимых каждый к своей ситуации. При этом получим схему, изображенную на рис. 23, где С — совокупность общих ха¬ рактеристик, определяемых одним классом задач, М — множест¬ во, определяемое заданным оборудованием, a (J (С, М) —их объе¬ динение, т. е. синтезатор, позволяющий использовать для клас¬ са С оборудование М. Если Nc — число классов, Nm — количество оборудования, п — среднее число процессов для одного класса, к — среднее число операторов в одном процессе, то общее число операторов Т = Nc-Km-n-k. (2.1) Разумеется, такое комбинаторное приближение приводит к чрезвычайно большому числу операторов. Поэтому в дальнейшем будут рассмотрены два метода организации, позволяющие суще¬ ственно уменьшить число элементарных операторов. Зада-а С U (С, М) Оборудование М Рис. 23. Универсальный синтезатор 51
2.3.2. Иерархическая организация 2.3.2.1. Общие сведения Если рассмотреть большое число процессов синтеза, соответ. ствующих «классическим» ситуациям, то можно сделать два пцч тересных замечания: 1) большое число процессов обращается, хотя и в разной по. следовательности, к однотипным операторам, таким как запо. минание в базе данных; умножение на.матрицу преобразования (синтез М-G); заполнение многоугольных площадей одним цве- том (синтез М-А) и т. д. 2) отдельные «сложные» элементы могут быть разделены на более простые, являющиеся результатом процесса синтеза. К ним относится, например, многогранник, который может быть разло¬ жен на плоские многоугольники. Эти замечания могут служить отправной точкой для метода разделения, основанного на разграничении между последователь¬ ностью выполнения процесса и используемыми операторами. Та¬ кой подход представлен на рис. 24, где блок управления распо¬ лагает для каждой ситуации схемой поведения, выражающей по¬ следовательность операций, в то время как два других блока яв¬ ляются, по существу, «банками операторов», содержащими сами операции. Распределение операций между тремя блоками (если оно не является априорно зафиксированным) придает системе большую гибкость и обеспечивает ряд других достоинств, о ко¬ торых будет сказано ниже. 2.3.2.2. Блок описания и визуализации Блок описания и визуализации обеспечивает независимость от устройств ввода и отображения. Поэтому он содержит как зави¬ сящие, так и не зависящие от оборудования, операции. Блок пред¬ ставляет собой банк, в котором сгруппированы элементарные one- Рис. 24. Иерархическая организация 52
торы тРех типов: синтеза, конструирования или моделирова¬ ния объединения или разъединения. Н Многочисленные аргументы выступают в пользу перегруппп- вки «описание — визуализация», так как: И процессы описания, как и процессы визуализации, часто ис¬ пользуют одни и те же элементарные операторы, в частности опе¬ раторы конструирования; процессы описания часто требуют визуализации объектов на экране на базе собранной информации, например для указания особых точек объекта (центр вращения, точку привязки и т. п.),. или в тех случаях, когда морфология описываемого объекта за¬ висит от его окружения; процессы идентификации путем указания обычно включают визуализацию или псевдовизуализацию предполагаемых для иден¬ тификации объектов. 2.3.2.3. Блок связи Если учесть, что в процессах визуализации и описания могут принимать самое непосредственное участие неоднократные про¬ межуточные запоминания, то становится ясным., что может по¬ требоваться большое количество структур данных. В классиче¬ скую схему обычно входят: макет (2D или 3D), снимок (2D), пе¬ речень возможностей визуализации, часто необходимый на прог¬ раммном уровне для того, чтобы сглаживать влияние недостатков оборудования. Множественность структур данных, даже если иногда они яв¬ ляются вырожденными, приводит к следующим трудностям: возможны ситуации, когда признаки структур и признаки идентификации оказываются разделенными или сдвоенными, а это, в свою очередь, снижает их эффективность и затрудняет уп¬ равление ими; большинство признаков запоминается на нескольких уровнях* что излишне загружает память; механизмы управления различными структурами данных мно¬ гочисленны и разнообразны, что перегружает и усложняет рабо¬ ту синтезатора. Решение, позволяющее избавиться от этих, недостатков, сос¬ тоит в использовании единой базы данных, организованной та¬ ким образом, чтобы на ее основе можно было структурировать, обрабатывать и изучать любую графическую информацию, каки¬ ми бы не были ее происхождение или назначение. Управление та- °и базой данных поручается специальному блоку связи. Как и уписанные выше блоки, этот блок обеспечивает независимость от физических ограничений, таких как внутреннее представление и °сители информации. Помимо выполнения роли интерфейса блок связи обычно об¬ рабатывает информацию об идентификации и о структуре. Для °го в нем имеются устройства, позволяющие: 53.
создавать и именовать структуры и их составляющие части, подавлять отдельные части структур, изучать элементы, принадлежащие к поименованной части структур. Элементарные операторы блока связаны со структурировать ем, выполнением, исследованием и разрушением признаков эле. ментов или макета. В ходе выполнения процесса получаются пу. тем синтеза или конструируются новые признаки, которые могут быть присвоены элементу или совокупности элементов. Ко всем признакам, находящимся в памяти, имеется непосредственный до. ступ через признак идентификации элементов, которому они при¬ надлежат. Распределение и восстановление пространства памяти полностью возложены на элементарные операторы. 2.3.2.4. Блок управления Блок управления, кроме основной задачи — обеспечения необ- ходимого порядка следования процессов, выполняет следующие: обеспечивает синтаксическую и семантическую независимость прикладной программы от процессов и элементарных операций, предлагая набор стандартных примитивов таких типов, которые были описаны в первой главе; освобождает прикладную программу от необходимости сле¬ жения за перемещением информации между блоком описания/ви¬ зуализации и блоком связи; проводит тесты, позволяющие контролировать ход развития различных процессов, и может выполнять операции «исправления ошибок»; обеспечивает связь с предшествующим синтезатором, вызы¬ вая примитивы присваивания, опроса, визуализации и описания. В свою очередь, этот блок можно рассматривать как банк про¬ цессов, находящийся в распоряжении синтезатора, который рас¬ положен «выше» по ходу выполнения программы. Каждый про- Рис. 25. Иерархическое «расслоение» процессов ;54
есС некоторого синтезатора можно уподобить, таким образом, цлементарному оператору, имеющемуся в распоряжении синтеза- Эора «более высокого ранга». Пример иерархического представ¬ ления процессов показан на рис. 25. 2.3.2.5. Некоторые особенности иерархической организации На рис. 26 показан пример иерархической организации, при¬ менимой к различным синтезаторам (их программным и аппарат¬ ным средствам) системы синтеза изображений. Для осуществления связи между прикладной программой и блоком управления первого синтезатора достаточно передать только адреса, по которым записана информация. Кроме того, ме¬ жду блоками управления должны передаваться сами значения ин¬ формации, записанной по известным адресам. Независимость от аппаратных средств (т. е. от следующего синтезатора) обеспечивается на уровне блока управления, вызы¬ вающего на заключительном этапе тот оператор, который опре¬ деляется используемым оборудованием. Очевидно, что аппарат¬ ные изменения могут привести к тому, что будет вызываться толь¬ ко последний отличающийся оператор, но может также возни¬ кать необходимость в полной перестройке процесса для лучшего использования возможностей, предоставляемых новым рабочим местом (см. пример в следующем подразделе). Таким образом, учет нового элемента может породить совер¬ шенно новый процесс. Другая возможность его обработки реали¬ зуется с помощью единственного оператора, позволяющего обра¬ титься к уже имеющимся элементам. При такой организации возникает несколько «деликатных» проблем. Первая относится к различным структурам данных в каждом синтезаторе, для которых нельзя предугадать типы (и, следова- вычислительное устройство Рис. 26. Пример иерархической организации 55--
тельно, модели) элементов, добавляемых в процессе расширения программного обеспечения или аппаратных средств. Эта ситуа¬ ция подводит к гипотезе о возможности существования «упро- щенной» структуры данных. Вторая проблема относится к блоку управления. Его структу¬ ра должна быть такой, чтобы по возможности уменьшить число различных вариантов последовательностей процессов. Отметим, что систем, предназначенных для широкого разнообразия процес¬ сов, довольно мало. В этом случае последовательность операций определяет прикладная программа, а синтезатор представляет собой просто библиотеку операторов. Функции блока управления выполняет сама прикладная программа, и вся система сводится к двум другим блокам: связи и описания/визуализации. В против¬ ном случае в системе должны предусматриваться возможность определения последствий каждого изменения признака и выпол¬ нение соответствующего процесса. Например: следует ли стирать изображение, а затем полностью восстанавливать его после из¬ менения цвета одного элемента макета? или лучше просто сте¬ реть этот элемент и воссоздать его заново? или достаточно пере¬ нести изменение цвета на аппаратный уровень, если его можно осуществить там? В дальнейшем сделана попытка дать несколь¬ ко вариантов решений, позволяющих реализовать эти механизмы. 2.3.3. Разделение на слои 2.3.3.1. Понятие о слое Хотя послойная организация используется в большинстве сов¬ ременных графических систем, понятие слоя остается все еще до¬ статочно неопределенным. Чтобы уточнить предмет дискуссии, воспользуемся следующим определением. Будем говорить, что синтезатор имеет послойную организа¬ цию (программную или аппаратную), если он содержит совокуп¬ ность таких устройств обработки, что совокупность оконечных (выходных) характеристик i-ro устройства представляет собой совокупность исходных (входных) характеристик (i+l)-ro уст¬ ройства, и если каждое из них имитирует законченный синтеза¬ тор для элементов, представленных на его входе. Таким образом, каждое устройство, образующее слой, имеет собственную структуру данных и обладает своими процессами визуализации, присваивания, опроса и описания обрабатываемых элементов. Такое определение слоя, естественно, не должно ассо¬ циироваться с простым разделением процессов, поскольку в каж¬ дом слое имеется полная совокупность процессов, обеспечиваю¬ щих преобразование исходных элементов в элементы, восприни¬ маемые следующим слоем. Отметим, что каждый слой обладает совершенно независимым процессом визуализации, вызываемым определенным примитивом. То же самое можно сказать и о про¬ цессах присваивания, опроса и описания. Речь идет о фиктивном 56
разделении единого синтезатора на последовательно соединенные подсинтезаторы, как показано на рис. 27. В действительности все эти псевдосинтезаторы образуются как бы в результате разде¬ ления одного и того же процессора; они просто имитируются с помощью программного обеспечения. 2.3.3.2. Разделение В простейшем случае синтезатор разделяют на два сравни¬ тельно независимых слоя. Это разделение выполняют путем вы¬ бора стандартного промежуточного множества S, «удовлетворя¬ ющего» наибольшему числу ситуаций, которые включают различ¬ ные классы задач С и различные типы оборудования М. Каждый блок управления U(C, М) разделяется при этом на два: U (С, S) и U (S, М). Тогда число необходимых операторов Уменьшается до Т = (n-Nc -k) + (ns-Nm-ks), где к —среднее число операторов первого слоя, ks — то же вто¬ рого слоя, ns — среднее число типов элементов, принятых для вто- чен° СЛ0Я’ а величины n’ Nc и Nm сохраняют свои прежние зна- В частном случае, когда ks = k, a ns = n, получим T = n.k.(Nc + Nm). (2.2) Сравнение этого выражения с (2.1), полученным в разд. 2.3.1.2, оказывает, что с учетом комбинаторных возможностей такой 57
и (С. S) U(S, М) Оборудовэ- ние М Задание Связь I Описание; j Связь 'визуализация! 1 1 JZ Описание; | визуализация Рис. 28. Разделение на два слоя подход представляет интерес, уже начиная с двух классов и двух терминалов. На рис. 28 изображена схема, на которой только «верхний» слой U (С, S) зависит от задачи и только «нижний» слой U(S, М) зависит от аппаратуры. Если такой тип разделения распростра¬ нить на большее число слоев, то промежуточные слои окажутся полностью независимыми. Организация, полученная в результате такого^подхода, обла¬ дает несколькими достоинствами: 1) каждый слой, если он достаточно симметричен и согласо¬ ван, позволяет определить иерархию псевдосинтезаторов, для ко¬ торых характерен один «уровень» элементов. Например, М. Люка [59] предлагает рассматривать: элементарное программное обеспечение, состоящее из двух слоев: интерпретатор («нижний» уровень, зависящий от обору¬ дования), базирующийся на элементах весьма низкого уровня (точки, векторы, буквы); модуль связи (независимый промежу¬ точный слой), базирующийся на элементах 2D, несколько более развитых и оформленных в виде структур (группы точек, тексты, сообщения); программное обеспечение описания и визуализации («верх¬ ний» уровень, зависящий от задачи), согласованное с различны¬ ми классами рассматриваемых задач; 2) независимость от задачи обеспечивается первым слоем пу¬ тем жесткого фиксирования его выходного множества S. Для уче¬ та нового класса задач С требуется лишь записать в среднем nk новых операторов; 3) независимость от терминала обеспечивается последним слоем путем фиксирования его входного множества S. Учет но¬ вого терминала требует при этом ns-ks новых операторов. Система в целом представляется как последовательность сло¬ ев, одни из которых образованы путем физического разделения синтезаторов, а другие — путем имитации разделения процессо¬ ра с помощью программного обеспечения. Ситуация такого типа изображена на рис. 29. 58
Вспомогательное Главное вычислительное вычислительное устройство устройство Терминал Рис. 29. Послойная организация системы Однако существует принципиальное различие в способах пе¬ редачи между различными слоями. В то время как от блока С1 к блоку С2 и от С4 к С5 информация может быть передана толь¬ ко с помощью адреса, между блоками С2 и СЗ, а также между СЗ и С4 должны обязательно передаваться ее значения. Попыт¬ ки минимизировать эти более трудные передачи сводятся к вклю¬ чению большего числа операторов в нижние слои, т. е. к выбору для проникновения несинтезируемых признаков. 2.3.3.3. Ограничения метода послойного разделения Разделение на слои было введено для решения двух основных задач: уменьшения общего числа операторов и обеспечения неза¬ висимости от аппаратуры и прикладной программы. Однако пла¬ та за эти достоинства достаточно высока: элементы в различных слоях претерпевают преобразования по¬ следовательно. Такая «множественность» вредна, так как требу¬ ет дополнительных затрат машинного времени и увеличения объ¬ ема памяти, поскольку промежуточные этапы обычно приходится запоминать для удовлетворения потребностей интерактивности; информация о структуре и об идентификации оказывается раз¬ деленной между различными слоями, что существенно усложни- ет Управление ею и ограничивает ее использование и передачу На самые нижние уровни; узким местом в функционировании аппаратных средств явля¬ ли априорная фиксация промежуточного множества. Вообще ^°Жно сказать, что свойства системы в целом определяются ха¬ рактеристиками слоя (программного или аппаратного), имеюще- з° самые «скромные» рабочие характеристики. В то время как Рачительный прогресс микроэлектроники обеспечивает все более йРокие возможности растровых дисплеев, такое ограничение в 59
системах синтеза изображений представляется весьма непрпят, ным; вводимая слоями иерархия множества чисто фиктивна и сов. сем не обязательно соответствует уровню сложности или псреч группировкам размерностей 2D и 3D. Например, некоторые тер. миналы обеспечивают выполнение функций пространственных пре. образований, что невозможно было бы в слое 2D; процессы визуализации, позволяющие перейти от описания элементов к их изображению на экране, не могут быть априор, но разделены на одинаковые этапы. В большинстве случаев они зависят от используемого оборудования, от типа составляющие элемент признаков и от требуемых характеристик. Эти утверждения убедительно иллюстрируются следующим примером. Пусть имеются четыре оконечных синтезатора: Т1 ограничивается отображением одной точки одного задан< ного цвета, Т2 добавляет к этому отображение одноцветных прямоуголь¬ ников, ТЗ обеспечивает заполнение внутренних точек многоугольни- ка одним цветом, Т4 отображает круги, заданные своими центрами и радиусами Для создания на этих терминалах программы визуализации одноцветного диска, заданного своими радиусом и центром, мо¬ жно использовать четыре процесса визуализации, схематичеем представленные на рис. 30, где показаны только основные этапы конструирования. Невозможность найти общий для всех четырех процессов этап, позволяющий провести разделение на два слоя, представляется очевидной. Чтобы на этом примере проиллюстрировать эффекты, получа¬ ющиеся от разделения на слои, выберем в качестве стандартно¬ го промежуточного элемента одноцветный многоугольник 2D. Та¬ кой выбор определяется желанием разделить исходный синтеза¬ тор на два так, чтобы «верхний» синтезатор был единственный (рис. 31). 60
Очевидные достоинства такого разделения не уменьшают его недостатков: для Т1 и Т2 разделение влечет за собой более или менее хо¬ рошую аппроксимацию контура многоугольником и его заполне¬ ние, которое могло бы выполняться быстрее на самом круге бла¬ годаря использованию соответствующих алгоритмов [31, 95, 60] > для Т4 пропадает возможность непосредственного использова¬ ния всех свойств аппаратных средств. Если попытаться визуализировать тот же самый диск, но по¬ крытый текстурой типа шахматной доски, то задача снова пол¬ ностью меняется. На этом втором примере можно заметить, что процесс зависит также от внешнего вида элемента, особенно для терминала Т4, для которого процесс сводится к генерирова¬ нию точки за точкой (рис. 32). Задача выбора единого промежуточного элемента в этом слу¬ чае становится практически неразрешимой, и остаются лишь два •очевидных решения: либо исходный элемент «однородный диск», 61
либо конечный элемент — пиксел. Однако эти оба решения не да пускают никакого разделения процесса. В заключение отметим, что разделение синтезатора на сщ сводится к априорной фиксации для всех возможных ситуации какими бы они не были: одних и тех же уровней запоминания признаков, одного и того же проникновения несинтезируемых признаков одних и тех же этапов, определяемых конвейерной обработ! кой, что исключает возможность «более параллельных» реалв. заций. 2.4. РАЗЛИЧНЫЕ ПОДХОДЫ К НАМЕЧЕННЫМ ЦЕЛЯхМ Предыдущие разделы позволили оценить количество и разно¬ образие возможных подходов и их важнейшие последствия. Сле¬ дующий шаг, которому посвящен данный раздел, по своей на- правленности прямо противоположен ранее изложенному, пос¬ кольку речь пойдет об учете поставленных целей при разработ¬ ке и реализации системы синтеза изображений. Именно из этих соображений необходимо сформулировать наилучшим образом согласованные с ними подходы. Будем рассматривать следующие их аспекты: требуемые характеристики, желательные возможности взаимодействия, необходимые независимость и адаптивность, стоимость. Как видно, эти подходы характеризуются принципиальными противоречиями и окончательный выбор можно сделать только после обязательной расстановки приоритетов, зависящих от клас¬ са задач, которому разработчик желает отдать предпочтение, и от средств, имеющихся в его распоряжении. Ниже будут изложе¬ ны только основные направления, в рамках которых, разумеется, каждый частный случай позволяет вносить более или менее су¬ щественные изменения. В конце раздела дается сводная таб- лица, а в следующей главе будут рассмотрены несколько извест¬ ных систем. 2.4.1. Рабочие характеристики К требуемым характеристикам относятся время срабатывания, качество изображения, сложность сцены. На рис. 33,а показан пример системы, в которой приоритет отдается быстродействию. Если же предпочтение при выборе отдается качеству (обычй0 путем дополнительной обработки), то ясно, что в невыгодном пО' ложении оказываются те задачи, для которых решающими явлЯ' ются время срабатывания и сложность сцены. Иными словам*1, обсуждаемый здесь вопрос заключается в следующем: можно $ 62
Качество Качество Рис. 33. Компромисс между характеристиками системы представить себе такую адаптивную систему, которая отвечала бы наибольшему количеству требований? Если каждый элемент определяется своим собственным про¬ цессом, то можно предусмотреть и предоставить пользователю процессы, обладающие определенными функциональными свой¬ ствами. В частности, процессы: быстрее, но ограниченные по качеству и сложности, сложные, но ограниченные по скорости и качеству, создающие высококачественные изображения, но ограничен¬ ные по скорости и сложности. Тогда получим схему, приведенную на рис. 33,6, где показан предлагаемый пользователю выбор в такой системе. Если использовать разделение на слои, то априорное разде¬ ление процессов ограничивает пределы маневрирования внутри каждой части и повсеместно навязывает всем процессам одина¬ ковые характеристики. Как бы то ни было, компромисс между скоростью, качеством и сложностью возникает на уровне каждого процесса заново. Ни¬ же будет исследовано воздействие требуемых характеристик на выбор архитектуры системы. 2.4.1.1. Быстродействие Большое количество обрабатываемой информации, так же как и необходимость сложных вычислений, особенно в случае реалис¬ тичных изображений, ставят эту характеристику в ряд наиболее важных. Однако для выбора организации необходимы два до¬ полнительных уточнения: порядок величины скорости, которая может перекрывать ди¬ апазон от нескольких минут до реального времени (40 мс) для полной смены изображения, операции, для которых скорость действительно является ре- ающей, например геометрические преобразования или измене- я внешнего вида, или изменения точки съемки объекта. _ Порядок величины скорости будет прямо обусловливать вы- Р между последовательной или параллельной архитектурами, сводится в большинстве случаев к выбору необходимой степе- 63
ни параллелизма и технологии выполнения процессов, отвечающ^ требуемой скорости. Различные системы, естественно, обладают различными бы. стродействием и технологичностью. В порядке возрастания бы. стродействия их можно располагать следующим образом: после, довательная, конвейерная асинхронная и конвейерная синхронная системы без распараллеливания, с межпроцессорным и внутри, процессорным распараллеливанием. В зависимости от технологии используемых процессов быстро, действие возрастает в такой последовательности: программное обеспечение для стандартного вычислителя, стандартный микро. процессор, специализированный микропроцессор, однокристаль- ный микропроцессор, реализация на жесткой логике. Что касается предпочтительных операций, то они будут дик. товать включение промежуточных структур данных и глубину проникновения обрабатываемых признаков. Например, как уже было показано, изменение внешнего вида объекта будет настоль¬ ко быстрее, чем других характеристик, что синтез признаков класса А с другими признаками будет запаздывать. 2.4.1.2. Качество изображения Желание получить высокое качество изображения, наоборот, связано со слабым проникновением. Большая потеря информа¬ ции, происходящая обычно в процессе операции съемки (потеря размеров, разрезание), приводит к тому, что некоторые функции, относящиеся к «эстетике» изображения, следовало бы выполнить заранее. Особенно это относится к операциям подавления алиай- зинга, определения теней и анаморфотных преобразований текс¬ тур, т. е. операций, для которых было разработано большое чис¬ ло алгоритмов, Впрочем, здесь еще раз подтверждается противо¬ речие, существующее между быстродействием и качеством. Резюмируя, отметим, что потребность в качестве ориентирует разработчика на неглубокое проникновение информации и на про¬ граммируемую реализацию для наиболее точного учета реальных явлений. 2.4.1.3. Сложность сцены Если противоречие между сложностью макета и скоростью вы¬ полнения процесса визуализации является очевидным, то влияние сложности сцены на качество изображения заслуживает того, что¬ бы сделать несколько замечаний. Сложная сцена (хотя само это понятие трудно для определения) порождает обычно и сложное изображение, состоящее из большого числа элементов. Для пра¬ вильного анализа всей воспринимаемой сцены человеческий мозг должен располагать изображением настолько четким и реалистич¬ ным, что оно оказывается «перегруженным». Потребность в повЫ- 64
щении качества изображения влечет за собой возрастание затрат времени. С другой стороны, большое число элементов, подлежащих обра¬ ботке, требует глубокого распараллеливания архитектур и исполь¬ зования жесткой логики. 2.4.2. Степень интерактивности Термин «интерактивность» применяется здесь в своем прямом смысле и означает, что часть описания выполняется оператором на основе визуализируемого изображения. Этот процесс описания базируется на двух основных операциях: идентификации путем указания (описания признаков I и S) и сборе информации (опросе структуры данных) . 2.4.2.1. Идентификация путем указания Эта функция обеспечивает идентификацию и определение струк¬ туры одного или нескольких элементов, указанных непосредствен¬ но на экране, с помощью интерактивных устройств, таких как сет¬ ка, световое перо и др. Для идентификации целесообразно осуществить глубокое прони¬ кновение признаков, сопровождаемое промежуточным запоминани¬ ем. Как было показано, такой подход позволяет не только сокра¬ тить необходимые операции для псевдовизуализации, но и сохра¬ нить и передать признаки идентификации и структуры на самый нижний .уровень аппаратуры. Таким образом, идентификация мо¬ жет выполняться прямо на аппаратном уровне или на том уровне программного обеспечения синтезатора, который наиболее «бли¬ зок» к изображению, что определяет высокую эффективность ин¬ терактивного взаимодействия. 2.4.2.2. Сбор информации Присвоением имени элементу прикладная программа обеспечи- Вает либо непосредственную идентификацию (признаки I и S), Либо запрос признака, связанного с этим элементом (М, A, G, Е). Таким способом можно выражать действия, которые распрост¬ раняются, например, на все элементы, имеющие такой же внешний аА, как и тот элемент, на который указывает пользователь. По- ольку пределы этих действий могут охватывать весь макет в ^елом, а не только изображение, использование одной единствен- в и структуры данных позволяет устанавливать прямое соответст- е Между элементами, указываемыми на изображении, и элемен- теп Макета- Следовательно, возможности и эффективность ин- КогКТИВНОГО взаимодействия снижаются при разделении на слои, Аа разделяется и структура данных. 65
2.4.3. Независимость и адаптивность В этом подразделе рассмотрим критерии, позволяющие разли- чать системы общего назначения, т. е. такие, которые могут ре- шать широкий класс задач на различном оборудовании, и специа¬ лизированные системы, т. е. предназначенные для одной задачи или одного класса частных задач и/или заданного оборудования. Эти критерии влияют на решение о целесообразности разделения па слои. 2.4.3.1. Независимость Ее следует понимать как независимость прикладной программы от системы синтеза изображений, иначе говоря, от аппаратуры ви¬ зуализации и ввода, от носителя и организации структуры данных, от внутреннего моделирования элементов. В дальнейшем будет показано, что синтаксическая независи¬ мость всегда может быть получена путем использования «упрощен¬ ной» структуры данных, какой бы ни была выбранная организа¬ ция. Что касается семантической независимости, связанной с приро¬ дой обрабатываемых элементов, то здесь задача оказывается зна¬ чительно сложнее и ее решение видится на пути автоматизации процессов, выполняемых системой. В этом случае прикладная про¬ грамма не зависит от типа элементов, визуализация которых может быть осуществлена с помощью единственной подпрограммы. 2.4.3.2. Адаптивность Речь идет о свойстве программного обеспечения легко приспо¬ сабливаться к различным условиям, иЗхменяющимся в результате появления новых рабочих мост. Это свойство, которое характеризу¬ ет оптимальность использования оборудования для рассматривае¬ мой задачи, основывается на программируемой реализации и на послойном разделении, которое минимизирует переделки, необхо¬ димые для перехода от одних условий к другим. 2.4.4. Стоимость оборудования Стоимость оборудования, часто оказывающая решающее влиЯ' ние на выбор системы, к сожалению, определяет большинство опЯ' санных выше свойств. Можно предложить два направления огрЯ' ничения стоимости как для аппаратуры, так и для программ: 1) ограничить общие капиталовложения, заранее зафиксировав пределы дальнейшего развития, путем разделения на слои. Дейс?' вительно, такая организация ведет к использованию элемент^ низкого уровня, требующих небольшого объема оборудования 11 программного обеспечения; 66
2) ограничить первоначальные капиталовложения, образовав минимальное ядро и предоставив возможности любого расшире¬ ния. Иерархическая организация позволяет для каждой ситуации заново решать задачу, связанную со стоимостью оборудования. Ясно, однако, что эти заманчивые цели ведут к значительному уве¬ личению объема оборудования, а следовательно, и к возрастанию стоимости. 2.4.5. Сводная таблица Приводимая ниже таблица дает краткую сводку основных ре¬ зультатов рассмотренных направлений. Незаполненные клетки соот¬ ветствуют случаям, когда влияние незначительно или трудно оце- нимо. Промежу¬ точное запомина¬ ние Проникно¬ вение признаков Послойное разделение Парал¬ лельная архитек¬ тура Реализация на жесткой логике Управле¬ ние про¬ цессом Быстродействие си¬ Нет / Нет Да Да Да стемы Скорость выполне¬ Да Да Нет Да Да Да ния операций Качество изображе¬ / Нет / Нет / / ния Сложность сцены / / / Нет Нет / Степень интерактив¬ Да Да Нет Да / Да ного взаимодействия Простота использо¬ / / / / / Да вания Простота адаптации / / Да Нет Нет Нет Ограничение стои¬ / / Да Нет Нет Нет мости Глава 3. АППАРАТНЫЙ АСПЕКТ: АРХИТЕКТУРЫ СИНТЕЗАТОРОВ ИЗОБРАЖЕНИЯ Наблюдаемое в настоящее время широкое разнообразие средств с°здания изображений, их характеристик и основных технических в°зможностей не позволяет провести достаточно обоснованного сра- Внительного их изучения только по рекламным проспектам, пуб- Лйкуемым разработчиками. Необходимо опираться на объективные критерии, вытекающие непосредственно из архитектуры и техно- л°гии, на которых основаны различные системы. Такое критичес- изучение требует систематического последовательного учета й°стоянных и переменных факторов, позволяющих делать выбор 3* 67
в пользу того или иного решения в зависимости от специфически^ особенностей решаемой задачи. При описании рассматриваемы* ниже систем упор делается именно на эти факторы. Обзор, не претендующий на исчерпывающую полноту, выполнен в свете основных концепций, изложенных в первой главе, и раз- личных подходов, описанных в предыдущей главе. Будем рассмат¬ ривать последовательно элементарные аппаратные процессы и раз¬ личные архитектуры. 3.1. ЭЛЕМЕНТАРНЫЕ АППАРАТНЫЕ ПРОЦЕССЫ Для синтеза изображения на экране необходимы по меньшей мере два синтезатора (рис. 34). Один из них — непосредственно устройство отображения, которое выполняет процесс присваивания на экране; второй — устройство регенерации, предназначенное для постоянного «обновления» изображения, содержит как минимум один процесс присваивания и один процесс визуализации. Для описания и интерактивного взаимодействия видеотерминал использует также встроенные процессы описания, действующие на базе имеющихся в его распоряжении устройств ввода, и процессы опроса, позволяющие пополнять введенную информацию. Технология реализации этих различных устройств непосредст¬ венно обусловливает тип применяемых элементов, и ей посвящена первая часть данного обзора. Эволюция методов отображения и ввода неоднократно описывалась в литературе [31, 59]; здесь да¬ на классификация основных устройств, получивших наиболее ши¬ рокое распространение в настоящее время. 3.1.1. Устройства отображения Рассмотрим пример электронно-лучевой трубки, которой обо¬ рудовано пока еще большинство устройств отображения, не каса¬ ясь таких сравнительно редко применяемых устройств, как плаз¬ менные панно, лазерные экраны, жидкие кристаллы и т. п. В настоящее время рынок делят между собой два конкуриру* ющих метода, основанных на развертках двух типов: векторная развертка, при которой электронный луч движется вдоль контура отображаемого рисунка; Устройство регенерации Устройство отображения Рис. 34. Аппаратные устройства 68
растровая развертка, при которой электронный луч пробегает весь экран, строка за строкой, каким бы ни было отображаемое изображение (рис. 35). Очевидно, что векторная развертка значительно лучше приспо¬ соблена к векторным рисункам, чем растровая, в то время как по¬ следняя более соответствует представлению изображений. Эта тен¬ денция усиливается дополнительными возможностями цвета, при¬ сущими обоим вариантам. В случае векторной развертки устройства отображения разли¬ чаются между собой: скоростью движения (постоянная или пропорциональная дли¬ не), точностью движения и ее постоянством, возможностями цвета: используемые в настоящее время цвет¬ ные трубки обеспечивают всего четыре цвета (красный, оранже¬ вый, желтый, зеленый), которые получаются путем дозирования степени прохождения луча сквозь два люминесцентных слоя (красный и зеленый), нанесенных на экран (рис. 36). Рис. 36. Принцип работы трубки с двухслойным экраном 69
В случае растровой развертки следует рассматривать такие критерии: стандарт развертки: обычно 625 строк, но могут быть 512 или 1024. В этом случае речь идет о специальных мониторах, не совмес. тимых с телевизионным стандартом МККР. Развертка может быть также прогрессивной или чересстрочной; стандарт входных сигналов: красная, зеленая и синяя составля¬ ющие аналогового сигнала RGB, составляющие цифрового сигнала RGB или любой телевизионный стандарт: SECAM, PAL, NTSC. В этом случае необходим видеокодер; возможности цвета. Получение широкой гаммы оттенков на эк¬ ране трубки в сочетании с растровой разверткой обеспечивается действием трех электронных пушек, собранных в одной трубке. Такие трубки идентичны используемым в цветном телевидении, а следовательно, сравнительно дешевы, поэтому они получили широ¬ кое распространение. Но технология трубки «тринитрон» (или «хроматрон») постепенно будет вытеснять технологию масочной трубки, которая сложнее и потребляет больше энергии. На рис. 37 схематически показан принцип работы тринитрона. Явление адди¬ тивного сложения цветов из трех основных составляющих будет рассмотрено в гл. 5; послесвечение. Его увеличение позволяет повысить число строк и подавить эффект мельканий, но вызывает эффект тянущихся продолжений, мешающих наблюдать быстрые движения; полоса пропускания (число элементов в строке). Этот параметр связан одновременно с характеристиками видеоусилителя и раз¬ решающей способностью трубки. В настоящее время существуют трубки, позволяющие отображать 1536ХЮ24 точек. Рис. 37. Принцип работы трубки «тринитрон: 70
3.1.2. Устройства регенерации Послесвечение люминофоров, нанесенных на экран, сравнитель¬ но небольшое, особенно телевизионных трубок для воспроизведе¬ ния движущихся изображений. Поэтому необходимо периодически обновлять изображение для улучшения зрительного восприятия. Для отображения используются три метода регенерации: на базе запоминающих трубок, непрерывная интерпретация списка визуализации, непрерывное считывание с растровой (кадровой) памяти. 3.1.2.1. Запоминающая трубка Используемая в настоящее время единственным разработчиком (фирмой Tektronix), она, тем не менее, достаточно широко распро¬ странена благодаря своей низкой стоимости. При этом способе (предназначенном для векторной развертки) устройство регенера¬ ции составляет единое целое с трубкой и состоит из запоминающей сетки, расположенной вблизи экрана, и поддерживающего элект¬ ронного луча, непрерывно обегающего весь экран. В задачу данного подраздела не входит изложение технических подробностей; заинтересованный читатель найдет более полное описание в других работах. Основные характеристики этого метода: низкая стоимость, поскольку требуется небольшое число элек¬ тронных приборов, невозможность выполнения выборочного стирания, так как до¬ пускается только полное стирание с трубки, за исключением от¬ дельных типов аппаратуры и ограниченного ряда изображений, невозможность выполнения прямой идентификации элемента изображения без обращения к программным процессам, отсутствие цвета, ухудшение качества изображения с течением времени. 3.1.2.2. Список визуализации Для этого метода, используемого при векторной развертке, требуются (рис. 38): • Список визуализации Процессор распределения Процессор регенерации Память регенерации Рис. 38, Терминал со списком визуализации 71
память с произвольным доступом для регенерации (объем па¬ мяти может быть различным — от 1 до 64 К), процессор регенерации, иногда с жесткой логикой, выполняю, щий процесс визуализации путем периодического считывания за¬ писанных в памяти графических команд. Последние составляют целую программу, обычно называемую списком визуализации; процессор, задачей которого является распределение памяти регенерации. Возможности терминала такого типа прямо связаны с набором графических команд, установленных для процессора регенерации. Основные достоинства метода, заключаются в возможности структурирования и изменения списка визуализации, что обеспе¬ чивает: селективное стирание путем добавления команд условного пе¬ рехода, позволяющих обойти ту часть программы, которая пред¬ ставляет объект, подлежащий стиранию в списке визуализации; использование элементов рисунков, представленных с помощью графических подпрограмм; создание движений путем непосредственного изменения геомет¬ рических признаков элементов в списке визуализации. Однако эти достоинства обусловливают повышение стоимости и ограничение числа отображаемых элементов в основном из-за времени, необходимого процессору регенерации для считывания из памяти. Если оно превышает 40 мс, то появляются неприятные для глаза мелькания. 3.1.2.3. Растровая память Это устройство, связанное с трубкой, имеющей растровую раз¬ вертку, содержит (рис. 39): память с произвольным доступом, состоящую из такого числа точек, которое не меньше, чем число точек в представляемом изо¬ бражении (например, 512x512); процессор регенерации, который осуществляет развертку этой памяти для считывания и отображения синхронно с телевизионным монитором; процессор распределения, который заносит информацию в па¬ мять. В простейшем случае растровая память содержит информацию о яркости или цвете каждой точки изображения (признак А). Про- Растровая память Рис. 39. Терминал с растровой памятью 72
рессор регенерации представляет собой цифро-аналоговый преоб¬ разователь, передающий эту информацию блоку отображения, свя¬ зывая ее с сигналами синхронизации развертки (признак М). Про¬ цессор обмена в целом выполняет функции генерирования отрез¬ ков прямых и дуг окружностей, заполнения многоугольников и т. Д- Основные характеристики этого метода: немного более высокая стоимость, связанная с широким рас¬ пространением телевизионной аппаратуры (можно использовать непосредственно телевизионный приемник); стабильность изображения, не зависящая от сложности и про¬ должительности отображения; низкая разрешающая способность по сравнению с предыду¬ щим методом. Отметим, что цветные трубки, позволяющие отобра¬ жать 1024x1024 точек, пока еще очень дороги и требуют особых условий эксплуатации (защита от вибрации, магнитных полей, из¬ менений температуры). 3.1.3. Устройства ввода Можно сказать, что принципы устройства ввода мало измени¬ лись за последние годы. Их задачей является только ввод морфо¬ логической информации (координат) в большинстве случаев на плоскости и только для некоторых — в пространстве. Различают устройства двух типов: связанные с процессом визуализации и не¬ зависимые. 3.1.3.1. Устройства, связанные с процессом визуализации К этим устройствам относятся световое перо, снабженное фо- точувствительным элементом, в котором образуется электрический сигнал при изменении интенсивности освещения. Связанное внутри консоли со списком визуализации, оно позволяет опрашивать при¬ знаки, относящиеся к обрабатываемому элементу, благодаря воз¬ можности выбора адреса из памяти графических команд в момент появления сигнала. Отметим, что световое перо с некоторых пор используется так¬ же совместно с консолями растрового типа. В этом случае в мо¬ мент появления сигнала определяются координаты обозначаемой точки, а считывание из кадровой памяти в тот же момент опреде¬ ляет признаки, соответствующие данной точке. Как в том, так и в другом случае, световое перо позволяет не¬ посредственно идентифицировать элемент только при записи его признака идентификации в списке визуализации (общий случай) Или в растровой памяти. 3.1.3.2. Независимые устройства Эта категория объединяет устройства такого типа как сетка, Подвижный шарик, ручка со щеточным контактом (джойстик), 73
обычно являющиеся элементами видеотерминала, в котором про, цесс описания полностью независим от процесса визуализации. Информация, выдаваемая ими, представляется в виде пар чисел (х, у), представляющих собой координаты, привязанные к экрану трубки. Для облегчения ввода ответный эхо-сигнал отображается на экране в форме какого-нибудь символа (перекрестие, буква и т. д.). Однако наиболее мощным и хорошо адаптируемым средством ввода является цифровой планшет. Он обладает многочисленными достоинствами по сравнению с предыдущими .устройствами: положение горизонтальное или наклонное, большие размеры поля ввода (1X1 м), высокая разрешающая способность (до 0,025 мм), возможность вводить непосредственно планы, схемы и т. п., возможность проецировать на него диапозитивы с целью ввода контуров или расстояний между объектами. Положение точки на планшете отмечается электромагнитным, емкостным или ультразвуковым методом в зависимости от его кон¬ струкции. Частота дискретизации точек обычно фиксируется внут¬ ренним тактовым генератором планшета. Используемые в настоящее время планшеты являются действи¬ тельно независимыми устройствами. С помощью шин интерфейса они могут соединяться непосредственно с ЭВМ или развитым тер¬ миналом через линию V-24 (последовательно или параллельно). Аналогично можно вводить и трехмерную информацию с помо¬ щью: обычного планшета, отмечая последовательно точки, характери¬ зующие объект с двух точек наблюдения, специального планшета, содержащего два пишущих элемента и воспроизводящего третье измерение [104] благодаря встроенно¬ му процессу, цифровых устройств 3D, характеризующихся множеством аспек¬ тов в зависимости от размеров и морфологии вводимых объектов. Изучение принципов их работы выходит за рамки данной книги. 3.2. АРХИТЕКТУРЫ ОБОРУДОВАНИЯ 3.2.1. Методология изучения Видеотерминал служит оконечным устройством любой системы синтеза изображений. При однопроцессных синтезаторах нет необходимости рассматривать вопрос об организации системы, по¬ скольку порядок выполнения процесса, возможность распараллели¬ вания, а также характер используемых процессов непосредственно определяют архитектуру оборудования. 3.2.1.1. Минимальная архитектура Поскольку информацию на экране необходимо постоянно обно¬ влять, каждый видеотерминал, кроме устройства отображения, 74
Предсинтез Память регенерации Постсинтез Рис. 40. Минимальная архитектура должен содержать память регенерации, процессор регенерации, процессор обмена, задачей которого являются процессы распре¬ деления и опроса. По поводу минимальной архитектуры, представленной на рис. 40, можно сделать несколько общих замечаний: учитывая необходимую периодичность регенерации изображе¬ ния на экране, процессор регенерации выполняют обычно на эле¬ ментах с жесткой логикой или объединенным с трубкой (как, на¬ пример, в случае трубки с памятью); «конфликты», возникающие при необходимости одновременного доступа к памяти регенерации обоих процессоров, между которы¬ ми она расположена, разрешаются внутри системы путем присво¬ ения приоритетов тому и другому в зависимости от требуемых ха¬ рактеристик; память регенерации может служить также промежуточной па¬ мятью для процесса визуализации; элементарные операторы синтеза могут быть размещены как на уровне процессора обмена (предсинтез), так и на уровне про¬ цессора регенерации (постсинтез). Далее будет показано, что современная тенденция заключается в увеличении числа процессоров. Речь идет о включении дополни¬ тельных слоев в конвейерную асинхронную линию между процес¬ сорами обмена и регенерации или об использовании параллельной обработки в процессе визуализации. Помимо числа процессоров, имеющихся в консоли, для каждо¬ го из них интересно изучить: используемые методы (жесткая ло¬ гика или программирование), природу и структуру связанных с ними устройств памяти. 3.2.1.2. Проникновение признаков в глубокие слои аппара¬ туры Для оценки в целом характеристик различных изучаемых уст¬ ройств рассмотрим порядок и место операторов синтеза, иначе го- в°ря, глубину проникновения различных классов признаков. Наи¬ более интересными вопросами здесь являются: класс признаков, проникающих наиболее глубоко, которые представляют собой также класс наиболее важных признаков с т°чки зрения скорости изменения. способность проникновения в глубокие аппаратные слои. 75
3.2.2. Минимальные системы В данную категорию будем объединять двухпроцессорные сис¬ темы со слабым проникновением. Эти два свойства определяют следующие характеристики: система организована на базе единственного устройства памя¬ ти, служащего памятью регенерации, на уровне процессора регенерации не выполняется никакого постсинтеза. процессор обмена выполняет весьма ограниченный предсинтез, 3.2.2.1. Видеоконтроллеры на СБИС В минимальной системе, для создания которой требуется не¬ большое количество оборудования, целесообразно использовать растровую развертку. Такая конструкция, которая может быть ре¬ ализована на базе устройств, предназначенных для «широкого по¬ требления» (динамическая память с произвольным доступом, циф¬ ро-аналоговые преобразователи — ЦАП, стандартные телевизион¬ ные мониторы), еще более упрощается в результате появления ви¬ деоконтроллеров, собранных в едином корпусе сверхбольшой ин¬ тегральной схемы (СБИС). Компания EFCIS предлагает такую схему (EF 9365), выпускаемую по разработке, описанной в [71]. Схема выполняет процессы визуализации, описания, присваивания и опроса для простых элементов, таких как точки, векторы, буквы. Более широкими возможностями обладает предлагаемый фир¬ мой NEC интегральный контроллер NEC 7220, который может рас¬ сматриваться как дальнейшее развитие предыдущего. Графический процессор EF9365 выполняет в основном следую- ющие функции: генерирование сигналов синхронизации, предназначенных для монитора; управление «конфликтами» доступа (запись — чтение) и обнов¬ ление растровой памяти (динамической, с произвольным досту¬ пом); управление сеткой или световым пером; генерирование векторов; генерирование букв; масштабирование. Архитектура системы, реализованной этой схемой, представле¬ на на рис. 41. Отметим, что данная схема предусматривает орга¬ низацию такого доступа к памяти, который необходим для отобра¬ жения векторов и букв (морфологические преобразования). Содер¬ жание информации, поступающей в память, определяется внешни¬ ми программами. При желании можно увеличить объем памяти для того, чтобы запоминать еще и информацию о цвете. Память может содержать 512x512 элементов при чересстрочной разверт¬ ке. Для возможности использования схем динамической памяти с достаточно большим временем доступа процессор считывает инфор* 76
Адрес Адрес записи считывания M.G. / “ Синтезируемая информация ^ А.Е.— Внешние программы EF 9365: генерирование Память векторов и изображения символов Записываемые данные EF 9365: генерирование синхросигналов { Считываемые I данные ЦАГ1 I Обмен Регенерация Рис. 41. Система, использующая интегральный контроллер мадию одновременно о восьми соседних точках, расположенных на одной строке. Эта особенность вызывает необходимость включать в систему буферный регистр (с параллельным входом и последо¬ вательным выходом). При этом точки подаются на ЦАП последо¬ вательно. В случае цветных изображений число буферных схем быстро растет (необходимо 24 корпуса по 12 бит), а группирование по 8 не позволяет использовать корпуса памяти по 64 К. Учитывая та¬ кие технологические особенности, представляется более целесооб¬ разным группировать последовательные точки по 4 на строке. Тем не менее такая схема обладает очень интересными харак¬ теристиками, особенно это касается генерирования символов и от¬ резков прямых: каждый символ записан в памяти в виде матрицы размером 5X8 точек. Они могут быть классифицированы по величине (по высоте и ширине) и ориентации: горизонтальные, вертикальные, наклонные; прямолинейные отрезки генерируются классическим методом в соответствии с алгоритмом Брезенема [16] по координатам на¬ чальной точки и длинам вертикальной и горизонтальной проекций. Векторы могут отображаться линиями сплошными, пунктирными, Штриховыми или штрихпунктирными. Сетка или световое перо могут управляться процессором. В случае светового пера следует иметь в виду, что из-за группиро¬ вания точек по горизонтали истинная разрешающая способность по оси х уменьшается в 8 раз. Графический процессор NEC 7220, созданный на основе послед¬ них разработок, обладает набором более совершенных функций. Он может работать в одном из трех режимов: графическом, алфа¬ витно-цифровом и смешанном. В графическом режиме растровая память используется класси¬ ческим образом (один адрес на один элемент изображения) и про¬ фессор обеспечивает автоматическое заполнение этой памяти от¬ резками прямых, прямоугольниками, дугами окружностей, а также Графическими» текстами, символы которых определяются матри- 77
цей, состоящей из точек. Предусмотрены 16 уровней масштабиро. вания и две зоны, которые могут «разворачиваться» независимо. В алфавитно-цифровом режиме процессор имеет доступ к дру, гой растровой памяти, которая рассматривается в этом случае как байтовая. Символы воспроизводятся на экране от внешнего гене¬ ратора. Можно использовать четыре независимых зоны. Смешанный режим предусматривает одновременную реализа- цию обеих возможностей и символы на экране могут накладывать¬ ся друг на друга. Отметим, что этот контроллер является по существу эквива¬ лентом двух других — FF 9364 и EF 9365, работающих одновре¬ менно и синхронно на один экран. Другим интересным свойством процессора NEC 7220 является возможность его синхронизации от внешнего источника видеосигнала, что позволяет производить мик¬ ширование изображений, получаемых от нескольких устройств. 3.2.2.2. Терминалы низкого уровня с растровой разверткой Большинство этих систем используют (или могут использовать) процессоры, описанные в предыдущем подразделе. Они содержат в ряде случаев объединенные в одной конструкции: один или два процессора, реализующие функции видеоконтрол¬ лера, растровую память, обычно сокращенную до одного бита на пиксел, цифро-аналоговый преобразователь, телевизионный монитор, вспомогательные цепи и элементы, такие, как клавиатура, пор¬ ты вход/выход и т. д. Системы низкого уровня обычно предназначены для создания векторных рисунков и полностью соответствуют терминалу 4010 фирмы Tektronix, описываемому в следующем подразделе. Разумеется, терминал такого типа создает изображения пос¬ редственного качества и не обеспечивает интерактивного взаимо¬ действия. Единственная возможная для таких терминалов опера¬ ция ввода — это ввод координат с помощью двоичной сетки. Сле¬ довательно, исключается какое-либо движение, а также селектив¬ ное стирание объектов или их частей. Идентификация объектов пу¬ тем указания на экране с помощью сетки возможна только в слу¬ чае преобразования всей отображаемой информации программным путем, ценой долгих и дорогих исследований. Единственное достоинство архитектуры такого типа — это срав¬ нительно низкая стоимость. Некоторые конструкторы предлагают такие системы для расширения возможностей алфавитно-цифровых терминалов. Из этой категории можно назвать терминал фирмы SECAPA или графические устройства VT 640 фирмы DEC. 78
3.2.2.3. Системы с запоминающими трубками Поскольку устройство регенерации объединено с трубкой, архи¬ тектура такого типа значительно проще, о чем свидетельствует рйс. 42, на котором представлена схема терминала 4010 фирмы Tektronix. Рис. 42. Система с запоминающей трубкой Как и в предыдущем случае, уровень процессора обмена обес¬ печивает запись базовых элементов: векторов, точек, символов, ко¬ торые могут быть сгруппированы в разорванные линии или отдель¬ ные отрезки для векторов, в цепочки для символов. Терминал выполняет также синтез внешнего вида, ограничен¬ ный генерированием точек и тире для векторов. 3.2.2.4. Системы со списком визуализации В отличие от предыдущих систем в системах этого типа синтез выполняется процессором регенерации. Некоторые признаки внеш¬ него вида (текстура отрезков, цвет) и некоторые геометрические признаки (плоские перемещения, иногда гомотетия) непосредст¬ венно записываются в память регенерации процессоров обмена о Целью их синтеза во время цикла регенерации (рис. 43). Время срабатывания при изменении данных, содержащихся в памяти регенерации, значительно уменьшается благодаря глубоко- Рис. 43. Система со списком визуализации 79
му проникновению признаков А и G п использованию жесткой ло¬ гики. Несколько примеров систем такого типа: IBM 2250 и 3250 AFIGRAF 6000 и 8000, Concept 2160 и т. д. 3.2.3. Развитые системы Для расширения области применения аппаратуры синтеза раз¬ работчики. стремились увеличить ее возможности. Эта тенденция реализовалась двумя путями: расширение микропрограммного обеспечения процессора обме¬ на с целью использования возможно большего числа операторов предсинтеза; добавление дополнительного слоя синтезатора, чаще всего представляющего собой стандартную микроЭВМ, имеющую свое арифметическое устройство, свою собственную память (с произ¬ вольным доступом и/или диски) и собственное программное обес¬ печение. 3.2.3.1. Расширение микропрограммного обеспечения Первый вариант расширения, предложенный разработчиками, состоял в том, чтобы включить в состав терминала микропроцес¬ сор со своим программным обеспечением, записанным в ППЗУ. Этот процессор занят одновременно управлением обменом с вычи¬ слительным устройством и генерированием некоторых элементар¬ ных графических объектов с помощью растровой памяти. Приме¬ ром такого варианта является система Tektronix 4027, архитекту¬ ра которой изображена на рис. 44. Операторы синтеза выполняются на уровне процессора обмена и позволяют: генерировать точки, векторы, буквы линиями различного типа (пунктир, штрихпунктир, тире и т. п.), Рис. 44. Архитектура системы Tektronix 4027 80
заполнять области «по образцам» простыми текстурами двух цветов, выбранных из 64 возможных, содержащими 14x8 точек. Отметим, что система такого типа позволяет пользователю ри¬ совать «пятнами» при полном сохранении возможности рисования «линиями». Заполнение многоугольных площадей, выполняемое внутренними программами, полностью освобождает прикладную программу от рутинной обработки. Можно также с помощью «об¬ разцов» моделировать, в весьма приближенном виде, изменение условий освещения с целью придания изображению некоторой «ре¬ алистичности». В то же время, как и в предыдущих случаях, такая архитекту¬ ра не позволяет моделировать никакого движения, поскольку за¬ полнение памяти происходит относительно медленно. Поэтому не¬ возможна никакая прямая идентификация непосредственно на эк¬ ране из-за того, что информация о ней не учитывается терминалом. Выборочное стирание объекта на экране может выполняться пу¬ тем повторного закрашивания объекта цветом, идентичным цвету фона. 3.2.3.2. Использование «встроенной» микроЭВМ Среди разработчиков графических систем наблюдается замет¬ ная тенденция к обеспечению максимума локальных встроенных функций. Такой тип систем примыкает скорее к «вычислительным устройствам, предназначенным для графики», чем к терминалам. Эволюцию подобного типа претерпевают все системы: основанные на списке визуализации, такие как четырехцветный терминал Concept 2160 фирмы Alcatel, содержащий три процессо¬ ра и два блока ЗУ с произвольным доступом; с запоминающими трубками, такие как Tektronix 4114, способ¬ ные управлять двумя встроенными дисководами с гибкими дис¬ ками; с растровой разверткой, такие как Ramtek 9400, архитектура которых схематически изображена на рис. 45. Особенность последней системы состоит в совмещении преиму¬ ществ памяти с регенерацией, основанной на списке визуализации (в данном случае представленной в виде набора векторов), и ра¬ стровой памяти. Объекты, подлежащие визуализации, в самом на¬ чале сообщаются процессору обмена, который запоминает их в Картотеке векторов в синтезированной форме. Эффективное гене¬ рирование этих объектов и заполнение растровой памяти выполня¬ ется микропроцессором пакетной обработки серии AMD 2900 с дли¬ тельностью основного цикла порядка 280 не. С точки зрения пользователя терминал такого типа обладает Неоспорим ым и преимуществами, особенно это касается возможно¬ сти изменять один из объектов без повторного генерирования всех элементов изображения. Регенерирование может быть выполнено Команде процессором пакетной обработки в соответствии с ин¬ формацией, содержащейся в картотеке векторов. 81
Fhc. 45. Архитектура системы Ramtek 9400 Отметим, что первый уровень процессора занят выполнением опе¬ раций, которые другими архитектурами оставляются глубоким сло¬ ям внешнего программного обеспечения. Такое решение позволя¬ ет предоставить значительную свободу вычислительному устройству, которое может в результате решать более важные прикладные за¬ дачи. Архитектура описанного типа, несмотря на ряд достоинств, не может обеспечить синтез движения объектов в реальном масштабе времени. Кроме того, не во всех системах возможно выполнение прямой идентификации путем указания непосредственно на экране. 3.3. АРХИТЕКТУРЫ СПЕЦИАЛИЗИРОВАННЫХ СИСТЕМ Обратимся к специфическим системам, выпускаемым обычно малыми сериями или находящимся еще на стадии опытных образ¬ цов. Тем не менее они предвосхищают завтрашний рынок, поэтому им посвящена значительная часть этого раздела. Отправной точкой большинства исследований в области аппара¬ туры для визуализации служат два следующих утверждения: современная технология не позволяет создать систему, наде¬ ленную идеальными характеристиками и способную удовлетворить всем ситуациям; адаптация оборудования к частным процессам визуализации позволяет улучшить его характеристики, максимально используя особенности этого процесса. Однако адаптация сужает область применения аппаратуры такого типа. Операция, которой должно быть отдано предпочтение, определяет выбор процесса в целом. 82
3.3.1. Создание движущихся изображений в реальном масштабе времени В этот класс входят в основном системы, содержащие только 6есьма ограниченное число элементарных операторов. Главная йель заключается в создании движущихся синтетических изображе¬ ний в реальном масштабе времени, обладающих «скромной» сте¬ пенью реалистичности. Для этого используются следующие методы: предварительное вычисление и запись всех изображений в их последовательности, запись на диск изображений в кодированной и сжатой форме, восстановление и визуализация в реальном масштабе времени. Архитектура, изображенная на рис. 46, применяется в некото¬ рых поступающих в продажу системах, созданных на основе ис¬ следовательских работ [101]. Следует отметить отсутствие растровой памяти в прямом смысле. Асинхронность между считыванием с диска и разверткой на эк¬ ране компенсируется процессором перемещений, задачей которого является обращение к буферной памяти, по мере того как ее со¬ держание визуализируется. Уплотнение (число следующих друг за другом одинаковых по цвету точек + их цвет) значительно со¬ кращает требуемую скорость перемещений на уровне диска, но •одновременно ограничивает реалистичность изображений. Ясно, что количество подлежащей передаче информации сокра¬ щается тем больше, чем более крупные однотипные области содер¬ жатся в изображении. При архитектуре такого типа организовать движение реалистичных изображений в реальном масштабе вре¬ мени не представляется возможным. Такой же процесс используется в аналоговых видеодисках. Вы¬ числительное устройство предварительно определяет все изобра¬ жения в последовательности движений и записывает их одно за Другим на видеодиске. Затем они считываются с требуемой скоро¬ стью и отображаются на стандартном телевизионном мониторе. Стоимость современных видеодисков для записи и считывания и их весьма малое распространение ограничивает пока еще эту мето¬ дику лишь несколькими специфическими применениями (мульти¬ пликационное кино, моделирование поведения), для которых ка- . G. Gv. Ga Дисковая м Процессор перемещений М Буферная память М ^ А. Е. память А А А ^ N таблица цветов лн, Р<1 Внешние I программы Регенерация Рис. 46. Система моделирования движений в реальном масштабе време¬ ни (мультипликация) 83
питаловложения все же рентабельны. Появление цифровых лазер^ ных дисков, по-видимому сделает более доступной данную мето. дику; уже сейчас проводится много исследований по этой теме. 3.3.2. Визуализация специфических объектов Для большинства задач число типов представляемых графичес¬ ких объектов очень ограничено или все типы совершенно одина¬ ковы. Можно назвать два характерных примера: рисунок интег¬ ральной схемы состоит только из прямоугольников, стороны кото¬ рых параллельны осям в плоскости экрана, а трехмерная визуали¬ зация химических молекул может быть целиком выполнена с помо¬ щью сфер. Последний пример иллюстрируется системой, предназначенной для визуализации в реальном масштабе времени движущихся мо¬ лекул [100]. Каждый атом изображается сферой, для которой ап¬ паратура определяет внешний контур и освещение каждой точки- внутри его. Регулярная природа сферы позволяет выполнить опе¬ рации с помощью процессора на элементах с жесткой логикой. Од¬ нако при этом проблема устранения невидимых частей в случае взаимопроникновения сфер не решается на аппаратном уровне и остается задачей внешнего программного обеспечения, что ухуд¬ шает характеристики системы. 3.3.3. Удаление невидимых линий в реальном масштабе времени Конечной целью исследований систем этого типа является мак¬ симальная скорость выполнения одной операции или класса наи¬ более важных операций. В предыдущей главе было показано, что это улучшение характеристик может быть получено путем глубоко¬ го проникновения признаков, непосредственно относящихся к на¬ иболее важным операциям. Приведем два примера, в которых аппаратура специально при¬ способлена к специфическим операциям — устранению невидимых линий. 3.3.3.1. Архитектура, основанная на алгоритме Шумейкера Примером такой системы является GSI 1000, разработанная Исследовательским центром военно-воздушных сил [55] и выпу¬ скаемая в настоящее время фирмой Sogitec. Используемый процесс, в основу которого положена разработ¬ ка Шумейкера и его сотрудников [92], базируется на следующем принципе: предварительное вычисление статических приоритетов для мно¬ гоугольных поверхностей, составляющих макет (классификация поверхностей независимо от точки наблюдения);: 84
определение в реальном масштабе времени на аппаратном уров- динамических приоритетов (изменение статических приорите- т0В в зависимости от точки наблюдения) для удаления невидимых линий. Эта система включает также вычисление освещенности поверх¬ ностей в зависимости от положения источника света. Различия в освещенности, вызванные аппроксимацией плоскостями, сглажи- 0аются с помощью метода, предложенного Гуро [44]. Вся инфор¬ мация, необходимая для вычисления освещенности (изменение яр¬ кости вдоль осей х и у), обрабатывается серийным микропроцессо¬ ром AMD 2900. Динамические приоритеты, а также информация, относящаяся к геометрическим преобразованиям, заносятся в раст¬ ровую память, которая является частью блока с жесткой логикой (рис. 47). Вычисление перспективы также выполняется внутрен¬ ним процессором устройства. Несмотря на замечательные характеристики этот тип процесса не является исключением из общего правила и его преимущества, связанные с геометрическими признаками, сопряжены с некоторы¬ ми ограничениями: довольно бедна реалистичность изображений (нет ни текстур, ни отражений); элементы состоят только из выпуклых поверхностей; относительные перемещения изображаемых объектов в реаль¬ ном масштабе времени возможны только при условии, что всегда существуют плоскости, отделяющие каждый из них от всех ос¬ тальных. Такая архитектура хорошо приспособлена для применений в машинном проектировании, для которого возможность «вращения» наблюдателя вокруг объекта (чтобы осмотреть все его стороны) представляется существенной. Кроме того, отметим, что метод предварительного вычисления статических приоритетов плохо со¬ гласуется с объектами, совершающими движения на местности (синтез пейзажа). Задачи этого типа требуют определения новых пРограммы Предсинтез, обмен Предсинтез на жесткой логике, Регенерация генерирование Рис. 47. Архитектура системы GSI 1000 85-
статических приоритетов для каждого изображения, т. е. опера¬ ции, которая может оказаться очень дорогостоящей (до несколь- .ких минут на каждое вычисление). 3.3.3.2. Архитектура, основанная на алгоритме Z-буфера Второй пример архитектуры, в которой выполняется удаление невидимых линий, представлен системой Solidview, предлагаемой фирмой LEXIDATA. Эта машина с помощью серийного процессрра устраняет в трехмерном пространстве невидимые линии объектов, составлен¬ ных из плоских многоугольников. Метод устранения основан на алгоритме Z-буфера [21], действие которого сводится к простей¬ шей обработке каждого элемента изображения в растровой па¬ мяти. Процессор использует два блока растровой памяти, один из ко¬ торых предназначен для запоминания цвета поверхности в каж¬ дой точке, другой — для «глубины» этой точки на поверхности. Координаты поверхности сообщаются в форме 3D, и процессор интерполирует эту глубину во время заполнения многоугольника, представляющего собой проекцию на плоскость экрана, затем срав¬ нивает для каждой точки эту глубину с ее значением, уже нахо¬ дящимся в памяти. Результат сравнения позволяет определить, должна ли новая точка (глубина и цвет) быть занесена в память на место прежней. Комбинация двух цветов вместо простой чис¬ той замены позволяет учитывать явление прозрачности. Время отображения поверхности пропорционально ее проекции на экран, и хотя реальное время (одно изображение за каждые 40 мс) не может быть достигнуто при большом числе поверхностей, все же эта система позволяет уменьшить время отображения в 10 раз по сравнению с алгоритмами, основанными на принципах мик¬ ропрограммирования. Задачи, решаемые системами такого типа, обычно относятся к области машинного проектирования или обучения с помощью ЭВМ, для которых существенное значение имеет динамический ас¬ пект. Отметим, однако, что при таком решении не обеспечивается достаточная реалистичность объектов, так как с каждой поверхно¬ стью связывается единственный цвет. Кроме того, поверхности не сохраняются в своем первоначальном виде в глубоких слоях тер¬ минала, что влечет за собой необходимость повторения заново всех вычислений для каждой из поверхностей после какого-нибудь изменения одной из них или изменения положения точки наблюде¬ ния в пространстве. 3.3.4. Визуализация синтезированных реалистичных изображений Все возрастающее число задач требует синтеза реалистичных изображений, позволяющих придавать объектам вид реальных предметов, особенно текстур различных материалов (металлы, де¬ -36
рево, трава, ткань и т. д.). с учетом явлений, связанных с освеще¬ нием (тени, отражение и т. п.). Учет этих понятий на аппаратном уровне ставит серьезные проблемы из-за сложности математичес¬ ких моделей, связанных с данными физическими явлениями. Проиллюстрировать архитектуру такого типа можно на приме¬ ре системы «Гелиос», разработанной в Лаборатории информатики й прикладной математики в Гренобле [62, 69] и выпускаемой в продажу фирмой ITMI. В противоположность предыдущим архи¬ тектурам система «Гелиос» является синтезатором с жесткой ло¬ гикой, расположенным после растровой памяти (постсинтез). Ра¬ зумеется, она может быть включена последовательно с любой представленной ранее системой для «добавления» к ее возможно¬ стям достоинства реалистичности. Чтобы особо подчеркнуть уни¬ версальность, последняя глава книги посвящена этой оригиналь¬ ной архитектуре. Этот терминал обеспечивает высокую степень интерактивности и включает в себя развитые функции, допускающие, в частности: изменения в реальном масштабе времени внешнего вида объ¬ ектов (текстура, яркость), признаков освещения (положение, цвет и интенсивность источников света, рассеянный свет и т. д.), неко¬ торых геометрических признаков, окон, перемещений и масштаба; мгновенное и избирательное появление или исчезновение визу¬ ализируемых объектов; мгновенную идентификацию объекта, указываемого на экране с помощью встроенной сетки; вычисление в реальном масштабе времени для каждой поверх¬ ности, проекции текстур и отражений — диффузного и зеркаль¬ ного; сжатие данных, обмениваемых с управляющей ЭВМ; удаление невидимых линий, выполняемое на жесткой логике. Область применения такого типа архитектуры синтезатора ре¬ алистичных изображений шире, чем предыдущих, поскольку добав¬ ление реалистичности никоим образом не ухудшает характеристик системы. Наоборот, существенно расширяются возможности ин¬ терактивного взаимодействия благодаря обеспечению прямой иден¬ тификации путем указания и освобождению программного обеспе¬ чения от всех вычислений, относящихся к внешнему виду представ¬ ляемых объектов. Эта архитектура лучше всего приспособлена к задачам машинного проектирования, для которых интерактивность является фундаментальным свойством, особенно к таким, где эсте¬ тический аспект является непременной частью процесса разра¬ ботки. Такие приложения достаточно многочисленны; приведем лишь Несколько типичных: конструирование различных объектов (мебель, украшения, бы¬ товые предметы) и особенно выбор материала покрытия (дерево, обивочная ткань, металл, краска и т. д.); декорирование (для оценки гармонии формы и цвета); 87
архитектура (для оценки окончательного вида конструкции), градостроительство (для суждения о сочетании сооружений ^ пейзажем). 3.4. СОВРЕМЕННЫЕ ТЕНДЕНЦИИ И ПЕРСПЕКТИВЫ В настоящее время заметны две ярко выраженные тенденции, направленные на существенное изменение архитектуры видеогра- фических систем: использование специализированных СБИС и ре. ализация всех возможностей параллелизма в процессе синтеза. Обе тенденции сходятся к одной общей цели — избавление от рас¬ тровой памяти. Действительно, если можно выполнить все необхо¬ димые вычисления при генерировании даже со скоростью видеосиг¬ нала, то этап промежуточного запоминания больше не нужен. Та¬ ким образом, для улучшения характеристик представляются воз¬ можными два решения: распараллеливание и увеличение числа процессоров, что неизбежно ведет к применению СБИС. 3.4.1. Параллельные архитектуры Что касается синтеза изображений, то возможны три различ¬ ных метода распараллеливания: на уровне самого процесса, который может быть разделен на независимые подпроцессы; путем одновременного выполнения процессов, относящихся к различным объектам; путем одновременной обработки нескольких элементов изо¬ бражения. 3.4.1.1. Параллельные процессы (внутрипроцессный паралле¬ лизм) Такой тип параллелизма используется лишь в некоторых си¬ стемах. Причины такого слабого «энтузиазма» вызываются, веро¬ ятно, следующим: трудно найти «достаточно параллельный» про¬ цесс, трудно выполнить синхронизацию различных процессоров, а также операции синтеза, относящиеся к глубоко проникающей в процесс информации. Отметим, однако, что внутрипроцессный параллелизм использу¬ ется в системе Гелиос при одновременной обработке с помощью двух синхронных процессоров с жесткой логикой информации о раскрашивании (текстура) и о яркости (освещенность). 3.4.1.2. Параллельная обработка нескольких элементов (межпроцессный параллелизм) Поскольку число элементов в изображении обычно значитель¬ но больше числа операторов в процессе визуализации, выигрыш во времени при межпроцессном распараллеливании более сущест-
ценный, чем при предыдущем подходе. Правда, при этом требуют¬ ся большие материальные затраты, так как необходимо иметь по одному процессору на каждый элемент. Реализация этих методов [49, 75, 113] стала возможной благодаря повышению степени ин¬ теграции в СБИС. Основная идея рассматриваемого подхода за¬ ключается в том, что для каждого элемента макета используется сВой специализированный процессор, занятый параллельным вы¬ числением глубины и цвета, связанных с каждой точкой (х, у) йзображения. Объект, видимый в данной точке, определяется син¬ хронной цепочкой компараторов, позволяющей выделить точку, наиболее близкую к наблюдателю, и даже выполнить операцию анти-алиайзинга (рис. 48). Для этого процесса можно сделать несколько замечаний: состояние технологии, определяющей стоимость • метода, поз¬ воляло до настоящего времени делать лишь «вставки», моделируе¬ мые программно; объекты ограничены выпуклыми четырехугольниками в плоско¬ сти изображения, причем проецирование каждого объекта на плос¬ кость осуществляется последовательно, что несколько снижает бы¬ стродействие метода. Тем не менее такое решение в дальнейшем благодаря повыше¬ нию плотности интеграции могло бы привести к реализациям, не требующим никакой растровой памяти и позволяющим моделиро¬ вать движение трехмерных объектов в реальном масштабе вре¬ мени. Отметим, однако, что этот метод не допускает «обратного хо¬ да» решения, иначе говоря, невозможно идентифицировать объ¬ ект, видимый в данной точке. Более того, введение реалистичнос¬ ти на уровне процессора представляется совершенно утопичным при современном уровне техники. Зато кажется совершенно есте¬ ственным соединение архитектуры этого типа с постсинтезатором на элементах с жесткой логикой, что привело бы к созданию при¬ бора, допускающего интерактивное взаимодействие в реальном С = цвет ч S = видимый/невидимый I для каждого элемента Р = глубина [ Элемент! Элемент 2 Элемент 3 Элемент 4 Рис. 48. Пример внутрипроцессного распараллеливания 89
масштабе времени с реалистичными изображениями (перемещу ния, вращения и изменения объектов, смена точки наблюдения, ц3ч менения материалов, освещения и т. д.). 3.4.1.3. Параллельная обработка нескольких точек изображен ний В отличие от предыдущего этот подход предполагает наличие в системе числа процессоров, соответствующего числу элементов изображения. В настоящее время такая архитектура не может быть реализована в полном объеме, но несколько ее упрощенных макетов были испытаны и признаны годными. Процессы, выполня¬ емые в каждой точке, достаточно просты, и поэтому в одной СБИС могут быть объединены процессоры, связанные с группой точек изображения (например, 64X64). Все 64 процессора, необходимые для обработки изображения 512x512, совершенно идентичны и требуют лишь нескольких шин внешнего интерфейса. Наиболее интересен случай, когда каждый процессор способен определять, является ли точка внутренней для выпуклого четырехугольника, исходя из информации, задающей отрезки контура, и расположена ли она ближе или дальше той, ко¬ торая была вычислена ранее в этих же координатах (Z-буфер). Отметим, что регистры, требующиеся для работы каждого процес¬ сора, представляют собой по существу виртуальную растровую .память. 3.4.2. Будущее СБИС для синтеза изображений В предыдущих подразделах отмечался интерес, проявляемый к СБИС в случае разработки параллельных архитектур. Действи¬ тельно, увеличение числа процессоров требует уменьшения габа¬ ритов и потребления каждого процессора, т. е. условий, определя¬ емых схемой СБИС. Однако эти характеристики важны и для классических архитектур или для систем общего вида, представ¬ ленных в начале предыдущей главы. Значит, в ближайшем буду¬ щем можно ожидать настоящего взрыва в развитии специализиро¬ ванных СБИС для всех фаз синтеза изображений. Однако пред¬ ставляется, что не смогут быть преодолены два препятствия: огра¬ ничение числа выводов, которое определяет их размеры, и быстро¬ действие. Что касается числа выводов, то дело заключается в выделении таких процессов, для которых количество данных на входе и вы¬ ходе сокращено. Так, если предполагается реализовать СБИС, способную выполнять геометрические преобразования в простран- стве 3D, то следует предусмотреть такую информацию: три коор¬ динаты на входе, три координаты на выходе, а также механизм, позволяющий записывать девять коэффициентов матрицы преоб¬ разований; это слишком много. Классическое решение, состоящее в мультиплексировании входов и/или выходов, наталкивается на 90
рТОрую проблему, связанную со скоростью выполнения операций, Время, отводимое на обработку информации, при синтезе изо¬ бражений обычно весьма невелико. Для стандарта вещательного телевидения время, отводимое на обработку каждой точки изобра¬ жения, составляет приблизительно 70 не. Если для предсинтезато- ра при желании это время может быть продлено, то постсинтеза- тор должен соответствовать этой скорости. Отметим, что обычная технология изготовления современных СБИС не позволяет выпол¬ нить большого числа операций за такое короткое время. Значит, вероятно, будут пересматриваться внутренние структуры СБИС, которые смогут осуществлять распараллеливание, внутреннее за¬ поминание, проникновение информации и т. д. Глава 4. ПРОГРАММНЫЙ АСПЕКТ: ОРГАНИЗАЦИЯ И АРХИТЕКТУРА Программную часть системы синтеза изображений можно рас¬ сматривать как своеобразный отдельный синтезатор, состоящий из трех блоков: блока связи, выполняющего управление признаками I и S (идентификация и структура); блока описания и визуализации, в котором объединяются опе¬ раторы, относящиеся к признакам М, A, G, Е; блока управления, определяющего последовательность дейст¬ вия операторов, выполняющих присваивание, опрос, описание и визуализацию. Большинство современных систем ограничивается блоком опи¬ сания и визуализации, возлагая на пользователя управление орга¬ низацией структуры графических данных, а также современными процессами описания и визуализации этой структуры. Речь идет о простом банке операторов, соответствующих типам предопределен¬ ных элементов, к которым они относятся. Такая ситуация требует от пользователя глубокого знания графических задач, особенно факторов, которые могут влиять на ход выполнения процессов. Этому вопросу посвящена первая часть данной главы. Реализация блоков связи и управления (разработчиком систе¬ мы или самим пользователем) является достаточно сложной зада¬ чей, решение которой достигается в результате многочисленных Компромиссов. Данной проблеме посвящена вторая часть главы, гАе приводятся примеры последних разработок в этой области. 4.1. ПРОЦЕССЫ, УПРАВЛЯЕМЫЕ ПОЛЬЗОВАТЕЛЕМ Последовательность выполнения процесса визуализации зави¬ сит от большого числа параметров, часть которых определяется Функциями, предоставляемыми используемой системой. Порядок: 91
выполнения элементарных операторов существенно зависит 0т внутренней организации системы, от алгоритма удаления невидц. мых линий и в некоторых случаях от алгоритма определения те. ней, создаваемых элементами сцены. Разумеется, ход выполнения процесса определяется не только этими факторами; можно было бы назвать еще использование текстур, сложных поверхностей, учет прозрачности и т. д.; здесь рассматривается возможность адаптации уже существующего процесса к решению поставленной задачи вместо свободного выбора базового процесса. 4.1.1. Влияние внутренней организации системы 4.1.1.1. Общая организация Можно разделить все существующие системы синтеза изобра¬ жений на две категории: системы общего типа, позволяющие использовать различное оборудование для решения различных задач, специализированные системы, предназначенные для определен¬ ной задачи и/или для данного оборудования. Речь идет о реально существующем разделении, так как систе¬ мы общего типа не могут эффективно управлять сложным специа¬ лизированным оборудованием и, наоборот, специализированные системы не способны управлять никаким иным оборудованием, кроме того, для которого они были разработаны. Далее рассматриваются только системы, относящиеся к систе¬ мам общего типа, и оценивается их влияние на процессы визуали¬ зации, а следовательно, и на характеристики, предоставляемые пользователю. Программное обеспечение этих систем обычно раз¬ делено на три или более уровней и образует интерфейс между раз¬ личным оборудованием и различными классами задач. Такую ор¬ ганизацию иллюстрирует рис. 49. Из рисунка видно, что все процессы, предлагаемые системой такого типа, обязательно содержат общую часть — ядро. Как по¬ казано в гл. 2, речь идет об очень важном ограничении, заслужа- Рис. 49. Трехуровневая организация •92
Заюшем особого внимания. Рассмотрим совокупность, образуемую двумя последними слоями, которые составляют базовое графичес¬ кое программное обеспечение. 4.1.1.2. Базовое программное обеспечение Решающая роль базового программного обеспечения в орга¬ низации системы оправдывает появление множества работ, посвя¬ щенных этому вопросу, и усилия по его нормализации. Рассмотрим три варианта базового программного обеспечения, отражающих современные тенденции в этой области. 1. GKS (Graphic Kernel System) [34, 35] — перестраиваемая система программного обеспечения, не зависящая от аппаратуры. Эта система создана научной группой N1-5.9 института стандарти¬ зации ФРГ (DIN) и отличается от американской [47, 48] подходом к управлению рабочим местом и используемым мето¬ дом реализации. К этой группе будем относить также предло¬ жение Американского национального института стандартов (ANSI) Комитета по разработке графических стандартов при ACM (GSPC), например DIGRAF [109] или программное обеспечение, разработанное в Университете Джорджа Вашингтона. Система ■GKS, по-видимому, будет принята Международной организацией стандартизации (ISO) в качестве базового программного обеспече¬ ния. 2. GRIGRI [58, 59] — базовое программное обеспечение, не за¬ висящее от аппаратуры, но не обладающее возможностью перест¬ ройки. Оно разработано и реализовано в Лаборатории информати¬ ки и прикладной математики в Гренобле и в настоящее время по¬ ступило в продажу. 3. IGL (Interactive Graphics Library) [51] —программное обе¬ спечение, поставляемое конструкторами. Оно разработано фирмой Tektronix и встроено в ряд устройств, серийно выпускаемых этой фирмой. 4.1.1.3. Примитивы программных средств Этот краткий сравнительный обзор касается только. примити¬ вов, непосредственно относящихся к синтезу изображений. В него не включены примитивы, предназначенные для управления интер¬ фейсом с системой (прерывание, файлы данных и т. п.) и для уп¬ равления не относящимся к графике диалогом. Попытаемся клас¬ сифицировать эти примитивы в зависимости от процессов, к кото¬ рым они относятся: присваивание, опрос, описание и визуализа¬ ция. Примитивы GKS. Присваивание: морфология — Polygon, Polymarker, String, Pixel-array, Draw; внешний вид — Fill-polygon, Pixel-array, Visibility, Highlighting, Pen-number, Text-number; 93
геометрия — Transform-segment, Marker-size; освещение — отсутствует; идентификация и структура — Insert-segment, Open-segment Set-pick-identifier, Close-segment; точка наблюдения — Workstation-window; отображение — Workstation-viewport. Опрос: GKS не допускает непосредственного опроса отдельных призна¬ ков, но позволяет восстанавливать целые отрезки: Read-segment, Insent-segment. Описание: морфология — Locator, String; идентификация — Pick. Многочисленные примитивы позволяют перестраивать процесс описания, уточняя, следует ли визуализировать «эхо», должен ли ввод выполняться непрерывно или с задержкой и т. д. (Request, Sample, Event, Set-echo, ...). Визуализация: GKS позволяет также несколько перестраивать процесс визуа¬ лизации, отмечая, является ли визуализация: непосредственной после каждого примитива, отложенной до следующей команды интерактивного взаимодей¬ ствия, всегда отложенной; в этом случае она должна быть вызва¬ на с помощью примитива Redraw. Пользователь может также разрешить или отменить автомати¬ ческую регенерацию изображения в случаях, когда для изменений требуется стереть все содержимое экрана (случай трубки с памя¬ тью) . К недостаткам такого программного обеспечения, кроме его от¬ носительной сложности на уровне предоставляемых процессов для элементов типа 2D, можно отнести и такие, как: недостаточная согласованность; большинство примитивов ре¬ ально обращается к различным категориям (элементы, отрезки, «pick-identifiers»); отсутствие симметричности, поскольку могут быть описаны только точки и буквы. С другой стороны, динамическое управление с помощью под¬ программ Open-segment и Close-segment затрудняет пользователю структурирование его графических данных в зависимости от хода выполнения программы, что несколько противоречит концепции структурного программирования, которое, напротив, стремится к структуризации программы в зависимости от данных. Достоинством этого программного обеспечения является воз¬ можность перестройки процессов описания и визуализации. Примитивы GRIGRI. Пр исваивание: морфология — Точки, Текст, Форма; внешний вид — Форма; 94
геометрия — Форма (только для символов); идентификация и структуры — Точки, Текст, Форма; точка наблюдения — Окно; отображение — Рамка. Опрос: Никакой опрос невозможен, а вся информация должна сохра¬ няться прикладной программой. Описание: морфология — Положение; идентификация — Идентифицировать. При разработке программного обеспечения предусмотрены два процесса описания. Визуализация: Так же, как и описание, процесс визуализации является неиз¬ менным и зависит только от используемого терминала. Речь идет о задержанной (отложенной) визуализации, вызываемой явно с помощью двух примитивов — Отобразить и Стереть. Последний объединяет два процесса: присваивание признака внешнего вида (невидимость), непосредственно визуализация. Отличия этого программного пакета от предыдущего следую¬ щие: процессы визуализации и описания — неявные; структурирование может также выполняться на двух уровнях, но только «статических», т. е. не зависящих от хода выполнения программы; совокупность символов менее сложная, так как используются только два типа элементов (группы точек и группы символов) и не предусмотрены геометрические преобразования; симметрия характеризуется отсутствием описания на уровне групп символов; согласованность достаточно хорошая, поскольку все примитивы обращаются к одним и тем же уровням структуры (фигуры, свя¬ зи), а примитиву Форма присуща некоторая рассогласованность: только этот примитив обращается к уровню сечений; он выража¬ ет морфологию только для точек (разобщенные группы, разорван¬ ные линии и т. д.), объединяет структурирование (путем присвое¬ ния номера связи) и представление; последние два понятия иног¬ да могут быть независимыми. Примитивы IGL. IGL предлагает пользователю пакет из 91 примитива, непос¬ редственно относящегося к процессу синтеза изображений, и 84 служебных примитивов, необходимых для связи с системой (упра¬ вление файлами данных и т. д.). Отметим здесь только несколько общих правил, относящихся к этому пакету. Как следует из самого названия, речь идет скорее о библиоте¬ ке подпрограмм, чем о программном обеспечении. Структурирова¬ ние отсутствует, а процесс визуализации почти целиком возложен На прикладную программу. С другой стороны, последнее замеча¬ 95
ние имеет прямое отношение к независимости от оборудования. Действительно, если можно использовать различные терминалы фирмы Tektronix, то переход от одного к другому в большинстве случаев требует переписывания программы для изменения процес- са и для вызова различных программ. Эта необходимость проявля¬ ется особенно явно, если используется регенерируемое отображе¬ ние (терминалы 4014, 4114) или терминалы с растровой разверт¬ кой (4027, 4112). Кроме того, отсутствует идентификация путем указания. Правда, имеются очень хорошие возможности присваи¬ вания, особенно для морфологических и геометрических признаков, 2D и 3D, для которых предусмотрены многочисленные примитивы. 4.1.2. Влияние алгоритмов удаления невидимых линий Необходимость изучения алгоритмов удаления невидимых ли¬ ний обусловила появление работ [99, 59, 13], в которых осущест¬ влена классификация различных алгоритмов, выделены требуемые для них элементарные операции, проведена их оценка и оптимиза¬ ция. 4.1.2.1. Классификация алгоритмов Если принять за основу классификации алгоритмов типы мор¬ фологических признаков, используемых на входе и возникающих на выходе, то результат классификации может быть представлен приводимой ниже таблицей (в клетках указаны номера ссылок на литературу). Однако эта таблица отражает не только устранение невидимых линий как элементарный оператор композиции, а вооб¬ ще весь процесс, построенный на базе этого оператора. Сравнение Классификация основных алгоритмов по типам морфологических признаков [13| Части види¬ мых контуров Упорядочен¬ ный список многоуголь¬ ников Видимые мно¬ гоугольники Горизонталь¬ ные отрезки Точки Части види¬ мых многоу¬ гольников Видимые от¬ резки Участки по¬ верхностей второго по¬ рядка Выпуклые объекты, со¬ ставленные из плоскос¬ тей Плоские многоугольники [88] [2, 43, ДЗ] [Д4] [80] [5] [Д1] [110] [110] Линейно-разделимые объекты, составленные из плоскостей Плоскости второго по¬ рядка Параметрические поверх¬ ности Функции двух перемен¬ ных [92] [61] [21] [117] [61] 96
алгоритмов показывает, что некоторые публикации описывают только частные методы перебора, в то время как другие представ¬ ляют весь процесс визуализации, в том числе признаков А, Е, G, (jv, Ga и даже операций конструирования (например, сечение по¬ верхностей). 4.1.2.2. Операторы композиции Критическими точками алгоритмов устранения невидимых ли¬ лий являются операторы композиции, поскольку только они отно¬ сятся одновременно ко многим элементам и непосредственно обус¬ ловливают ход выполнения процесса. Используемые операторы композиции управляют главным образом выбором элементов по их расположению относительно данного направления в зависимос¬ ти от морфологических и геометрических признаков. Операторы отличаются друг от друга: типом обрабатываемых элементов, к которым относятся: точки (Z-буфер), компланарные отрезки (Уоткинс), многоугольники; (Ньюэлл и др.), многогранники (Шумейкер); возможной декомпозицией классифицируемых элементов: в про¬ цессе перебора может потребоваться рассечение элементов на под.- элементы (Ньюэлл, Уоткинс); характером результата: упорядоченный список элементов, вы¬ бор одного элемента (максимального или минимального). Большинство алгоритмов использует все более и более тонкие критерии перебора для того, чтобы устранить большую часть за¬ крывающих поверхностей с первых же проходов, а сложное срав¬ нение применять только в последнюю очередь. Операторы перебо¬ ра, действие которых может быть направлено вдоль разных осей, могут сочетаться в различных комбинациях с целью оптимизации процесса. Пример: 1 — предварительный отбор по направлению ох, 2 — предварительный отбор по направлению oz, 3 — окончательный выбор по направлению ох, 4 — окончательный выбор по направлению oz. Автор не стремился описывать внутренние процессы алгоритм мов, а лишь отразил их влияние на общий процесс визуализации. Для более глубокого изучения различных алгоритмов читатель мо¬ жет обратиться к списку литературы в конце книги. Приведем несколько примеров, выбранных из наиболее характ¬ ерных, отчетливо выделив операторы отбора-разделения и опера- еры конструирования и синтеза, позволяющие исходя из началь¬ ного элемента получать множество точек его представления. При¬ менительно к любому алгоритму будем полагать, что наблюдатель- Находится на бесконечном удалении в направлении положительных значений оси z. Такое предположение ни в коей мере не ограничи¬ вает общности, и в следующей главе будет показано, что любая ситуация может быть сведена к этой. 4-47 97/
4.1.2.3. Алгоритм Z-буфера [21] Алгоритм сводится к единственному оператору композиции позволяющему отбирать для каждого пиксела такую точку из все! го изображения, которая наиболее близка к наблюдателю. Одцд часть процесса, относящаяся к синтезу внешнего вида, выполняет, ся для этой точки, другая остается полностью свободной. Данный алгоритм незначительно влияет на процесс визуализации (рис. 50) Точки Видимые точки 4.1.2.4. Алгоритм Уоткинса [111] и ему подобные Этот алгоритм является точной копией способа, используемого при растровой развертке. Сцена как бы разрезается горизонталь¬ ными плоскостями, опирающимися на строки развертки: разрезание Y: пересечение поверхностей с горизонтальной плос¬ костью, исследование видности отрезков, полученных в горизонтальной плоскости в результате этого рассечения, разрезание X: получение точек горизонтального видимого от¬ резка. Для такой организации (рис. 51) требуются функции, которые позволяют определить внешний вид и освещенность в каждой точ¬ ке, иначе говоря, осуществлять М, A, G, Е, Gv, Ga. В простых слу* Рис. 51. Алгоритм Уоткинса m
в вершинах на концах для каждой многоугольника отрезка точки отрезка Рис. 52. Сглаживание по методу Гуро чаях (плоские однотипные поверхности) эти функции зависят толь¬ ко от исходных признаков обрабатываемой поверхности. В других, случаях (аппроксимация сложных поверхностей, текстуры и т. д.) операторы разрезания должны определять признаки новых элемен¬ тов, образованные в зависимости от признаков входных элементов. Этот тип процесса показан на рис. 52 применительно к методу сглаживания, предложенному Гуро [44]. 4.1.2.5. Алгоритм Атертона и Уэйлера [5] В соответствии с этим алгоритмом многоугольные поверхности сцены разделяются для получения совокупности многоугольников* представляющих видимые части (рис. 53). Видимые Рис. 53. Алгоритм Атертона и Уэйлера 4*
С учетом свойств получаемых элементов (многоугольников) синтез признака Ga может быть выполнен после определения вид, зности. Сделанные выше замечания, касающиеся получения инфор, мании о внешнем виде, справедливы также и в данном случае. 4.1.2.6. Алгоритм Ньюэлла и др. [S0] Наиболее интересным отличием этого алгоритма от предыду, щего является введение дополнительного оператора композиции, предназначенного для выделения на каждом шаге такой точки, которая зарегистрирована последней. Эта функция выполняется в неявной форме растровой памятью, где каждое значение, присвоен* ное элементу изображения, будет заменяться значением, зарегист¬ рированным ранее. Из процесса, изображенного на рис. 54, видно, что синтез внешнего вида и признака Ga выполняется как для ви¬ димых, так и для невидимых точек. Отметим также, что если одна и та же сцена должна рассматриваться под разными углами, то Упорядоченные Упорядоченные Многоугольники многоугольники точки Запоминание Рис. 55. .Предварительное разрезание поверхностей
разрезание первичных поверхностей может быть выполнено один раз независимо от точки наблюдения в абсолютных координатах, вязанных со сценой (рис. 55). 4.1.2.7. Алгоритм Шумейкера и др. [92] Если взять из этой публикации только метод, используемый для классификации поверхностей, то увидим, что он подобен опи¬ санному выше с той лишь разницей, что выбор поверхностей вы¬ полняется в два этапа (рис. 56): определение статических приоритетов (независимо от точки наблюдения); определение динамических приоритетов (в зависимости от точ¬ ки наблюдения). Запоминание 4.1.3. Влияние алгоритмов определения теней Тени, отбрасываемые друг на друга предметами сцены, обеспе¬ чивают наблюдателя такой информацией, которая часто оказыва¬ ется весьма полезной при изучении изображения, особенно взаим¬ ного расположения объектов. Более того, «правдоподобие» синте¬ зируемой сцены в значительной степени определяется наличием теней. Воспользуемся классификацией, предложенной в [28], для изложения различных методов получения теней. 4.1.3Л. Получение теней, объединенное с определением вид- ности Этот метод был использован одним из первых [3]. Границы те¬ ней определяются здесь с помощью понятия «показатель невиди¬ мости» [12], которым обозначают число многоугольников, заслоня¬ ющих точку. Таким образом, грань считается видимой, если все ее точки обладают показателем невидимости, равным нулю. Зате¬ ненные поверхности определяются в процессе горизонтальной раз- Нертки изображения путем вычисления показателя невидимости в Наждой вершине, наблюдаемой со стороны источника света (пред- Нарительное вычисление), для нахождения затененных граней. 101
Рис. 57. Метод двойной развертки Во втором алгоритме, опубликованном в [Д2], применяется по¬ добный метод, но с одним существенным преимуществом, заклю¬ чающимся в использовании операции удаления невидимых час¬ тей, которая выполняется уже в процессе горизонтальной разверт¬ ки изображения (алгоритма Уоткинса). На рис. 57 показаны две развертки: под действием первой происходит преобразование трехмерного макета в результирующее изображение, вторая преобразует таким же образом трехмерную структуру теней в такую информацию, которая объединяется с предыдущей для определения окончательных характеристик затененности и видности в каждой точке вдоль строки развертки. Алгоритм, кроме того, является более быстрым, так как в кем сравниваются только пары многоугольников, которые могли бы за¬ крывать друг друга от источника света. Это действие выполняется путем проецирования всех многоугольников на поверхность сферы, центр которой совмещен с источником света, и проверки их взаим¬ ного перекрытия. 4.1.3.2. Получение теней путем двукратного определения в по¬ ноет и Главная идея этого метода заключается в использовании алго¬ ритма удаления невидимых линий для определения тех частей объектов, которые «видны» источнику света, т. е. тех, которые не находятся в тени. Однако алгоритм дает в результате не изобра¬ жение, а структуру, которая может быть снова введена в этот же или другой алгоритм для определения тех частей, которые дейст¬ вительно видны с точки наблюдения. Количество алгоритмов, ко¬ торые могут быть использованы для первого анализа, значительно сокращается. В [28] предлагается решение, объединяющее рекурсивный под¬ ход Кларка [23] и метод сечения Сазерленда [98]. В [78] предложен алгоритм, применимый только к выпуклым, многогранникам. Его авторы используют метод, основанный на 102
Вид со стороны источника света Вид со стороны наблюдателя сечениях, которые видны со стороны источника света, и построч¬ ную развертку для определения видимых поверхностей (рис. 58). Алгоритм Атертона и др. [6] также основан на сечениях любых многогранников. Методика его проста: первый этап — вид со стороны источника света: определение ос¬ вещенных многоугольников (или их частей) и добавление этой ин¬ формации к первоначальной структуре; второй этап — вид с точки наблюдения: определение действи¬ тельно видимых многоугольников (или их частей). Первый этап не зависит от положения наблюдателя и поэтому выполняется однократно в случае, когда источник света единствен¬ ный и неподвижный. При нескольких источниках процедура столь же проста, но алгоритм выполняется отдельно для каждого из источников. 4.1.3.3. Получение теней от сложных поверхностей Поскольку для представления элементов макета используются Не только плоские поверхности, необходимость вычисления теней ставит трудноразрешимые задачи исследования пересечений про¬ странственных тел. Время вычисления становится настолько боль¬ шим, что оно оказывается неприемлемым для большинства приме¬ нений. В работе [115] предложен метод, основанный на использова¬ нии памяти и позволяющий выполнять эту обработку как для мно¬ гогранников, так и для неплоских поверхностей путем двукратно¬ го определения видности. Вычисление тени выполняется в два этапа с помощью растро- Ной памяти, в которой записана глубина каждой точки (метод 2-буфера): ЮЗ
Рис. 59. Использование двух Z-буферов 1 — получение в Z-буфере изображения, которое видно от ис¬ точника света; при этом вычисляется только глубина; 2 — получение во втором Z-буфере изображения, которое вид¬ но с точки наблюдения. Каждая точка, полученная таким спосо¬ бом, является результатом преобразования координат (Хр, Yp, Zp) первого изображения. Точка считается неосвещенной, если она удалена от источника света на большее расстояние, чем точка, за¬ писанная в первом Z-буфере (Zp>z). Как и для многоугольных поверхностей, первая часть алгорит¬ ма не зависит от точки наблюдения и легко может быть использо¬ вана для случая нескольких источников света путем задействова¬ ния Z-буфера для каждого из них. Время вычисления с учетом теней приблизительно в 2 раза больше, чем в случае представления изображения без теней. Про¬ цесс, схематически показанный на рис. 59, иллюстрирует возмож¬ ность его параллельного вычисления. 4.2. ПРОГРАММНО-УПРАВЛЯЕМЫЕ ПРОЦЕССЫ В предыдущих подразделах было показано, что параметры, вли¬ яющие на ход выполнения процесса визуализации, весьма много¬ численны и пользователь может ими управлять с большим трудом. Внутренняя организация программного обеспечения, алгоритмов удаления невидимых линий, определения теней находится в веде¬ нии системы, изменять которую пользователь никак не может, Кроме того, пользователь вынужден сам организовывать весь про¬ цесс и следить за тем, чтобы операторы синтеза и другие выполня¬ лись в нужной последовательности. Такая ситуация характерна, к сожалению, для большинства современных систем. Это ограничение является, по существу, следствием другого не¬ достатка, присущего управлению структурами графических дан¬ ных. Наиболее типичным случаем является такой, где программ¬ ные средства не хранят никакой информации, сообщаемой при¬ кладной программой, а после преобразования только передают ее аппаратными средствами. При такой организации управление про¬ цессом может быть осуществлено только самим пользователе Д 104
Программное обеспечение содержит не более одного блока описа- ^я и визуализации, в котором собраны основные операторы, а блоки связи и управления находятся в ведении пользователя, ко¬ торый должен изучить их и включить в свою программу. Такая ра¬ бота зачастую превосходит уровень компетентности программи¬ стов прикладных задач, для которых синтез изображений обычно бывает средством, а не целью. Эти трудности кажутся несопоставимыми с современной эво¬ люцией техники синтеза изображений и информатики в целом. По¬ добно тому как теперь уже больше нет необходимости подробно описывать процесс вычисления значения арифметического выра¬ жения, так сейчас не нужно описывать детально весь процесс ви¬ зуализации. Ниже будет рассмотрена система программного обеспечения ♦CLOVIS, разработанная в Лаборатории информатики и приклад¬ ной математики в Гренобле, непосредственно вытекающая из по¬ нятий, изложенных в гл. 1 книги. Система содержит блок управ¬ ления, который следит за ходом выполнения процессов визуализа¬ ции и описания признаков, относящихся к классам М, A, G, Е; блок «связи, управляющий структурой графических данных (признаки 1 и S), а также блок описания и визуализации, операторы которо¬ то приведены в следующей главе. 4.2.1. Блок связи Ниже будут изложены свойства структуры графических данных, гиспользуемой в системе CLOVIS. Упрощенная структура целиком "управляется специальным блоком — блоком связи. Управление этим «графическим файлом», как и любой структурой, состоит из .действий, позволяющих выполнять: структурирование, просмотр, назначение, поиск. Блок связи должен также выполнять: защиту признаков, кото¬ рые ему доверены; распространение прикладной программы на все элементы, включая те, которые порождены программными или ап¬ паратными средствами. 4.2.1.1. Древовидная структура Мощность и гибкость системы существенно зависят от исполь¬ зуемой структуры. Поэтому выбору структуры уделяется особое внимание. В предыдущих главах были рассмотрены два уровня структу¬ ры: уровень макета и уровень элемента. Так, в первом приближении графический файл может быть ;представлен в древовидной форме, схематически изображенной на рис. 60. Отметим, что речь действительно идет о настоящей древовидной структуре, поскольку если один и тот же объект встречается в не- 105
скольких макетах, то в каждом из них независимо будет создан соответствующий элемент. Этих двух уровней структуры в большинстве случаев недоста¬ точно для отражения иерархических отношений, существующих в исходной сцене. Зачастую объекты, особенно в «реалистичных» сценах, должны быть организованы естественным образом в соот¬ ветствии с геометрическими понятиями — близость, соединение, включение или функциональными — единство внешнего вида, един¬ ство движения и т. д. Эти отношения можно выразить, продол¬ жив древовидную структуру еще дальше и распространив ее на уровень элементов (рис. 61). Главный недостаток такой структуры заключается в том, что единственный вариант не может отвечать потребностям всех клас¬ сов задач. В то же время не следует уподоблять эту структуру та¬ кой, которая будто бы определяется прикладной программой, где выражаются ее собственные функциональные отношения. Здесь речь идет о графической структуре макета, а не о структуре сцены, для которой выбор, естественно, диктуется самой задачей. 4.2.1.2. Достоинства древовидной структуры Использование древовидной структуры не является новинкой. За последние годы появились многочисленные работы, которые ка¬ саются почти исключительно использования свойств деревьев для 106
оптимизации процесса визуализации, особенно для выполнения се¬ лений и удаления невидимых линий [23, 39, 90]. Однако в литературе почти не затрагиваются вопросы, относя¬ щиеся к описанию структуры и управлению ею, как и преимуще¬ ства, которые дает ее применение для множества систем. Представ¬ ляется, что можно было бы эффективно использовать свойства древовидного разветвления для всех процессов системы. Можно назвать несколько основных достоинств упрощенной древовидной структуры: 1. Число уровней не ограничено, что отвечает потребностям за¬ дач, связанных со сложными макетами. Большинство графических программных средств ограничивается только двумя уровнями, т. е. графическое структурирование и его разумное использование воз¬ лагается на прикладную программу. Это очень существенный не¬ достаток, вызывающий затруднения у программиста, для которого графический аспект решения конкретной задачи часто бывает вто¬ ростепенным, вспомогательным. 2. Любые операции могут быть применены ко всем узлам дере¬ ва, что обеспечивает прекрасную согласованность системе. Отсут¬ ствующая в других программных средствах, согласованность при¬ дает огромные возможности операциям, для вызова которых не нужно знать ни структуру поддерева, узел которого является кор¬ нем дерева, ни находящиеся там элементы. Границы применения различных операций будут рассмотрены в следующих подразде¬ лах. 3. Признаки, содержащиеся в графическом файле, могут «объе¬ диняться» в соответствии со структурой. Например, геометричес¬ кие преобразования (сдвиги, повороты и т. п.) могут относиться ко всем поддеревьям, исходящим из того узла, к которому они от¬ носятся. Законы объединения также будут рассматриваться в сле¬ дующих подразделах. 4. Возможности интерактивного взаимодействия значительно возрастают, поскольку простым указанием на экране можно сооб¬ щать прикладной программе не только признак идентификации указываемого элемента, но и подструктуру, в которую он входит. Признаки могут быть запрошены и вновь непосредственно исполь¬ зованы для вызова процесса, который должен быть применен к этой подструктуре. 5. С помощью древовидной структуры может быть выполнена защита графических данных. В часто встречающихся случаях, когда изображение делится на модули со своими графическими по¬ требностями, каждому модулю можно предоставить свое собствен¬ ное поддерево с ограниченными пределами действия, которым он управляет самостоятельно. Эта особенность построения свободна от классических граничных эффектов, возникающих при исполь¬ зовании линейной структуры. Так, команда на общее стирание, ко¬ торая могла бы быть выдана одному из этих модулей, касается только той подструктуры, которая с ним связана. 107
6. Процессы могут быть оптимизированы путем разумного i1(N пользования древовидной структуры. Некоторые из этих возмол^ ностей будут изложены при рассмотрении операторов описания й визуализации. 4.2.1.3. Механизм присвоения имени Первая задача, которая возникает при разработке блока связи, касается доступа к различным узлам дерева. Чтобы их можно бы¬ ло отличать друг от друга, они должны быть поименованы с помо¬ щью закодированных имен. Структура дерева при этом может быть выражена набором синтаксических правил для распознавания имен. Возможны два типа кодирования: цифровое, при котором узел может быть идентифицирован чис¬ лом. Этот тип кодирования (используемый, например, в GRIGR1) хорошо согласован с системами, имеющими один или два уровня структуры, и обеспечивает очень быстрое декодирование. Для си¬ стем со структурами из большого числа уровней цифровое кодиро¬ вание становится неудобным и не позволяет реализовывать свой¬ ства, обеспечиваемые синтаксическими правилами; алфавитно-цифровое, которое требует большего места и синтак¬ сического анализа, более дорогостоящего по сравнению с преды¬ дущим вариантом кодирования, но обладает более высокой четко¬ стью и большей гибкостью в использовании без ограничения числа разрешенных уровней. В системе CLOVIS каждый узел обеспечивается идентификато¬ ром, содержащим не более восьми символов. Корень дерева (на¬ чальный узел) обозначается пустым идентификатором. В настоящее время для обозначения узлов применяются сле¬ дующие имена: относительные: выражения путей, по которым можно следовать при выходе из какого-либо узла, используемого в качестве началь¬ ного; абсолютные: выражения путей, по которым можно следовать при выходе из начального узла (корня) массива графических дан¬ ных; глобальные: выражения, пригодные одновременно для несколь¬ ких путей; индексные: выражения идентичных поддеревьев,, различаемых по индексу. 4.2.1.4. Синтаксические правила Разрешенные синтаксические правила зависят от операций, к которым они относятся. Возможны различные варианты синтак¬ сиса в зависимости от того, идет ли речь о выражениях для кон¬ струирования структуры или ее просмотра. Конструирование Синтаксис: 108
(структура): = (подструктуры) {«,»(подструктура>} * (подструктура): = (идентиф.){«[»(индексы>«]»} {«(»(структура>«)»} (индексы): = (гранич. знач.){«:»(гранич. знач.)} (границ, знач.): = (—99...99>||«!» Первый пример мельница [1:2] (корпус (стены, крыша), крылья [1:4]) Этот список выражает конструкцию из двух мельниц, пред¬ ставленных крупными деталями, как это показано на рис. 62. Второй пример велосипед [/:/] (рама (седло, руль), колесо [1:2] (обод, спи~ цы)) Этот список выражает неопределенное количество велосипедов (от 1 до 99); структура представлена на рис. 63. Обращение к единственной вершине Синтаксис: (простой список):—{(ветвь)} 0 Рис. 62. Первый пример Рис. 63. Второй пример 109
<ветвь): = (идентификатор) {«[»<индекс>«]»} {«(» <ветвь)«)»} (индекс): = (—99. ..99) Примеры мельница [2] (крыло [5]) обозначает узел, отмеченный циф. рой (1) на рис. 62. велосипед [17] (рама (руль)) обозначает узел (1) на рис. 63. Обращение к нескольким вершинам Синтаксис: (множественный список): = «>»|«*»| (ветвь) {«,»(ветви>} * (ветвь): = (идентиф.){«[»(индексы>«]»} {«(»(множественный список>«)»} (индексы): = (граничн. знач.){«:»(граничн. знач.)} (граничн. знач.): = (—99...99)|«*» Символ «*» означает ссылку на все варианты значений индек¬ сов или на все ветви, выходящие из узла. Символ «>» означает ссылку на все поддеревья, выходящие •мз узла. Примеры мельница [У] (корпус (крыша), крылья [2:*]) обозначает уз¬ лы, отмеченные цифрой (2) на рис. 62; велосипед \*:17] (колесо\*](*), рама) обозначает узлы, от¬ меченные цифрой (2) на рис. 63, для всех велосипедов с ин¬ дексами от 1 до 17. 4.2.1.5. Примитивы структурирования Примитивы блока связи, которые используются блоком управ¬ ления, придаются также прикладной программе. Кроме подпро¬ грамм присваивания и опроса этот блок обеспечивает пользова¬ теля еще двумя функциями, обеспечивающими моделирование структуры макета. Конструирование структуры выполняется с помощью функции СТРУКТУРА, дающей на выходе адрес создаваемой структуры. СТРУКТУРА ((структура)) : (ссылка) (ссылка) есть указатель, который содержит адрес начального уз¬ ла (корня) структуры. Примеры А^-СТРУКТУРА («мельница [1:2] (корпус (стены, крыша), крылья [1:4])») создает структуру, показанную на рис. 62, и присваивает переменной А значение, соответствующее значению своего указателя. В^-СТРУКТУРА («мельница[*]) (крыло[*]) ») создает неоп¬ ределенное число мельниц, каждая из которых содержит не¬ определенное число крыльев, и передает свой указатель пере¬ менной В. В случае, когда все узлы снабжены индексами, функция СТРУКТУРА определяет единственный узел. Нижнее и верхнее значения индексов запоминаются для каждого узла. НО
Идентификация подструктуры графического файла выполняет- сЯ с помощью рекурсивной функции, основанной на синтаксисе подлежащих анализу списков символов. Рассмотрим два случая: простая ссылка и множественная ссылка. Вызов операции анализа выполняется с помощью приводимой ниже функции, вычисляющей на выходе адрес начального узла описываемой подструктуры. ИДЕНТИФИКАЦИЯ ((простой список)) : простая ссылка ИДЕНТИФИКАЦИЯ ((множеств, список)) :множеств. ссылка Эта операция проверяет синтаксические и семантические ошиб¬ ки. Если ошибка обнаружена, то на пульт оператора подается со¬ общение для немедленного исправления. Поддерево,'соответствую¬ щее списку символов, по мере синтаксического анализа развет¬ вляется в соответствии с исходным деревом путем добавления необходимых списков. Результатом (выходным значением) функ¬ ции является адрес начального узла. Пример А^-ИДЕНТИФИКАЦИЯ («мельница [*] (корпус, крыло [2:3])») Поддерево, выделенное из первичной структуры, отмечено жир¬ ными линиями на рис. 64. Поскольку ссылки относятся к узлам* обозначенным индексами, анализ может вызвать отсоединение от исходного дерева идентичных поддеревьев. Пример 1) А^-СТРУКТУРА («велосипед» [1:10] (колесо [1:2] (обод, спица))») Дерево, составленное в соответствии с этим выражением, изоб¬ ражено на рис. 65. 2) В^-ИДЕНТИФИКАЦИЯ («велосипед [3:6] (колесо [1] (обод), колесо [2] (спица))») В соответствии с этим выражением произошло расщепление дерева, а выделенное поддерево показано жирными линиями на рис. 66. Рис. 64. Поддерево, выделенное из исходной структуры Рис. 65. Исходное дерево 111
Рис. 66. Результирующее дерево после расщепления Контекстное определение КОНТЕКСТ (простая ссылка) Этот примитив позволяет неявно определить новый контекст для любой подпрограммы, основываясь на ее окружении. Кон¬ текстное определение выполняется путем идентификации узла, который станет новым начальным узлом (корнем), обозначенным <простая ссылка). В него вкладывается новый контекст, а к пре¬ дыдущему возвращаются с помощью оператора: КОНЕЦ КОНТЕКСТА Такая простота создает ряд преимуществ: 1. Списки символов, служащие для идентификации узлов, мо¬ гут быть сокращены. Так, если интересоваться только поддере¬ вом, выходящим из узла, который обозначает раму третьего ве¬ лосипеда в примере, приведенном на рис. 63, то достаточно объя¬ вить следующий контекст: КОНТЕКСТ («велосипед [3] (рама)») Доступ к рулю осуществляется после этого простым упомина¬ нием «руль». Оператор КОНЕЦ КОНТЕКСТА позволяет снова об¬ ратиться к предыдущему контексту, которым в этом случае яв¬ ляется весь объем (файл) графических данных. 2. Обработка признаков, связанных с вышерасположенными узлами, выполняется один раз во время контекстного определения, что существенно сокращает время вычислений. В примере, при¬ веденном выше, признаки, связанные с узлами велосипед [3] и рама, вычисляются во время определения и на всем протяжении контекста. 3. Защита признаков, как и определение области действия опе¬ раций, может управляться прикладной программой (или блоком управления) путем подчинения вызываемой подпрограммы данно¬ му контексту. Возможность послойного наложения контекстов поз¬ воляет также вычислять графическую структуру на основе струк¬ туры прикладной программы, реализуя тем самым преимущества структурного и модульного (агрегатного) программирования, как показано в следующем примере. 112
Основная программа начало НАЗНАЧИТЬ (СТРУКТУ¬ РА («А, В»)) SP1 (ИДЕНТИФИКАЦИЯ («А»)) SP2 (ИДЕНТИФИКАЦИЯ («В»)) конец Процедуры процедура SP1 (парам) КОНТЕКСТ (парам) НАЗНАЧИТЬ (СТРУКТУ¬ РА («С, D, Е»)) КОНЕЦ КОНТЕКСТА конец SP1 процедура SP2 (парам) КОНТЕКСТ (парам) НАЗНАЧИТЬ (СТРУКТУ¬ РА («F, G»)) КОНЕЦ КОНТЕКСТА конец SP2 4. Реализация рекурсивных операций существенно упрощает¬ ся за счет послойного наложения контекстов, как будет показано в следующем подразделе. Просмотр структуры или выделенной подструктуры после ана¬ лиза выполняется рекурсивно с помощью примитива ПРОСМОТР. Необходимо отметить, что это действие не выдается прикладной программе, а используется только блоком управления. ПРОСМОТР (множ. ссылка, действие-л, действие-н, действие-в) множ. ссылка — это адрес подструктуры, подлежащей про¬ смотру: определяется функцией ИДЕНТИФИКАЦИЯ; действие-л — это действие, которое должно быть выполнено Над листьями (л) дерева; действие-н — это действие, которое должно быть выполнено над Узлами, просматриваемыми в нисходящей (н) последовательности; действие-в — это действие, которое должно быть выполнено над Узлами, просматриваемыми в восходящей (в) последовательности. Эта подпрограмма просматривает дерево и вызывает непосред¬ ственно Для каждого узла соответствующее действие, придавая ему в качестве параметра адрес этого узла. Просмотр выполня¬ ется всегда исходя из начального узла (корня) контекста. 113
Пример На примере рис. 66 примитив ПРОСМОТР (В, действие-л, действие-н, действие-в) порождает следующую последовательность вызовов: действие-н (велосипед (3:6)) действие-н (колесо (1)) действие-л (обод) действие-в (колесо (1)) действие-н (колесо (2)) действие-л (спица) действие-в (колесо (2)) действие-в (велосипед (3:6)) 4.2.1.6. Внутреннее управление признаками Внутреннее представление структуры должно давать возмож¬ ность применять описанные выше примитивы. При этом возникает несколько задач: с одной стороны, структура данных должна быть упрощена и, следовательно, никакое моделирование признаков не может быть запланировано заранее; с другой стороны, потребности процессов в промежуточном, за¬ поминании неизвестны, т. е. число признаков, которые необходи¬ мо запомнить для каждого узла, также не определено; наконец, отдельные признаки, относящиеся к макету (Е, Gv, Ga) (т. е. подструктура, а не единственный узел), и другие мо¬ гут быть одновременно присвоены нескольким узлам. Общая организация представлена на рис. 67. Число призна¬ ков, связанных с каждым узлом, ограничено шестью (плюс I и 5)* Для каждого признака: тип выражает класс и тип признака, Признак S Признак! Другие признаки Рис. 67. Внутреннее моделирование данных 114
Задание Программное обеспечение Программа выполнения Блок связи задания Пер--''.*енн признаки Адрес Адреса переменных признаков Постоянные признаки Рис. 68. Постоянные и переменные признаки число узлов выражает число узлов (т. е. элементов), исполь¬ зующих этот признак, длина выражает число слов, используемых для моделирова¬ ния информации, определяющей признак. Понятие о константах и переменных. Как и любая другая за¬ дача, синтез изображений имеет дело как с переменными, так и с постоянными элементами, т. е. такими, признаки которых ос¬ таются неизменными на протяжении всего времени их существо¬ вания. Однако некоторые элементы могут быть постоянными с точки зрения геометрии, но переменными с точки зрения внеш¬ него вида или морфологии и т. д. Другими словами, элементы могут быть определены с помощью признаков постоянных и/или переменных. Чтобы минимизировать обмен между прикладной программой и системой, следует предусмотреть для каждого элемента: постоянные признаки, которые сохраняются системой и осво¬ бождают, таким образом, прикладную программу; переменные признаки, которые сохраняются самой прикладной программой и которыми система интересуется всякий раз, когда Это необходимо. Признаки I и S всегда рассматриваются как постоянные, да¬ же если возможно их изменение (рис. 68). 4.2.1.7. Примитивы назначения, поиска и разрушения Назначение. Необходимо напомнить, что представленные здесь примитивы не предназначены для пользователя, а лишь участ¬ вуют в работе блока управления во время выполнения процессов. Назначение выполняется с помощью примитива. НАЗНАЧИТЬ (простая ссылка, тип-признак, адрес-инфо, пост/перем) 115
При этом реализуются следующие действия: создание описателя признака и инициализация, если речь идет о константе, то копирование данных, иначе^ запись адреса. Первое информационное слово должно выражать объем данных; признак приписывается вершине, которая определена простой ссылкой. Пример 1 Если признак относится к типу «структура», то адрес-инфо есть адрес структуры, предназначенный для листьев, упомянутых в простой ссылке (рис. 69). структ-а^-СТРУКТУРА («мельница [*] (крылья [1*4])») структ-Ь<-СТРУКТУРА («арматура, плоскость») НАЗНАЧИТЬ (структ-а, «структура», структ-Ъ, конст) Пример 2 Для признаков других типов существуют функции, позволяю¬ щие изменять каждый из имеющихся типов с тем, чтобы разгру¬ зить прикладную от этих действий. ободч-ОКРУЖНОСТЬ (х0, уо, z0) (моделирует окружность и сообщает адрес результата); НАЗНАЧИТЬ (ИДЕНТИФИКАЦИЯ («велосипед [3] (колесо [1] (обод))»), «тип-окружность», обод, перем) Последний примитив отображает морфологический признак типа, указанного в «тип-окружность» рассматриваемого узла. Учи¬ тывая, что речь идет о переменном признаке, его изменение мо¬ жет осуществляться без нового назначения. ободч-ОКРУЖНОСТЬ (Xi, yif Zi) Изменение изображений будет происходить в момент ближай¬ шего по времени выполнения процесса визуализации, т. е. немед- 116
ленно, если процесс относится к типу непосредственных, или при подаче явной команды. Дооиск. Эта функция позволяет восстанавливать адрес признака., связанного с элементом структуры. ИНФО (простая ссылка, тип-признак): адрес-инфо Здесь простая ссылка относится обязательно к единственному элементу. разрушение признаков РАЗРУШИТЬ (простая ссылка, тип-признак) Этот примитив позволяет разрушить признак типа «тип-приз¬ нак», связанный с узлом, указанным в простой ссылке. Адрес признака в описателе узла разрушается. Поле число узлов опи¬ сателя признака является определяющим: если оно становится равным нулю, то признак также разрушается и пространство па¬ мяти восстанавливается. В случае, когда признак относится к типу «структура», все поддеревья, выходящие из узла, отмеченного простой ссылкой, разрушаются. Маркировка узлов. Оптимизация процесса, как будет видно из дальнейшего, требует определить, каковы были те изменения, ко¬ торые имели место в контексте во время предыдущего рассмот¬ рения. С этой целью блок связи держит наготове для каждого узла несколько индикаторов, позволяющих выражать состояние каждого признака: 1 — не существует; 2 — неизменившийся; 3 — изменившийся; 4 — изменившийся в нисходящем поддереве. Логические функции позволяют определить состояние каждо¬ го признака в данной вершине. СУЩЕСТВ: отмечает, существует признак или нет, ИЗМЕН: отмечает, был ли признак изменен непосредственно (состояние 3) или косвенно (состояние 4). 4.2.2. Блок управления Главная задача этого блока — управление последовательно¬ стью выполнения процессов, связанных с примитивами, которые предлагаются основной системой программного обеспечения. Принимая во внимание, что изучение процессов, соответствую¬ щих всем возможным ситуациям, выходит за рамки данной кни¬ ги, ограничимся рассмотрением общих задач и решениями, ко¬ торые могут быть для них найдены. На рис. 70 показано расположение программных средств меж¬ ду прикладной программой (сверху) и синтезатором (снизу), об¬ разованным более простыми программными средствами или реа¬ лизованным непосредственно в аппаратуре. Блок управления, о Котором идет речь, является блоком основного программного обес¬ печения. Элементарные операторы, которыми располагает этот блок для: Пополнения четырех главных процессов, таковы: операторы блока связи, представленные функциями и подпро¬ граммами, которые имеются в его распоряжении: 117
Основные Нижележащий Рис. 70. Общая организация СТРУКТУРА, ИДЕНТИФИКАЦИЯ, КОНТЕКСТ, КОНЕЦ КОНТЕКСТА, ПРОСМОТР, ОТОБРАЗИТЬ, ИНФО, РАЗРУШИТЬ, СУЩЕСТВ, ИЗМЕН; элементарные операторы описания и визуализации, часть ко¬ торых будет изучаться в следующей главе; элементарные операторы нижележащего синтезатора, т. е. команды: ПРИСВОИТЬ-НИЖНИЙ, ОПРОСИТЬ-НИЖНИЙ, ВИЗУАЛИЗИРОВАТЬ-НИЖНИЙ, ОПИСАТЬ-НИЖНИЙ. Эти команды непосредственно вызывают процессы нижнего синтезатора, определенные для типов элементов, относящихся к более низким уровням структуры, чем те неструктурированные элементы, которые обрабатываются на основном уровне. Если исключить функции моделирования других признаков, та¬ ких как I и S, то примитивы, предоставляемые пользователю, бу¬ дут следующие: СТРУКТУРА, ИДЕНТИФИКАЦИЯ, КОНТЕКСТ, КОНЕЦ КОНТЕКСТА, ПРИСВОИТЬ, ОПРОСИТЬ, ВИЗУАЛИЗИРОВАТЬ, ОПИСАТЬ. 118
4.2.2.1. Присваивание признака Процесс присваивания признака (атрибутирования) достаточ¬ но прост, поскольку непосредственно использует операторы, обес¬ печиваемые блоком связи. Он может быть вызван примитивом ПРИСВОИТЬ ( множ. ссылка, тип-признак, адрес-инфо, пост/'перем) В результате этого действия выполняется просмотр структу¬ ры, обозначенный множ. ссылкой (определенной путем ИДЕН¬ ТИФИКАЦИИ), и происходит назначение признака листьям структуры и маркирование вышележащих узлов (состояние 4) (рис. 71). Последнее используется процессом визуализации. 4.2.2.2. Опрос Пользователю предоставляется следующая функция: ОПРОСИТЬ (простая ссылка, тип-признак): адрес-инфо Этот процесс обращается непосредственно к функции ИНФО блока связи. Никакой дополнительной обработки при этом не требуется. Разумеется, должны быть запрошены только те приз¬ наки, которые были записаны в памяти. 4.2.2.3. Визуализация ВИЗУАЛИЗИРОВАТЬ (множ. ссылка, процесс) Процесс, вызванный этим примитивом, выполняет просмотр Дерева, обозначенного множ. ссылкой, для того, чтобы опреде¬ лить, какие признаки были изменены (или разрушены) с момен¬ та последней визуализации. Заново вычисляются только изме¬ ненные данные. Конечной целью обработки является передача Нижележащему синтезатору признаков для каждого элемента, ко- т°рые необходимо ему для приведения изображения в надлежа¬ щий порядок. Этот процесс использует главным образом прими- тИвы ПРИСВОИТЬ-НИЖНИИ и ВИЗУАЛ ИЗИРОВАТЬ-НИЖ- НИИ. 119
4.2.2А. Явное описание Все признаки, предназначенные для одного элемента, могут быть также описаны интерактивным методом. Вызов процесса описания выполняется с помощью примитива ОПИСАТЬ (множ. ссылка, тип-признак, процесс) Различные процессы позволяют использовать несколько раз. личных методов, или различных устройств, для описания призна¬ ков одного и того же типа. Если процесс не был помечен, то вы¬ бор остается за нижележащим синтезатором, который сам может предоставить оператору право выбора в момент описания. Используются следующие операторы: ОПРОСИТЬ-НИЖНИЙ г использование процессов описа- ОПИСАТЬ-НИЖНИЙ I ния нижележащего синтезатора; Кроме того, можно различать две большие группы процессов: описание путем конструирования и описание с помощью ссылок. В первом случае признак целиком конструируется оператором с помощью имеющихся в его распоряжении устройств ввода. На¬ пример, конструирование поверхности выполняется путем рисова¬ ния ее контура на цифровом планшете. В случае описания с помощью ссылок в качестве признака принимается признак элемента, обозначенного пользователем на экране. Если рассматриваемым признаком является идентифика¬ ция, то речь идет о простой идентификации (отождествлении) путем указания. Если же речь идет о другом признаке, то отож¬ дествление базируется на поиске в структуре данных. Параметр множ. ссылка представляет множество элементов, которые могут быть «обнаружены» путем указания и, следовательно, должны быть визуализированы. 4.2.2.5. Неявное описание Способ неявного описания представляет очень большой инте¬ рес, поскольку обеспечивает весьма совершенные возможности интерактивного взаимодействия. При этом способе описание не вызывается пользователем, а выполняется систематически каж¬ дый раз, когда признак является неопределенным или неполным. Команда неявного описания вызывается в тех случаях, когда для атрибутирования нет никакой информации. ПРИСВОИТЬ ( множ. ссылка, тип-признак, 0 , пост/перем) Процесс неявного описания эффективно используется при ви¬ зуализации: первый раз только для атрибутирования констант й 120 ВИЗУАЛИЗИРОВАТЬ НАЗНАЧИТЬ ИНФО ПРОСМОТР { использование структуры данных; преобразование множ. ссылки в простую ссылку
каждый раз — для переменных признаков. Такая простота обла¬ дает двумя главными достоинствами: ограждает прикладную программу от управления описанием, которое может быть целиком поручено программным средствам; позволяет выполнять описание непосредственно в момент ви¬ зуализации и выгодно использовать, таким образом, сведения, доставляемые визуализируемым элементом. Оператор может, сле¬ довательно, обозначать точки контакта или соединения между различными элементами либо просто размещать описываемый элемент по отношению к элементам, отображенным ранее. Понятие неявного описания расширяется также за счет приз¬ нака идентификации. С этой целью различные синтаксические ка¬ тегории, которые могут встречаться при отождествлении, заме¬ няются символом «?». Пример отожд.-^-ИДЕНТИФИКАЦИЯ («велосипед» [?] (колесо [2], рама (?))») Во время выполнения этого опознавания система вызывает команды идентификации, необходимые для заполнения неизвест¬ ных ссылок. Чтобы упростить указание элементов, програм¬ мные средства в каждый момент времени обозначают уровень, с которым имеет дело в этот момент консоль оператора. В вышеприведенном примере могут быть представлены два случая: 1) если оператор указывает седло третьего велосипеда, то тем самым он удовлетворяет команду идентификации; 2) если он указывает, например, одно из двух колес третьего велосипеда, то он удовлетворяет только часть команды и вызы¬ вается новая идентификация, начиная с опознания: велосипед [3] (колесо [2], рама (?)) 4.3. ЗАКЛЮЧЕНИЕ Сводная таблица примитивов показывает сходство между дву¬ мя уровнями. Только выбор более сложной структуры на уровне главного программного обеспечения оправдывает присутствие до¬ полнительных примитивов в блоке связи. Эти примитивы, кото¬ рые позволяют моделировать признаки идентификации и структу¬ ры, необходимы в тех случаях, когда требуется полностью осво¬ бодить пользователя от изучения внутреннего представления. Что касается операторов блока визуализации и описания, тс было бы скучно и малоинтересно давать их полный список и ло¬ кализацию, учитывая постоянную эволюцию этих блоков и силь¬ ные зависимости, существующие между различными оператора¬ ми. Наоборот, представляется важным изложить лишь функцио¬ нальный аспект данных операторов с помощью некоторых процес¬ сов визуализации и описания, выбранных среди наиболее орнгп-
Сводная таблиц? нальных или наиболее соответствующих тому, чтобы оценить ха¬ рактеристики и качество получаемых результатов. Следующая глава целиком посвящена функциональному аспекту. Глава 5. ФУНКЦИОНАЛЬНЫЙ АСПЕКТ: ОПЕРАТОРЫ ОПИСАНИЯ И ВИЗУАЛИЗАЦИИ Вначале напомним о шести классах информации, которые не¬ обходимы в процессе синтеза изображения: Идентификация (I) Морфология (М) Внешний вид (А) Геометрия (G) Освещение (Е) Структура (S). В предыдущей главе были перечислены факторы, влияющие на порядок выполнения процессов синтеза признаков М, A, G, Е, и говорилось об оптимальном использовании признаков I и S* Сейчас рассмотрим некоторые наиболее характерные описания и визуализации, связанные с признаками М, A, G, Е. Для каждого из этих четырех классов будем исследовать, с одной стороны,
додели и методы описания, а с другой стороны — операторы вос¬ произведения и визуализации. В данном обзоре будут приведены лримеры наиболее простых операций, а многочисленные библио¬ графические ссылки позволят заинтересованному читателю позна¬ комиться с более сложными методами. 5.1. ГЕОМЕТРИЧЕСКИЕ ОПЕРАТОРЫ 5.1.1. Описание и моделирование Классические геометрические преобразования (сдвиги, пово¬ роты, гомотетия) описываются с помощью хорошо известных ма¬ тематических моделей, основанных на использовании матриц. Од¬ нако большое число точек, из которых обычно состоит изобра¬ жение, потребовало разработки специфических методов, отвечаю¬ щих потребностям декомпозиции и оптимизации вычислений. Наи¬ более распространенным является метод однородных (гомоген* ных) координат. 5.1.1.1. Однородные координаты В основе этого метода лежит представление о том, что каж¬ дая точка в N-мерном пространстве может рассматриваться как проекция точки из (N+1)-мерного пространства. Так, точка на плоскости с координатами (х, у) может рассматриваться как проекция точки с координатами (wx, wy, w) из пространства 3D» где w может принимать любое значение. Случай w=l соответ¬ ствует координатам, которые называют «нормализованными»: (х, у, 1). Точно так же точка в пространстве 3D представляется четырьмя составляющими (wx, wy, wz, w). Представление матриц геометрических преобразований с по¬ мощью однородных координат не ново, и в области машинной графики они также уже применялись [88]. Свойства этих коор¬ динат и задачи, которые возникают при их применении, вызвали большой интерес за последние годы и соответственно многочис¬ ленные публикации [102, 87, 11]. В настоящее время однородные Координаты широко применяются. Основные свойства однородных координат связаны с возмож¬ ностями: выражать с помощью единственной матрицы все преобразова¬ ния: повороты, гомотетию, сдвиги и даже проекции (аксонометри¬ ческие или перспективные); характеризовать весьма удаленные или расположенные в бес¬ конечности точки; выражать любые сочетания преобразований путем простого Перемножения матриц. В соответствии с классами рассматриваемых признаков (G, Gv, Ga) возможны преобразования трех типов: G — размещение объектов, Gv — съемка, Ga — отображение. из
5.1.1.2. Моделирование геометрических преобразований Будем рассматривать только случай трехмерных преобразова* !ний, которые могут быть полностью описаны матрицей 4x4 вида классическая матрица 3D вектор преобразования- Основные преобразования выражаются с помощью матрицы 4x4 следующим образом: поворот на угол 0 вокруг оси ох: а Ь с; d d е f; q 4- векторы проекций g h ij r 1 m nj s ч- общий масштаб Rx = О COS0 О sin0 — sin 0 cos 0 О О Ry = поворот на угол 0 вокруг оси оу: cos 0 0 — sin 0 О 0 10 0 sin 0 0 cos 0 0 0 0 0 1 поворот на угол 0 вокруг оси oz: cos 0 sin 0 0 0 — sin0 cos0 0 0 0 0 10 0 0 сдвиг на (1, т, п): 10 0 0 0 10 0 0 0 10 1 ш п 1 IRz = 0 1 Т = гомотетия: Р О О О О q о О О 0 г О О О 0 1 м = Эти преобразования могут объединяться между собой в про' цессе описания макета с целью получения единой матрицы для всех элементов. 124
Пример: поворот на угол 0 вокруг оси, параллельной оси ох и проходящей через точку с координатами (х, у, z): 1) сдвиг для совмещения точки (х, у, z) с началом координат: матрица Т1; 2) поворот вокруг оси ох: матрица Rx; 3) сдвиг для возвращения точки (х, у, z) в первоначальное положение: матрица Т2. Результирующая матрица М есть произведение трех матриц: М= Т1 X Rx х Т2 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 X 0 COS0 sin 0 0 X 0 1 0 0 0 0 1 0 0 — sin0 COS0 0 0 0 1 0 — х -у — Z 1 0 0 0 1 X У Z 1 и каждая точка макета с координатами (х, у, г) умножается на матрицу М: 1х, у, z, 1] X М= [х', у', z1]. Заметим, что применение матрицы М не изменяет составляю¬ щей w. 5.1.1.3. Структурирование и композиция (объединение) гео¬ метрических преобразований Одним из интереснейших свойств древовидной структуры яв¬ ляется выполнение геометрических преобразований непосредствен¬ но в процессе просмотра дерева. Так, признак класса «G» применяется ко всем узлам дерева, рассматриваемый узел которого является его корнем. Это позво¬ ляет уменьшить память для разветвлений и использовать сово¬ купность преобразований для всего множества элементов путем атрибутирования единственной матрицы в единственном узле. 5.1.2. Геометрические операторы визуализации 5.1.2.1. Съемка Речь идет о том, чтобы выразить параметры съемки: точку наблюдения и точку визирования (класс «Gv»). Съемка может быть разделена на три элементарные операции: сдвиг макета для перемещения начала координат в визируе¬ мую точку (матрица Т), поворот для того, чтобы ось oz прошла через точку наблюде¬ ния (матрица R), проецирование координат на плоскость хоу (матрица Р). Таким образом, съемка может быть выражена через простое Перемножение матриц: V = T X R X р, 125
где Р — матрица проекции: 10 0 о 010 о О О 1 —1/d ’ ООО 1 в которой d — расстояние от точ¬ ки наблюдения до точки виэ :ip0, вания. Отметим, что координата z сохраняется для использова¬ ния в операторах удаления неви¬ димых линий. Важно иметь в виду, что мат¬ рица Р, а следовательно, и мат¬ рица V изменяют составляющую w для преобразованных точек. Поэтому после их применения необходимо разделить составляю¬ щие каждой точки на w для того, чтобы вернуться к нормализо¬ ванным координатам. Композиция признаков Gv в древовидной структуре не имеет смысла. Значащим является только последний признак Gv, встре¬ чающийся при просмотре дерева, т. е. самый нижний в древовид¬ ной структуре (рис. 72). Таким способом можно получать частные виды отдельных эле¬ ментов для рассматривания их под разными углами без изм.не- ния исходного макета. 5.1.2.2. Отображение и кадрирование Эта операция позволяет спроецировать полученное изобраке- ние, выраженное в абсолютных координатах плоскости хоу, на рамку, которая определена в плоскости экрана (класс Ga). Так же как и для признаков Gv, композиция признаков Ga в функции от древовидной структуры не имеет смысла. Рассмотрим две опе¬ рации: собственно преобразование в координатах экрана и кад¬ рирование краями рамки. Рис. 73. Размещение изображения на экране 126
Рис. 74. Кадрирование краями рам¬ ки Преобразование. После обра¬ ботки признаков Gv можно под¬ вергнуть полученное изображе¬ ние новым преобразованиям. Эти двухмерные преобразования ха¬ рактеризуют размещение изобра¬ жения на самом экране (поворо¬ ты, сдвиги, гомотетия), как по¬ казано на рис. 73. Преобразования выражаются в однородных координатах и мо¬ гут быть объединены с предыду¬ щими в тех случаях, когда не требуется удаления невидимых линий. В противном случае процесс удаления выполняется меж¬ ду двумя преобразованиями, которые из-за этого не могут быть -объединены. Кадрирование. Задача кадрирования состоит в том, чтобы определить, какие части изображения должны быть отображены в прямоугольной рамке (рис. 74). Простой алгоритм кадрирова¬ ния для однородных координат был предложен в [102]. Он поз¬ воляет обрабатывать как плоские, так и более сложные поверх¬ ности. Изучению задач, возникающих при использовании одно¬ родных координат для кадрирования изображений, посвящена также работа [9]. Заметим, что в результате действия описанных процессов пол¬ ностью пропадает понятие окна, которое обычно предоставляется программными средствами. В действительности оно соответствует одному частному случаю одновременного отображения признаков Gv и Ga для двухмерных макетов и может предоставляться в ка¬ честве примитива, упрощающего моделирование этих признаков. 5.2. МОРФОЛОГИЧЕСКИЕ ОПЕРАТОРЫ 5.2.1. Описание и моделирование Проблеме описания и моделирования формы плоских или ‘Объемных объектов можно было бы посвятить отдельную книгу. Разнообразие форм, устройств ввода и методов описания не поз¬ воляет выделить основные принципы. В следующих подразделах приводится лишь краткое описание элементарных методов; для Детального ознакомления с ними читатель может воспользоваться Цитируемой литературой. 5.2.1 Л. Двухмерные объекты Двухмерные объекты обычно описываются несколькими «конт¬ рольными точками», достаточными для полной характеристики Объекта. Например, отрезок прямой определяется двумя своими 127
крайними точками, круг — своим центром и одной точкой окру^ ности или тремя точками, лежащими на окружности. В больший стве случаев операторы визуализации применяются к этим о пор. ным точкам, и форма воссоздается в конце обработки во вр^мя отображения. Однако необходимо воссоздать объект перед тем как применить к нему операторы, предназначенные для измене¬ ния формы. Морфология может быть изменена в результате пре¬ образований двух типов: кадрирования, т. е. преобразования прямоугольника в тралению или в треугольник; изменений масштабов вдоль осей, т. е. преобразования к ад- рата в прямоугольник или окружности в эллипс. В подобных случаях объект может быть аппроксимирован от¬ резками прямых, поскольку при описанных операциях сохраняет¬ ся линейность преобразований. 5.2.1.2. Трехмерные объекты Описание трехмерных объектов ставит довольно сложные .про¬ блемы, поскольку при этом необходимо воссоздавать третье изме¬ рение исходя из «контрольных точек», полученных с помощью двухмерных устройств ввода. В зависимости от природы объектов могут быть использованы различные методы их описания: несколько видов (снимков) одного и того же объекта. Опера¬ тор последовательно указывает каждую контрольную точку на каждом снимке или по крайней мере на двух [74]; алгоритмы экстраполяции. Оператор рисует плоский контур, который ЭВМ «перемещает» в пространстве вдоль некоторой «проволоки». Описываемый объект представляет собой результи¬ рующий объем. Этот метод позволяет легко описывать тела вра¬ щения, используя круглую проволоку или многогранники, опираю¬ щиеся на прямолинейные отрезки проволоки [13]; алгоритмы композиции. Оператор располагает элементарными объектами (параллелепипеды, цилиндры, конусы и т. д.), кото¬ рые он комбинирует для описания требуемого объекта подобно тому, как это делается в детском конструкторе. Элементарные объекты могут примыкать один к другому или проникать дрУг в друга, а можно использовать также их «негативы» для получе¬ ния отверстий разной формы [15, 89]. В трехмерном пространстве задачи изменения формы могут возникать в результате преобразований типа гомотетии, кадри¬ рования (ограничения), перспективы, а также удаления невиди¬ мых линий. Ясно, что объекты должны быть воспроизведены Д° того, как они будут подвергнуты этим преобразованиям. 5.2.2. Воссоздание и визуализация В процессе визуализации большинство исходных объектов раз¬ деляются на более простые составляющие, инвариантные с точки 128
0ения морфологии. В результате воспроизведение объектов часто сводится лишь к визуализации отрезков прямых, дуг окружностей ЛЛИ плоских многоугольников. 5.2.2.1. Генерирование отрезков прямых Основная задача здесь состоит в том, чтобы определить наи¬ более представительные точки отрезка прямой, обозначенного ко¬ ординатами своих концов. По данному вопросу, который кажет¬ ся достаточно очевидным, было опубликовано много работ. Они касались в основном оптимизации характеристик этой операции [16—18, 84, 95]. При совмещении начала координат с одним из концов отрезка имеем три возможные оси симметрии и достаточно рассмотреть половину одного квадранта, например ту, для которой Дх^Лу^О (рис. 75). Уравнение прямой, описывающее отрезок: у Дх —хДу = 0, представляет собой функцию ошибок, которая должна быть ми¬ нимизирована по абсолютной величине в процессе генерирования. Оно становится равным нулю, когда точка находится на прямой, Пусть Е = уДх — хДу. (5.1) Если за исходную точку принять начало координат, то доста¬ точно лишь двух элементарных движений, чтобы с их помощью перемещаться вдоль отрезка. Движение а: увеличение х х: = х -J- 1. или цИс.* 75. Аппроксима¬ ция отрезка прямой 5^.47 IV V ' V Р2Э
В результате в соответствии с (5.1) ошибка уменьшается ц величину Ау: а Е: =Е — Ду. Движение Ь: одновременное увеличение х и у х: = х+ 1, У: =У+1, приводит в соответствии с (5.1) к возрастанию Е на величину Ах—Ау, имеющую положительное значение в рассматриваемой по- .ловине квадранта: Е: = Е + Ах — Ду. Исходя из этих замечаний можно предложить итерационный алгоритм минимизации ошибки, при котором на каждом шаге вы¬ бирается соответствующее движение: Е: =0; У- =Уо1 х: =х0; Дх: =хп — х0; Ду: =у„ —у0; да: = — ду; дЬ: = Дх — Ду; Отобразить точку (х0; уо). Выполнять итерации до тех пор, пока х<хп х:=х+1 если Е<0, то (движение Ь) у: = у+1 Е: = Е + ДЬ иначе (движение а) Е: = Е + Да конец «если» Отобразить точку (х, у) Конец итераций Этот алгоритм имеет два недостатка: первое движение выбирается произвольно (здесь — движе¬ ние Ь), ошибка изменяется от ДЬ до Да (Дх—Ду и —Ау) и случайным образом большинство точек может расположиться выше или ниже истинного отрезка. Обе проблемы отпадают, если центрировать функцию ошибки относительно нуля, начиная с величины Ду—Дх/2: 3.2.2.2. Генерирование дуг окружности Метод, описанный выше, может быть перенесен на случай ге¬ нерирования окружности с радиусом R и центром, расположенный Ш
р начале координат. Таким 0бразом, симметрия фигуры позволяет ограничить рас¬ смотрение половины квад¬ ранта, например того, ко¬ торый изображен на рис. 76. Из уравнения окружно¬ сти R2 = х2 + у2 следует выражение для функции ошибок: Е = х2 + +у2—R2. Для рассматриваемой половины квадранта необ¬ ходимы два движения, на¬ чиная с точки (R, 0): Движение а: увеличение у у: = у + 1, откуда Е: = Е + 2у+1. Движение Ь: увеличение у и уменьшение х х: = х—1; у: = у+1, откуда Е: = Е + 2 (у—х+1). Заметим, что во время движения а ошибка возрастает, так кам у^О, а во время движения b — уменьшается, так как х>у. Получаем следующий алгоритм: Е: = 0 x: = R; у: = 0 Отобразить точку (R, 0). Выполнять итерации до тех пор, пока у<х: если Е<0, то (движение а) | Е: = Е + 2у+1 иначе (движение Ь); Е.: = Е + 2(у—х+1) х:=х—1 конец «если» у:=у+1 Отобразить точку (х, у). Конец итераций. I 5.2.2.3. Заполнение площадей Этот оператор выполняет морфологическое преобразование,, определяя множество точек, которые являются внутренними для области, заданной своими контурами. В литературе можно найти два больших класса алгоритмов* различающихся вариантами задания контура: в цифровой форме или формулой. Контур, предварительно преобразованный в цифровую формул Алгоритмы этой группы действуют в два этапа: Рис. 76. Аппроксимация окружности 5* 23U
1. Кодирование контура. Люка [59] и Павлидис [811 предлагают кодировать кон¬ тур в процессе преобразова¬ ния в цифровую форму в преобразование контура в цифровую форму и запись в растровую память, Могут быть использова ны два метода: непосредственно запол нение. рис. 77. Графы областей контура функции от его особенностей (горизонтальные отрезки, общие вершины нескольких ребер, суперпозиция ребер). Затем осу¬ ществляется заполнение путем перебора кодов точек контура. Каждый код позволяет определить, должен ли элемент изображе¬ ния изменять состояние (внутренний/внешний). :2. Структурирование контура. Наиболее распространенные ал¬ горитмы используют структурирование контура или внутренних областей в форме графов, выражающих связность. Построение графа выполняется, начиная с внутренней точки, как показано на рис. 77. Непосредственно заполнение состоит из просмотра графа, по¬ лученного таким способом. В многочисленных публикациях по этой тематике предлагаются различные варианты графов и мето¬ дов просмотра [51, 81, 94, 97]. Контур, заданный формулой. Алгоритмы этого класса работают непосредственно по формуле, определяющей контур, преобразова¬ ние которого в цифровую форму объединено с заполнением. За исключением нескольких методов генерирования и заполнения от¬ дельных частных видов контуров, таких как окружность и эллипс [24, 31, 60, 85], подавляющее большинство алгоритмов относится к заполнению площадей, заданных с помощью многоугольников, и, следовательно, для них требуется перевод прямолинейных от¬ резков контура в цифровую форму. При таком подходе рассматриваются ребра, образующие кон¬ тур, для выделения связанных областей, образованных из тре¬ угольников или трапеций (рис. 78). Используемые методы различаются порядком, в котором за¬ полняются элементарные области (прослеживание вдоль контура, перебор ребер в соответствии с координатой у) [19, 74, 79], и воз¬ можностями уменьшения числа областей [54], как показано па рис. 79. Оптимизация процесса заполнения областей может обеспечить существенную экономию времени, поэтому следует поставить воп¬ рос, не целесообразнее ли использовать операторы с жесткой ло¬ гикой. Пример реализации такого метода заполнения представлен в следующей главе. *32
рис. 78. Связанные области много- Рис. 79. Уменьшение числа областей угольного контура Заполнение путем последовательных инверсий. Этот метод яв¬ ляется компромиссным между методом с предварительным оциф¬ рованием контура и методом разбиения на связанные области [66]. Он позволяет отказаться одновременно и от полной развертки па¬ мяти и от предварительного перебора ребер. Алгоритм последовательно выполняет следующие операции: нумерацию и запись ребра в растровую память, инверсию («исключающее ИЛИ») зоны памяти, расположенной справа от этого ребра, в прямоугольнике, описывающем фигуру. На рис. 80 данный метод проиллюстрирован применительно к кон¬ туру, имеющему форму треугольника. Для одиночного контура фаза инверсии последней линии каж¬ дого ребра не выполняется. Рис, 80. Заполнение путем последовательных инверсий 133
Присущие этому алгоритму два основных недостатка свя ; с необходимостью использования булевой рабочей памяти и гес* Полезной обработки большого числа точек. Следует уточнить эти два алгоритма. Во-первых, можно в ;:Ти обработку непосредственно в растровой памяти видеотермина л - g случае, когда обрабатываемые поверхности не наслаиваются д ;уг на друга, что имеет место после удаления невидимых линий По алгоритму Атертона и Уэйлера. Инверсия выполняется путем пс, пользования операций «исключающее ИЛИ» между текущей ве¬ личиной и предыдущей, ранее записанной в растровой памяти При этом изменения на экране происходят достаточно быстро и не мешают восприятию. Что касается бесполезно обрабатываемых точек, то можно ут¬ верждать, что реализация на элементах с жесткой логикой, ири. которой инверсия выполняется почти мгновенно, устраняет э от недостаток. 5.3. ОПЕРАТОРЫ ОСВЕЩЕНИЯ 5.3.1. Описание и моделирование Изучение модели освещения применительно к точке состоит из двух отдельных частей: с одной стороны, вычисление коэффициен¬ тов диффузного и зеркального отражений в зависимости от физи¬ ческих свойств используемого материала и геометрии сцены; с дру¬ гой— вычисление окончательного цвета в этой точке в зависимос¬ ти от спектральной характеристики отражения, присущей мате¬ риалу, и цвета источника освещения. 5.3.1.1. Моделирование отражения Число факторов, определяющих освещенность в точке, доста¬ точно велико; их точное моделирование пока еще не реализовано. Однако большинство задач удовлетворяется более или менее .хо¬ рошим приближением с помощью упрощенных моделей. В первом приближении можно считать, что отражение являет¬ ся результатом двух независимых явлений: диффузионного отра¬ жения, определяемого глубокими слоями материала при прохож¬ дении в них света, и зеркального отражения, определяемого по¬ верхностными слоями материала. Эти явления подчиняются различным законам, определяются разными параметрами и цветами. На рис. 81 показано, какие факторы принимаются во внимание при расчете характеристики отражения. Наблюдатель распода- —► гается в направлении оси oz: N — вектор нормали к поверхности, L — вектор, направленный в сторону источника света, М — вектор? занимающий среднее положение между вектором L и осью oz; 134
;щих процесс отражения —> —♦ —> —► угол между N и L, m — угол между N и М, ds— расстояние от рассматриваемой точки до источника света. Коэффициенты диффузного D и зеркального S отражений за¬ висят от двух углов и четырех параметров, связанных с физичес¬ кими свойствами материалов, а именно: с максимальным коэффициентом отражения материала — Cd, с шероховатостью материала — Kd, с максимальным коэффициентом отражения поверхностного слоя — Cs, с шероховатостью поверхностного слоя — Ks. Краткая сводка используемых моделей. В литературе за пос¬ ледние годы опубликовано большое число моделей отражения, из которых наиболее значительные приведены в таблице. Литература Диффузное отражение Зеркальное отражение [2] D = Cd cos 1 S = Cs cos 1 cos m S = 0 при m > я/2 ТД2] D = Cd | cos 11 S = 0 144] D = cosa 1/zs S = 0 [111] zs — составляющая вдоль оси oz [80] D = (cos l)Kd S = 0 D = 0 при 1 > я/2 [79] D = cos 1/ds S = Cs (cos l)Ks/ds Р М] D = | cos 11 /ds S = (cos I)Ks/ds [82] D = Cd cos 1 S = Cs (cos m)Ks — Модели различаются степенью влияния каждой переменной на конечный результат и возможностями определять отражение в за¬ 135
висимости от рассматриваемого материала. Все формулы пол- ны эмпирическим путем, поэтому используемая в них функция ко¬ синуса не отражает никаких физических реальностей. Общие модели. Обобщенная модель может быть создана но ос¬ нове предположения о том, что поверхность реальных материи юв состоит из большого числа микрограней, каждая из которых яв¬ ляется прекрасным отражателем света [106]. Большинство граней ориентировано в соответствии с направлением нормали к пов-.х- ности, и их число уменьшается по мере удаления от этого направ¬ ления. Различные функции распределения граней были исследо¬ ваны в [8]; весьма приближенно их распределение может быть представлено как гауссово: где х — угол между нормалью и данным направлением. На рис. 82 изображены кривые, полученные для различных зна¬ чений к при с = 1. Меньшие значения к соответствуют гладким поверхностям, большие — шероховатым. Отметим, что хотя значения к>1 не имеют физического смысла, тем не менее они позволяют разли¬ чать уровни освещенности поверхностей, которые не освещены не¬ посредственно (углы между я и я/2). Для упрощения описания моделей отражения программные средства могут самостоятельно использовать две модели отраже¬ ния — диффузного и зеркального исходя только из данных о типе моделируемого материала: D (1) = Cd е ; S (m) = Cs е Для вычисления необходимо определить четыре параметра: Cd, Kd, Cs, Ks. Их численные значения можно найти в сборнике, объединяющем характеристики сотен различных материалов [86], или определить эмпирическим путем. Случай нескольких источников света. Одним из наиболее лег¬ ко реализуемых специальных эффектов является эффект, модели¬ рующий одновременное действие нескольких источников света. Этот прием позволяет увеличить число отражений и уменьшить G АО о х ной на рис. 83, где разность между углами dx задается пользователем. Сумма Gi + Gz контраст представляемых объ¬ ектов для приближения усло¬ вий к реальным, существую¬ щим, например, в комнате, где обычно бывает несколько окон или других источников света. Описываемая модель характе¬ ризуется кривой, представлен- Рис. 83. Два источника света 136
г i t) L_ o ====== ^ 7Г Pnc. 84. Запрет на моделирование освещения должна быть нормализована так, чтобы ее значения находились в интервале между 0 и 1. Можно также моделировать симметрию источника по отноше¬ нию к некоторым объектам для создания иллюзии источника света (например, лампы), расположенного в центре сцены. Запрет на моделирование освещения. Речь идет о случаях, ког¬ да освещение не должно моделироваться несмотря на наличие источников света: терминал используется для представления нереалистичных изо¬ бражений или создаваемых непосредственно цифровой камерой, изображение является реалистичным, но некоторые объекты •освещаются другим независимым источником, например, это может •быть пейзаж, видимый из окна комнаты, в которой есть свой ис¬ точник света. Запрещение реализуется с помощью характеристик, представленных на рис. .84. 5.3.1.2. Моделирование результирующего цвета Окончательный цвет каждого элемента изображения должен быть определен в зависимости от цвета материала, от коэффи¬ циентов диффузного и зеркального отражения, от цвета источни¬ ка освещения и от интенсивности рассеянного света. Много работ было посвящено поиску различных вариантов ап¬ проксимации, позволяющих более или менее точно моделировать освещение. Одна из наиболее широко используемых моделей, пред¬ ложенная Фонгом [82] и повторенная Блинном '[8], основана на следующих предположениях: цвет диффузного отражения — это цвет материала, из которо¬ го создан (или которым покрыт) объект; цвет зеркального отражения — это цвет источника света; эти два цвета не зависят от угла падения света. Исследования Кука и Торранса [26] показали, что речь идет лишь о некотором частном случае; такая модель не может при¬ дать реалистичного вида, например, металлической поверхности. Одновременно они объяснили «пластмассообразный» вид большин¬ ства объектов, синтезированных с помощью ЭВМ, показав, что природа пластических материалов в точности соответствует част¬ ному случаю модели Фонга. Их утверждения сводятся к следую¬ щему: 137
зеркальное отражение характеризуется цветом материала, и источника света; диффузное и зеркальное отражения могут порождать раз, лч_ ные цвета, если материалы неоднородны (случай пластмасс и мно¬ гих других материалов); основные цвета материалов могут изменяться при больших уг¬ лах падения; материалы, такие как металлы, имеют коэффициент диффуз- ного отражения, близкий к нулю. Платой за улучшение качества изображения синтезируемой по¬ верхности является весьма существенный рост количества необхо¬ димых вычислений. Однако можно выбрать промежуточный метод, приняв за основу модель Фонга для общего случая, но с возмож¬ ностью использовать цвет источника для моделирования с боль¬ шей реалистичностью некоторых особых объектов. Модель освещения для каждой точки дается выражением где С — результирующий цвет, А — интенсивность рассеянного сзе- та, СМ — цвет материала в данной точке, В — чисто белый цвет,. CS — цвет источника света. В общем случае зеркальная составляющая имеет цвет; источ¬ ника, а не белый. Исходя из равенства (5.2) запишем выражения для красной, зеленой и синей составляющих: Cb = ((А + D) • CMb + S) • CSb. Разумеется, эти преобразования не отражают реальных физи¬ ческих явлений, но получаемые на их основе результаты представ¬ ляются достаточными для большинства применений. Кроме того, отметим, что если все параметры в (5.3) изменя¬ ются от 0 до 1, то коэффициенты Cr, Cg и СЬ принимают значе¬ ния от 0 до 2. Выберем такой вариант, в котором коэффициенты не превышают величины, равной 1, за счет уменьшения насыщен¬ ности (разбавления белым). Такие случаи часто наблюдаются, на¬ пример, при слишком большой освещенности: Сг = max (max (1, А + D) -СМг + S, 1) • CSr, Cg = max(max(l, A + D)-CMg + S, l)-CSg, Cb = max(max(l, A + D)-CMb + S, l)-CSb. 5.3.2. Воссоздание освещения в процессе визуализации C = ((A + D).CM + S-B).CS (5,2). Сг = ((А + D) • СМг + S) • CSr, Cg = ((А + D) • CMg + S) • CSg, (5.3) Когда модель освещения полностью определена, можно вычис- лить результирующий цвет каждого элемента изображения, что 138
потребует чрезвычайно много машинного времени. Поэтому исполь¬ зуются различные методы для выполнения вычислений только для некоторых «ключевых» точек. 5.3.2.1. Плоские поверхности Если сцена состоит из многогранников с плоскими гранями и источник света находится в бесконечности, то коэффициенты от¬ ражения можно вычислить для одной точки и их значения могут быть отнесены к любой точке поверхности. 5.3.2.2. Сложные поверхности Билинейная интерполяция освещенности. В случае сложных по¬ верхностей, аппроксимированных в виде решетки из плоских мно¬ гоугольников, атрибутирование освещенности выявляет каждую часть поверхности очень отчетливо. Гуро [44] предлагает вычис¬ лять значения освещенности только для узлов решетки, а осве¬ щенность всех остальных точек получать путем билинейной интер¬ поляции. Использование алгоритма Уоткинса для удаления неви¬ димых линий позволяет, кроме того, выполнять горизонтальную линейную интерполяцию вдоль линии развертки с помощью уст¬ ройств на элементах с жесткой логикой. Пусть La, Lb, Lc — значения освещенности, вычисленные в точ¬ ках А, В, С на рис. 85.. Тогда Ln = Lb (1 — а) + Lc • а, Lm = Lb(l — b) + La*b, Lp = Lm(l —x) + Ln-x, тде a, b и x изменяются от 0 до 1 соответственно между В и С, В и А, М и N. Этот метод дает изображение «сглаженной» поверхности, с ко¬ торой устранены освещенные неровности. В то же время представ¬ ляется, что моделирование отражений на основе этого метода бы¬ ло бы весьма проблематичным из-за ослабления, вызванного ли¬ нейной интерполяцией. Кроме того, отметим, что представление освещенности, пред¬ ложенное Гуро, не учитывает зеркального отражения. В действи¬ тельности следовало бы одновременно интерполировать коэффи¬ циенты как зеркального, так и диффузного отражения. в Рис. 85. Билинейная интерпо¬ ляция освещенности А
Рис. 86. Линейная интерполяция в направлении нормали Билинейная интерполяция в направлении нормали. В 1975 г. Фонг [82, 30] предложил улучшить метод Гуро путем выполнения интерполяции не только на поверхности, но и в направлении нор¬ мали к ней, т. е. на трех ее составляющих: Nx, Ny и Nz. Время обработки еще больше возрастает из-за необходимости вычисле¬ ния коэффициентов отражения для каждой точки поверхности. Достоинством метода Фонга является возможность получения точ¬ ного представления об отражениях (рис. 86). 5.3.2.3. Текстуры рельефов Рельеф в принципе воспринимается благодаря изменению ос¬ вещенности, возникающему из-за колебаний направления норма¬ ли к поверхности. Поэтому отображение объектов с нерегуляр¬ ными поверхностями требует модулирования освещенности, соз¬ дающей иллюзию рельефа. Такой метод особенно подходит для отображения объектов с поверхностями «случайного» (корка апельсина, кора дерева, обработанное поле и т. д.) или, наобо¬ рот, регулярного (мостовая, гофрированное железо, геометричес¬ кие узоры и т. д.) видов. Предложенный Блинном метод [9] использует функцию F(u, v), описывающую высоту рельефа, которую следует добавить к исходной поверхности (или вычесть из нее), как показано на рис. 87. Переменные и и v позволяют просматривать множество поверхностей, подлежащих отображению. В каждой точке новой поверхности заново вычисляется вектор нормали N/: N' = N + D, 1ААА/, Исходная поверхность Помехи (колебания) Искаженная (результирующая) поверхность Рис. 87. Профили рельефа поверхности 140
I г? 1\де N — исходный вектор нормали, g _ F' u (N-p' v) — F' у (N-p' и) —¥ N Этот метод позволяет достичь эффекта поразительной реалис¬ тичности, но имеет несколько недостатков: колебания глубины поверхности не зависят от размера объек¬ та. Действительно, увеличение размера не вызывает никакого увеличения глубины модуляции рельефа. Блинн предложил устра¬ нить этот недостаток за счет рассмотрения функции F как выра¬ жения не только для высоты рельефа, но и для угла поворота относительно вектора нормали; необходимое время вычислений для данного алгоритма весьма значительно, оно приблизительно в 4 раза превышает время,, не¬ обходимое для отображения того же объекта без отображения рельефа его поверхности. 5.4. ОПЕРАТОРЫ ВНЕШНЕГО ВИДА 5.4.1. Описание и моделирование 5.4.1.1. Моделирование цвета Моделирование основных цветов — красного, зеленого и сине¬ го (R, G, В). Явления пространственной и временной суммации, связанные с ограниченной разрешающей способностью глаза (раз¬ решающая способность по углу равна приблизительно одной угло¬ вой минуте), стимулировали ряд исследований по изысканию воз¬ можностей представления любого цвета с помощью нескольких основных. Все процессы воспроизведения цвета опираются на принципы теории трехцветности зрения, разработанной Юнгом, Максвеллом и Гельмгольцем, в соответствии с которой можно соз¬ дать ощущение практически любого цвета путем смешения трех, выбранных надлежащим образом, первичных цветов. Замечено, что «триада» из красного, зеленого и синего позволяет воспроиз¬ вести наибольшее количество цветов. Можно представить любой цвет (С) с помощью трех первич¬ ных цветов: красного (R), зеленого (G) и синего (В), интенсив¬ ность (яркость) которых выражается коэффициентами г, g, b: m (С) = г (R) + g(G) + b(B), где m — интенсивность цвета С. Такое представление подчиняется аддитивному и мультиплика¬ тивному законам в векторном пространстве R: к • m (С) = к • г (R) + к • g (G) + к • Ь (В), mi (Q) + т2 (С2) = (г, -!- r2) (R) + (g, + go) (G) + (br + Ь2) (В). l'4i
Выбор основных цветов для цветного телевидения диктуется характеристиками излучения люминофоров, используемых для внутреннего покрытия экранов приемных электронно-лучевых тру, бок. На диаграмме Международной комиссии по освещению (рис. 88) три основных цвета находятся в вершинах треугольника, внутри которого располагаются все цвета, воспроизводимые в те¬ левидении. Число различимых глазом цветов имеет порядок де¬ сятка тысяч. Недостатки триады R, G, В. Теория трехцветности зрения, по¬ ложенная в основу построения современных видеотерминалов, соз¬ дает некоторые неудобства для пользователя, не имеющего дос¬ таточного опыта цифровой обработки изображения и управления -ими [46]. Большинство пользователей не обладает должным уровнем знаний об аддитивном сложении цветов, которое используется в подходе, основанном на теории трехцветности зрения. Например, для них представляется противоестественным получать желтый цвет путем сложения красного и зеленого. Синтез цветов, исполь¬ зуемых в живописи или полиграфии, основан на субтрактивном смешении, заключающемся в последовательном наложении цвет¬ ных фильтров, задерживающих часть видимого спектра. Можно сделать цветовое пространство более удобным для пользователя, если рассматривать цвета: голубой (С), пурпурный 342
и желтый (J), являющиеся дополнительными к цветам прост¬ ранства iR, G, В. Нормированные коэффициенты интенсивности в «дополнитель¬ ном» пространстве находятся непосредственно из выражения (г, g, b) = (l, 1, 1) — (с, гп, j). Цветовой тон, яркость, насыщенность. Оба представления, опи¬ санные выше, создают большие трудности при их использовании* так как являются довольно абстрактными и весьма далекими от трех параметров, наиболее удобных при оценке цветового восприя¬ тия: цветового тона (Т), яркости (L) и насыщенности (S): цветовой тон определяется длиной волны, которая преобладает в потоке излучения, воспринимаемом глазом; яркость соответствует световой энергии, достигающей наблю¬ дателя, которая отличается от энергии, излучаемой источником* из-за неравномерности спектральной чувствительности глаза. Так, некоторые цвета кажутся более «яркими», чем другие, при одина¬ ковой их интенсивности (рис. 89). Глаз может различать порядка тысячи уровней яркости; насыщенность (или чистота цвета) позволяет отличать цвета «густые», «неразбавленные» от «пастельных», «размытых». Спек¬ тральные и пурпурные цвета являются наиболее насыщенными (чистота цвета равна единице, а насыщенность—100%). Добав¬ ляя белый цвет к любому насыщенному, можно получить всю гам¬ му насыщенности, вплоть до 0%. Цветовое пространство можно представить в функции от этих трех параметров; эту идею выдвинул физик Манзелл в 1905 г« [76] (рис. 90). Представление цветового пространства в коорди¬ натах «цветовой тон, яркость, насыщенность» создает достаточ¬ ные удобства для работы в нем не очень осведомленному пользо¬ вателю, а также упрощает цифровую обработку цветовой инфор¬ мации. В частности, эффекты затенения или наблюдения цветных объектов в сумерках сводятся к простой линейной интерполяции значений яркости между исходным цветом и черным. Эффекты Рис. 89. Кривая относительной яркости цветов 143
Желто-зеленый Желтый Оранжевый Цилиндр равной насыщенности Зеленый Сине-зеленый ■ Синий Сине-пурпурный Красно-пурпурный V/ i ХА- I V7. Пурпурный -Плоскость одного цветового тона -Плоскость равной яркости Рис. 90. Представление цветового пространства в виде ци¬ линдра тумана, дымки, атмосферного рассеяния при рассмотрении уда¬ ленных объектов могут быть промоделированы путем линейной интерполяции значений насыщенности между исходным цветом и серым. Такая же интерполяция в пространстве R, G, В приводила бы к получению промежуточных цветовых тонов. Свойства раз¬ личных цветовых пространств, а также операции перехода от од¬ ного пространства к другому описаны в работах [52, 53, 70, 73, 96, 107]. Переход из пространства R, G, В в пространство Т, L, S и об¬ ратно выполняется с помощью следующих соотношений: Т = arcsin (1/3/2 (G - R)/S), L = (R + G + B)/3, S = ]/R2 + G2 + B2—B-G-B-R —G-R , R = L — 1 /3 • S • cos (T) — 1 / /3 • S • si n (T), G = L + 2/3 • S • cos (T), В = L - 1/3 • S (T) • cos(T) + 1 /КЗ • S • sin (T). 5.4.1.2. Описание цвета Конечная цель этого процесса — возможность описания цвета интерактивным методом независимо от того, как он кодируется при моделировании. Наиболее простой способ заключается в пре¬ доставлении оператору на экране видеотерминала цветовой па- 244
литры, на которой он может выбрать желаемый оттенок и ука¬ зать его с помощью светового пера или сетки. Однако эта операция наталкивается на две трудности: 1) невозможность одновременного воспроизведения на экране дисплея широкого разнообразия цветов, которым могут обеспе¬ чить пользователя большинство видеотерминалов; 2) невозможность гармоничного представления трехмерного цветового пространства из-за того, что цвета на палитре могут быть представлены лишь выборочно. Наиболее удобным для пользователя является решение, при котором в его распоряжение предоставляется сокращенная палит¬ ра в пространстве Т, L, S, позволяющая сразу выбирать желае¬ мые цветовой тон и насыщенность. Затем. может быть выбрана требуемая яркость с помощью операторов УВЕЛИЧИТЬ ЯРКОСТЬ или УМЕНЬШИТЬ ЯРКОСТЬ путем нажатия клавиш f или \ видеотерминала. Цветовая палитра. Представление цветовой палитры равной яркости ставит еще несколько проблем, связанных с тем, что цве¬ товой объем, который может быть синтезирован на экране терми¬ нала, имеет форму куба, диагональ которого, проходящая через начало координат, является осью яркости L (рис. 91). Если для получения равнояркостной цветовой палитры рассечь куб плоскостью, перпендикулярной оси яркости, то в сечениях об¬ разуются фигуры, показанные на рис. 92. Выбор точки на одном из сечений не позволяет получить всю возможную совокупность цветов простым сдвигом вдоль оси яр¬ кости с помощью операторов УВЕЛИЧИТЬ ЯРКОСТЬ и УМЕНЬ¬ ШИТЬ ЯРКОСТЬ. Тогда можно представить неплоскую палитру, содержащую цвета, яркость которых изменяется от 1/3 до 2/3. Эта палитра представляет собой расположение в одной плоскости цветов, соответствующих цветовым линиям, показанным на рис.. 93. Если основные цвета указываются с помощью сетки, которая отображается на экране, то оператор может изменить в том или ином направлении параметры Т, L, S. Изменение выполняется в реальном масштабе времени с использованием клавиш фиф ви¬ деотерминала, предназначенного для интерактивного взаимодей¬ ствия. 5.4.1.3. Моделирование цветной текстуры Для большинства задач представление изображений, состоя¬ щих из однотипных пятен, является недостаточным. Из-за малой реалистичности таких изображений область их применения сильно ограничена. Особенно это относится к пейзажу, изображаемые объекты которого требуют различных подходов для придания им по возможности «менее синтетического» вида. Обработка таких объектов цветной текстурой подобна обклеиванию их заранее заготовленной раскрашенной цветной бумагой. 145
Рис. 91. Ось яркости L в простран¬ стве RGB TLS С L = 1/6 Рис. 92. Сечение равной яркости Общей характеристикой любого подхода к моделированию цветной текстуры является получение модели текстуры, представ¬ ленной матрицей точек (в большинстве случаев матрица имеет квадратную форму). Каждая точка содержит информацию либо о цвете, либо о яркости. Полученная таким образом модель может быть уподоблена цифровому изображению, представляющему де¬ тали отдельных частей текстуры, синтез которой выполняется пу¬ тем «выстилания», «замощения» требуемой зоны с помощью та кой модели. Методы, описываемые ниже, существенно различаются спосо¬ бом получения модели: 1. Модели, получаемые из цифровых изображений. Матрица образуется непосредственно из реального изображения от цифро- 146
Исходная текстура Текстура на фоне шума Рис. 94. Получение шумоподобных текстур вой камеры, перед которой достаточно разместить фотографию или рисунок модели желаемой текстуры [9, 10, 32, 57]. Достоин¬ ство данного, метода заключается в том, что модель имеет весьма реалистичный вид, но зато дает разрывы, мешающие «выстила¬ нию» объектов. 2, Вычисляемые модели. Применение текстуры заключается, вообще говоря, из «выстилания» зоны, которую надлежит запол¬ нить с помощью модели данной текстуры. «Облицовка» произ¬ вольной модели может вызвать нарушение непрерывности вида текстуры. Поэтому во время вычислений следует принимать неко¬ торые меры предосторожности, реализуемые обычно двумя пу¬ тями: генерированием «связанных» моделей, т. е. с совпадающими периферийными границами соседних участков (верхняя и правая одного соответственно с нижней и левой другого и т. д.). Это ус¬ ловие легко выполняется для многих текстур с регулярным ри¬ сунком (кирпичная кладка, решетка и т. п.); заполнением на основе синтаксических или структурных приз¬ наков [118, 42]. Модель текстуры рассматривается при этом как составленная из последовательности подмоделей фиксированного размера. Модели и подмодели образуют дерево, листьями которо¬ го являются точки изображения. Конечная текстура определяется правилами грамматики высокого уровня, описывающими разме¬ щение различных элементов. Использование стохастических пра¬ вил позволяет получать текстуры, представляемые случайными распределениями (рис. 94). 3. Преобразование текстур. Этот способ основан на методах, применяемых при обработке изображений, — преобразовании Фурье, случайных преобразованиях, а также на методах прост¬ ранственной фильтрации участков того или иного размера на ис¬ ходном изображении. Совокупность всех трех методов применяется для изменений исходных текстур в зависимости от таких параметров, как рас¬ стояние от точки наблюдения, климатические условия (снег, тур¬ ман и т. п.), а также для уменьшения эффекта слишком явной «синтетичности» цветных текстур. 147
5.4.1.4. Описание цветных текстур Большинство реальных объектов образуется путем объедини ния или сборки различных частей, созданных из разнообразны^ исходных материалов, отличающихся друг от друга своей струк. турой, цветом, яркостью и т. д. Так, на кирпичной стене можно различить сами кирпичи, мало отличающиеся один от другого своим цветом, и разделяющие их слои раствора. Таким же обра¬ зом можно рассматривать дерево как материал, состоящий из од. нородных слоев, различающихся своим основным цветом и ярко¬ стью. Микро- и макротекстуры. Однородность большинства мате¬ риалов позволяет рассматривать отдельно: микротекстуру, относящуюся к внешнему виду каждой элемен¬ тарной составляющей (цемент, кирпич, камень и т. д.); макротекстуру, относящуюся к соединению нескольких основ¬ ных материалов. Разделение на микро- и макротекстуры не всегда представ¬ ляется таким отчетливым, как может показаться на первый взгляд, поскольку большинство материалов могут быть разделены на час¬ тицы (цемент) или нити (ткань) разного размера и цвета, т. с. макротекстура становится микротекстурой на более высоком уров¬ не композиции. Так, исходя из нескольких исходных цветов, пред¬ ставляющих первичные материалы, можно получать сложные’тек¬ стуры, применяя последовательно макротекстуры, что позволяет объединять эти различные составные элементы. Таким образом, макротекстура становится, по определению, независимой от цвета материала, но должна выражать его иден¬ тичность в каждой точке. Определение любой текстуры может быть дано в виде иерар¬ хии, изображаемой в форме дерева (рис. 95), листья которого представляют основные цвета, а узлы — операторы применяемых макротекстур. В случае, показанном на рис. 95, для получения Рис. 95. Иерархическое представление тек- обычно бывает представле- текстуры Т5 необходимы шесть основных цветов и пять макротекстур. В представлении тексту¬ ры принимают участие две составляющие ее текстуры (ТО и Т1), предварительно описанные тем же самым или иным методом, а также маска, представляющая: макротекстуру, которая мо¬ жет быть выбрана операто¬ ром из библиотеки, изобра¬ женной на экране. Маска стуры на в виде текстуры прямо- 148
угольной формы, каждая точка которой содержит коэффициент ОТ б до 1: величина коэффициента, равная 0, означает, что точке (i, j) описываемой текстуры присваивается цвет точки (i, j) текстуры ТО; величина 1 означает, что присваивается цвет точки (i, j) тек- стуры Т1; промежуточная величина означает, что присваивается цвет, получаемый в результате интерполяции этих двух крайних цве¬ тов. Такая возможность позволяет устранять эффекты алиайзинга текстур путем использования на уровне маски промежуточных значений, пропорциональных площади, покрываемой каждой из обеих текстур в каждом элементе изображения. Такая простота обеспечивает, в частности, возможность описания весьма тонких и детализированных орнаментов. Базовая для этого метода опе¬ рация интерполяции двух цветов может выполняться в системе R, G, В следующим образом: R = R0.(l-k) + Rl-k, G = G0-(1— k) + Gl-k, В = В 0(1 — k) + В1 -k, где k — коэффициент интерполяции, получаемый от маски. Второй тип маски может быть использован для генерирования базовой текстуры. Номер, содержащийся в каждом элементе мас¬ ки, соответствует номеру, текстуры, которую следует отобразить в желаемой точке, что позволяет делать выбор из 16 базовых тек¬ стур, но не позволяет бороться с алиайзингом. Основные преимущества, вытекающие из метода маски, каса¬ ются: скорости и простоты описания текстуры, которая выполняется без вычислений, а лишь путем указания на экране базовой тек¬ стуры и черно-белой маски; гибкости использования, поскольку одна и та же маска поз¬ воляет генерировать большое количество разнообразных текстур; существенного уменьшения объема, требуемого для хранения текстур, поскольку они могут отображаться путем простых ссылок на маски и другие базовые текстуры. Заметим, что для хранения маски 16x16 элементов с 16 значениями коэффициентов требует¬ ся 128 байт, что в 3 раза меньше, чем для текстуры того же раз¬ мера. Основная трудность, вызванная описанием маски макротексту¬ ры, заключается в поисках повторяющихся орнаментов, которые можно было бы занести в квадрат и создать после расстановки требуемое впечатление без разрывов или нежелательных макро¬ текстур. Сложность проблемы, большое разнообразие материалов и скорее физическая, чем математическая, природа явлений, по¬ рождающих зрительные эффекты, не позволяют наметить общие методы генерирования. 149
Тем не менее к простым текстурам могут быть применены которые точные решения, позволяющие получать довольно инте- ресные эффекты. Псевдослучайные текстуры. Этот довольно часто встречающий- ся тип текстур используется для придания более естественного вида материалам или природным объектам (трава, листва, ка, мень, гравий и т. д.). Он может быть получен из случайных масок одним из двух методов: случайная интерполяция: маска заполняется числами от 0 до 1, выбранными по случайному или псевдослучайному закону. Ко¬ нечным результатом является текстура, цвет которой в каждой точке получается путем интерполяции между двумя крайними цве¬ тами. Этот метод особенно хорош для моделирования шерохова¬ тых, покрытых неровностями или гранулированных поверхностей (гразий, цемент, ткань и т. д.); случайное распределение: на маске, первоначально заполнен¬ ной нулями, размещают в случайном порядке несколько единиц. Количество единиц зависит от требуемой плотности, выбираемой оператором. Маска такого типа позволяет, например, отобразить цветы на лугу или звезды на небе, или «естественное несовершен¬ ство» некоторых материалов. Следует отметить, что если тексту¬ ра Т1 также случайна, то рассеянные цветы или звезды могут иметь различные цвет и яркость. Текстуры, составленные из геометрических орнаментов. Речь идет здесь скорее о вспомогательных понятиях, связанных с тек¬ стурами, чем об их автоматическом генерировании. Система опи¬ сания дает в руки пользователю устройства, позволяющие легко рисовать маски, например, цифровой планшет. Для упрощения процесса рисования могут быть предложены несколько функций: автоматическое заполнение прямоугольников, заданных свои¬ ми углами — нижним левым и верхним правым; оцифрование и заполнение кругов, заданных своим центром и радиусом; заполнение любых многоугольников, контуры которых нарисо¬ ваны на планшете; изображение векторов с плотностью, которую можно предста¬ вить в параметрической форме; изображение извилистых прожилок. В зависимости от типа применяемой маски генерирование всех этих функций может выполняться с подавлением или без подав¬ ления алиайзинга. Разнообразие текстур может быть получено из масок, непо¬ средственно изображаемых оператором. Предлагаемые ему уст¬ ройства позволяют создавать текстуры, имитирующие камень, кир¬ пич, черепицу, изразцы, окна, а также некоторые породы дерева, с помощью функций генерирования прожилок, толщина которых и степень извилистости могут меняться. 150
5.4.2. Воссоздание внешнего вида в процессе визуализации Задачи, относящиеся к улучшению внешнего вида во время визуализации, связаны с явлением алиайзинга. Этим термином объединяются явления, связанные с пространственной дискрети¬ зацией и квантованием. Наиболее неприятные проявления алиай¬ зинга: возникновение «лестничных ступенек» на наклонных контурах и гранях объектов; пропадание малоразмерных объектов или искажения рисунка текстуры. 5.4.2.1. Борьба со «ступеньками» контуров Уменьшение «лестничного эффекта» может выполняться в про¬ цессе преобразования контуров в цифровую форму, если рассмат¬ ривать каждый элемент изображения не как точку в математи¬ ческом смысле, а как квадратик с конечной площадью S. Если некоторая грань разделяет два объекта, имеющие цвета соответ¬ ственно Ci и С2, как показано на рис. 96, то цвет С, присваивае¬ мый каждому элементу изображения, пересекаемому этой гранью, является суммой двух цветов Ci и С2, каждое слагаемое 'которой пропорционально площадям Si и S2, покрываемым каждым из объектов: с Si р S2 г* S S 2* 5.4.2.2. Устранение эффекта алиайзинга на текстурах После выбора модели текстуры возникает задача объединения ее с визуализируемой сценой. Эта задача состоит из двух само¬ стоятельных частей: с одной стороны, сама «облицовка» тексту¬ рой, а с другой — преобразования, которым подвергается модель для удовлетворения требованиям перспективы или формы объек¬ тов. Объект цвета С1 Рис. 96. Устранение «эффекта ступенек* 151
Задачи, возникающие из «облицовки» текстурой. Если в случае вычисляемой модели задача непрерывности текстуры может быть решена в процессе генерирования ее модели, то совсем иначе обстоит дело, когда в качестве текстуры используют цифровые изображения, которые могут вовсе не отвечать требуемым усло¬ виям. Несогласованность на границах выявляет нежелательную макротекстуру. Этот эффект может быть значительно ослаблен с помощью методов фильтрации результирующего изображения [10, 29, 32, 40], по существу, фильтра нижних частот, действие которого заключается в «уравновешивании» каждой точки в зави¬ симости от окружающих ее точек. При этом четкость текстуры ухудшается. Задачи, возникающие из-за геометрических преобразований. Накладывание текстур на какую-либо поверхность ставит много проблем, относящихся к определяемому визуально качеству изоб¬ ражения. Действительно, применение простого перспективного проеци¬ рования создает многочисленные искажения, вызванные недоста¬ точной дискретностью текстуры. Этот эффект выражается в про¬ падании мелких деталей или, наоборот, в их появлении при таких условиях, когда им полагается исчезнуть (например, при рассмат¬ ривании с большого расстояния). Повороты, преобразования мас¬ штаба, перспективное проецирование текстур стали объектом пуб¬ ликации по оптимизации обработки [20] и визуальному опреде¬ лению качества результатов '[40, 83, 112]. Блинн и Ньюэлл {10] предложили метод, позволяющий прое¬ цировать текстуру на криволинейную поверхность. Каждому эле¬ менту изображения ставят в соответствие квадрат с центром в этой точке и стороной, длина которой соответствует двум элемен¬ там. Координаты X и Y вершин квадрата преобразуются при этом в координаты U и V, выражаемые через параметры, определяю¬ щие поверхность, а элементы модели текстуры (определяемой в тех же самых координатах), находящиеся внутри этой зоны, вы¬ числяются как результат взвешенного суммирования (рис. 97). Рис. 97. Анаморфотное преобразование текстуры
Глава 6. СИСТЕМА «ГЕЛИОС» В этой главе рассматривается интерактивная система синте¬ за изображений, основанная на понятиях и концепциях, изложен¬ ных в предыдущих главах. Система разработана в Лаборатории информатики и прикладной математики в Гренобле (IMAG). Описываемое здесь рабочее место «Гелиос» было создано с по¬ мощью Агентства по информатике и выпускается в продажу Об¬ ществами EFISYSTEME и ITMI. Следующие параграфы данной главы посвящены подробному изучению особенностей програм¬ мных и аппаратных средств системы. 6.1. ЗАДАЧИ СИСТЕМЫ 6.1.1. Области применения Задачи системы непосредственно вытекают из основной облас¬ ти ее применения — машинного проектирования (САПР). Под этим термином объединены разнообразные области при¬ менения, средствам которых должны быть присущи следующие свойства: графические устройства являются в основном диалоговыми, поэтому им должно уделяться особое внимание; интерактивное взаимодействие должно быть мощным и быст¬ рым для обеспечения наибольшего числа операций; прикладная программа должна быть максимально освобож¬ дена от моделирования и структурирования, т. е. от действий, связанных с графическим представлением объектов, и целиком предназначена для обеспечения функционального аспекта каче¬ ственного решения задачи; система синтеза должна сохранять структурные и другие свой¬ ства обрабатываемых объектов. В указанные рамки вписываются и другие области примене¬ ния, среди которых следует назвать: образование, где системы подобного типа могут использовать¬ ся для иллюстрации учебных курсов, алгоритмов и т. п., а также в режиме машинного обучения под руководством ЭВМ, при ко¬ тором изображение играет важную роль; искусство, где изображение является конечным результатом деятельности; к этой же категории будем относить мультиплика¬ ционное кино, рекламные фильмы, титры и т. д.; науку, когда требуется визуальное представление или модели¬ рование каких-либо явлений. 153
6.1.2. Требуемые характеристики Приведенный перечень ясно показывает широкое разнообразие возможных областей применения подобных систем. Это разно, образие касается всех аспектов, начиная с самой природы изоб- ражений и кончая типами рассматриваемых элементов. Большин- ство задач машинной графики (САПР) ограничивается обработ¬ кой изображений типа чертежей или схем, для которых высоко¬ качественный штриховой рисунок является необходимым и доста¬ точным. С другой стороны, в часто встречающихся случаях, ког¬ да эстетический аспект имеет решающее значение, существенно важным оказывается реалистичное представление конечного ре¬ зультата. Такое представление требует синтеза изображений, об¬ ладающих высокой степенью реалистичности: текстур, имитирую¬ щих различные материалы, а также эффектов освещения и т. д. Что же касается рассматриваемых элементов, то здесь разно¬ образие еще более заметно, поскольку одна и та же задача может требовать использования самых разных элементов. В особо слож¬ ном случае синтеза пейзажа [4, 66] типы изображаемых объек¬ тов весьма многочисленны и для каждого из них могут оказать¬ ся необходимыми свои приемы моделирования, например: для конструкций — с помощью плоских граней; для участков земли — с помощью сложных поверхностей; для «естественных» элементов, таких как деревья и т. п.,— с помощью синтаксических правил или приемов «случайного» мо¬ делирования; для облаков — с помощью специальных текстур. Диапазон требуемых скоростей обработки также весьма ши¬ рок как из-за различия в значении временного интервала, в те¬ чение которого должно быть синтезировано изображение, так и из-за разнообразия в характере основных операций. Такие прак¬ тические задачи, как моделирование поведения, требуют реаль¬ ного масштаба времени, в то время как восприятие объекта тре¬ бует всего лишь времени срабатывания, «удовлетворительного» для выполнения операций, относящихся к процессу описания. 6.1.3. Об управлении системой Приведенный краткий обзор требуемых характеристик ясно показывает, что удовлетворить решение всех задач с помощью однопроцессной системы вряд ли возможно. Один из вариантов решения проблемы мог бы состоять в том, чтобы поручить прик¬ ладной программе управление этим процессом. В этом случае си¬ стема свелась бы к единственному блоку описания и визуализа¬ ции; иначе говоря, система при этом превратилась бы в библиоте¬ ку операторов. Однако такое решение не является наилучшим для выполнения задания, так как вынуждает пользователя не только организовывать и реализовывать весь процесс, но и вни¬ 154
кать в детали моделирования элементов, характеристики исполь¬ зуемой структуры данных и особенности оборудования. Подобные рассуждения в конечном итоге привели к созданию системы, выполняющей весь процесс в целом. Начнем ее изуче¬ ние с рассмотрения различных уровней синтезаторов, целиком зависящих от выбора конфигурации аппаратных средств. После этого изучим иерархическую структуру каждого синтезатора, его архитектуру и внутренние процессы. Следует, однако, иметь в виду, что действие системы не ограничивается только этими про¬ цессами и пользователь может существенно расширить область ее применения, дополнительно включив необходимые процессы, разработанные им самим. 6.2. ВЫБОР ОСНОВНЫХ ХАРАКТЕРИСТИК 6.2.1. Конфигурация аппаратных средств Выбор конфигурации определяется необходимостью удовлет¬ ворить наибольшему числу возможных ситуаций, включающих в себя различные методы отображения: векторная развертка и вывод штриховых изображений (черте¬ жей, схем и т. п.) на выходной графопостроитель, растровая развертка с высокой разрешающей способностью и широкой гаммой цветов для получения реалистичных изобра¬ жений. С другой стороны, задачи машинного проектирования требуют организации мощного интерактивного взаимодействия, что влечет за собой глубокое проникновение признаков во внутренние аппа¬ ратные слои. В случае реалистичных изображений такое проник¬ новение требует жесткой логики для выполнения операторов пос¬ ле растровой памяти. Такими характеристиками не обладало ни одно рабочее мес¬ то, и поэтому было признано необходимым разработать специаль¬ ный терминал, получивший название «Гелиос» (HELIOS), ориен¬ тированный на работу в режиме интерактивного синтеза реалис¬ тичных изображений. Основные сведения об этом терминале представлены в подразд. 6.2.2. Обобщенная схема используемой конфигурации (рис. 98) вклю¬ чает в себя следующие элементы: главное вычислительное устройство, программные средства ко¬ торого были использованы в двух устройствах: CIIHB68 с систе¬ мой Multix и VAX 780 с системой VRS; рабочее место «Гелиос»: 4 планшета по 512x512 точек с 4096 возможными цветами, позволяющие изменять в реальном масшта¬ бе времени признаки внешнего вида (текстура, яркость) и освеще¬ ния (положение источников, рассеянный свет и т. д.); различные графические терминалы, имеющиеся в распоряже¬ нии лаборатории IMAG (4010, 4014, 4114 фирмы Tektronix), DEC Retrographics, Secapa. Все эти терминалы обладают общим свои- 155
Рис. 98. Конфигурация аппаратных средств ством — совместимостью с терминалом 4010 фирмы Tektronix, что позволяет рассматривать в первую очередь терминал только это¬ го типа; графопостроитель Benson и графопостроитель Tektronix, свя¬ занные с главным вычислительным устройством. 6.2.2. Рабочее место «Гелиос» Конфигурация рабочего места «Гелиос» схематически изобра¬ жена на рис. 99. По существу здесь объединены два синтезатора: с жесткой логикой и управляющий микропрограммный синтезатор на микропроцессоре 68000 фирмы Motorola (или 8086 фирмы INTEL). Эти два синтезатора собраны в едином блоке, с которым сое¬ динены различные периферийные устройства: Рис. 99. Рабочее место «Гелиос: 256
1) телевизионный монитор — монитор RGB с длительным по¬ слесвечением, имеющий четыре высокоомных входа (R, G, В) и отдельный вход синхронизации; 2) панель интерактивного взаимодействия, связанная непосред¬ ственно с процессором, позволяет управлять сеткой, а также вы¬ полнять некоторые локальные операции (перемещения источника света, окна и т. д.); 3) цифровой планшет, будучи подключенным непосредственно к местному процессору, позволяет последовательно вводить в не¬ го графическую информацию точку за точкой; имеется курсор и пять функциональных клавишей; 4) консоль оператора; в качестве примера этой консоли выбран графический терминал низкого уровня Rctrographics 640 фирмы DEC. Этот выбор позволяет наряду с алфавитно-цифровыми функ¬ циями классического телетайпа выполнять штриховые рисунки под управлением набора команд, совместимых с терминалом 4010 фир¬ мы Tektronix. Такие графические возможности особенно интересны для одновременного представления изображения и рисунка одной и той же сцены или для местных операций описания с использо¬ ванием цифрового планшета. 6.3. ОБЩАЯ АРХИТЕКТУРА СИСТЕМЫ 6.3.1. Общая организация Общая организация системы (в случае конфигурации «Гелиос») представлена на схеме (рис. 100). Все три синтезатора построены по одной и той же иерархи¬ ческой схеме, и их основные характеристики будут детально изу¬ чаться в следующих подразделах. Здесь мы ограничимся лишь тем, что кратко рассмотрим общую организацию системы и воз¬ можности ее составных частей. Главное вычислительное устройство Рабочее место Гелиос Программируемый синтезатор с программным обеспечением CLOVIS М икропрограммируемый синтезатор (процессор 68000) Синтезатор с жесткой логикой Рис. 100. Общая организация системы 157
6.3.2. Синтезатор с жесткой логикой Синтезатор, изготовленный целиком с жесткой логикой, ог )а. ничивается выполнением одного-единственного процесса, поэтому выбор этого последнего имеет решающее значение как для о;-с, печения характеристик синтезатора, так и для всей системы в лом. Процесс «Гелиос» представлен на рис. 101. Основной рассматриваемый элемент — плоская грань. Т пы обрабатываемых признаков принадлежат к классам: I.M.G.Gv — проекции грани на плоскость отображения и за¬ полнения внутренних точек в соответствии с признаком иденти¬ фикации грани; А — текстура, видность, прозрачность и отражение грани: G.Gv — проекция трехмерной системы координат грани на плоскость отображения; Е — описание источника света (цвет, направление, рассеян¬ ный свет); Ga — описание окна, которое должно быть спроецирован: на экран. В аппаратуре имеются два внутренних банка данных: БТ — банк текстур; БМ — банк моделей отражения. Процессы, выполняемые системой с жесткой логикой, пснзо- ляют проводить: атрибутирование и опрос всех вышеописанных признаков: описание и опрос координат экрана в точке с помощью встро¬ енной сетки; визуализацию в реальном масштабе времени всех записанных граней; этот процесс — неявный и выполняется непрерывно, Рис. 101. Процесс, выполненный устройствами с жесткой логикой 158
6.3.3. Программируемые синтезаторы Система содержит два программируемых синтезатора, моде¬ лируемых соответственно с помощью математического обеспече¬ ния главного вычислительного устройства и управляющего про¬ цессора (68000 фирмы Motorola). Эти две части программных средств делят между собой ту часть процесса визуализации, ко¬ торая не входит в сферу управления синтезатора с жесткой ло¬ гикой. Оптимальное разделение процесса связано с вычислитель¬ ной мощностью и памятью управляющего процессора. Программные средства, разделенные на два полностью сим¬ метричных и согласованных уровня, построены по иерархической схеме и выполняют часть различных процессов визуализации. Си¬ стема программного обеспечения главного вычислительного уст¬ ройства была описана в гл. 4. На обоих уровнях используются примитивы одних и тех же типов: присвоить (идентиф.-элементы, тип-признак, инфо) позволяет присвоить один и тот же признак одному или несколь¬ ким элементам; опросить (идентиф.-элементы, тип-признак, возврат-инфо) позволяет восстановить признак элемента; визуализировать (идентиф.-элементы, процесс) позволяет применить процесс визуализации к рассматриваемым элементам; описать (идентиф.-элементы, тип-признак, процесс) позволяет применить процесс описания к признаку «тип-признак» рассматриваемых элементов. Для программного обеспечения обоих уровней характерны су¬ щественные различия: в структуризации элементов: для главного синтезатора выб¬ рана древовидная структура, в то время как в блоке связи управ¬ ляющего синтезатора используется линейная структура; в физических способах запоминания признаков: основная па¬ мять на уровне главного, гибкие диски и оперативная память на уровне управляющего; в типах обрабатываемых признаков и элементарных операто¬ ров, которые зависят от процесса и выбранного разделения; в методах обращения к процессам: примитивы на уровне глав¬ ного, команды в кодах ASCII на уровне управляющего; в предлагаемых локальных операциях. В настоящее время только программное обеспечение управляющего синтезатора поз¬ воляет выполнять описание и управление банком локальных данных. Обе эти системы программного обеспечения были разработаны и реализованы в рамках проекта CLOVIS (Complexe Logiciel pour la Visualisation Interactive Structuree — Пакет Программ для Интерактивной Структурной Визуализации). В свою очередь, сам этот проект [58, 67, 69] появился в результате использова¬ ния и развития системы GRIGRI. 159
6.4. ПРОЦЕССЫ ВИЗУАЛИЗАЦИИ Процесс визуализации, с которым имеет дело пользователь при обращении к примитиву визуализировать, учитывает: конфигурацию аппаратных средств, т. е. процессы, определяе¬ мые терминалом и в известных случаях программным обеспече¬ нием управляющего синтезатора; желательный тип представления, т. е. штриховой рисунок клц изображение, состоящие из заполненных площадей, устранение или сохранение невидимых линий; общие свойства макета, т. е., например, одновременное присут¬ ствие как плоских, так и более сложных элементов; особые гео¬ метрические свойства, выражающиеся, например, в том, что плос¬ кие элементы никогда не соприкасаются с более сложными. Далее будет приведено несколько примеров схематического представления таких процессов, осуществляемых системой CLOVIS. 6.4.1. Каркасные элементы на терминале низкого уровня Этот процесс (рис. 102) относится к макету, состоящему толь¬ ко из элементов, как бы изготовленных из «железной проволоки». Можно отметить промежуточное запоминание, необходимое для того, чтобы обеспечивались частичное стирание и идентификация путем указания. Оператор синтеза внешнего вида управляет ге¬ нерированием некоторых штриховых текстур, которые не нахо¬ дятся под управлением аппаратных средств (разнородные отрез¬ ки, длинные линии и т. д.), и генерированием символов, форха которых отличается от стандартной. Рис. 102. Каркасные элементы на терминале низкого уровня 160
6.4.2. Каркасные элементы в системе «Гелиос» Как и в предыдущем случае, этот процесс (рис. 103) также от¬ носится только к каркасным макетам. Программные средства управляющего процессора принимают на себя большую часть операций. Промежуточное запоминание выполняется внутри синтезатора с жесткой логикой и програм¬ много обеспечения управляющего синтезатора. Выборочное сти¬ рание и указание непосредственно управляются на уровне син* тезатора с жесткой логикой. устройство с жесткой логикой Рис. 103. Каркасные элементы в системе «Гелиос» 6.4.3. Заполненные элементы на терминале низкого уровня Этот процесс (рис. 104) относится одновременно к элементам заполненным и каркасным. Отображение выдается в форме штри¬ ховых рисунков. Следует отметить наличие операции устранения невидимых линий, которая вынуждает повторно выполнять весь процесс для всех элементов при любых изменениях. Единствен¬ ное исключение сделано для операции изменения штриховой тек¬ стуры, которая может выполняться независимо. 6.4.4. Заполненные элементы в системе «Гелиос» Этот процесс (рис. 105) относится только к плоским граням, не проникающим друг в друга. Отображение выполняется в фор¬ ме реалистичного изображения. 6-47 16Г
В этом процессе используется оригинальный алгоритм устра¬ нения скрытых частей, в основе которого лежит алгоритм Шумей¬ кера [92]. Алгоритм является двухступенчатым: вначале рассмат¬ риваются статические приоритеты, зависящие от геометрии и мор- ЛОГИКОЙ Рис. 105. Заполненные элементы в системе «Гелиос» 162
Рис. 106. Случай взаимопроникающих граней фологии элементов, а затем — динамические, которые зависят от точки наблюдения. Детально этот алгоритм изложен в рабо¬ те [69]. В тех случаях, когда плоские грани проникают друг в друга, можно обратиться к предыдущему случаю, выполнив вначале опе¬ рацию визуализации с помощью рассечения граней аналогично тому, как это делается в алгоритме Ньюэлла и др. [80]. Эта опе¬ рация относится только к плоским многоугольникам, и процесс визуализации изменяется таким образом, что генерирование кон¬ туров предшествует разрезанию (рис. 106). 6.5. СИНТЕЗАТОР С ЖЕСТКОЙ ЛОГИКОИ 6.5.1. Общее представление Этот подраздел посвящен рассмотрению синтезатора с жест¬ кой логикой рабочего места «Гелиос», принцип действия которого непосредственно вытекает из выбранного подхода, изложенного выше. Этот терминал, ориентированный на синтез реалистичных изображений, обеспечивает высокую степень интерактивного взаи¬ модействия и широкий выбор функций, позволяющих выполнять: изменение (в реальном масштабе времени) внешнего вида объектов (текстуры, яркости); изменение (в реальном масштабе времени) условий освеще¬ ния (положения, цвета, интенсивности света источника, рассеян¬ ного света и т. д.); изменение (в реальном масштабе времени) некоторых геомет¬ рических признаков (окна); мгновенную идентификацию объекта, указанного на экране с помощью встроенной сетки; вычисление (в реальном масштабе времени) проекций текстур, а также диффузного и зеркального отражений для каждой грани; сжатие данных, которыми он обменивается с управляющим про¬ цессором; устранение невидимых частей. Речь идет о выборе, целью которого является преимуществен¬ ное удовлетворение в первую очередь задач машинного проекти¬ рования и в том числе таких практических задач, в которых эсте¬ тические характеристики вида объекта непосредственно включены в процесс проектирования. Таких задач достаточно много, здесь назовем только некоторые из них: конструирование различных объектов (мебель, украшения, по¬ суда, домашняя утварь), в особенности выбор покрытия (дере¬ во, обивочные ткани, металл, окраска и т. д.);
декорации — для оценки гармонии между формой и цветом- архитектура—для определения окончательного вида соору¬ жения; градостроительство — для того, чтобы наилучшим образом вписать постройки в пейзаж. Та часть системы «Гелиос», которая построена на устройствах с жесткой логикой, является однопроцессным синтезатором, предназначенным для формирования терминального уровня всего процесса визуализации, и содержит программную и аппаратную части. Рассмотрим последовательно основные элементы синтеза¬ тора, основные операции и структуры данных. 6.5.1.1. Понятые о плоской грани в системе «Гелиос» Единственным элементом, обрабатываемым терминалом, яв¬ ляется плоская грань. Однако это понятие существенно отличает¬ ся от общепринятого. Здесь оно означает однородное множество точек, обладающих одними и теми же признаками идентичности, внешнего вида и геометрическими (одинаковой ориентацией трех¬ мерной системы базовых векторов). В качестве признаков внешнего вида приняты следующие: текстура, представляющая собой распределение цветов, харак¬ теризующих материал, из которого состоит грань, независимо от условий его наблюдения и освещения; отражение, выражающее свойство материала отражать падаю¬ щий на него световой поток; видимость или невидимость, прозрачность или непрозрачность. Геометрические признаки выражаются триадой связанных с гранью векторов (U, V, N), которые, в свою очередь, выражены в координатах х, у, z, связанных с экраном (рис. 107). Наибольшее количество граней ограничено числом 4096, иден¬ тификация каждой из них определяется присвоением ей номера от 0 до 4095. Это и есть тот номер, который восстанавливается после указания с помощью сетки. Рис. 107. Триада векторов, связан- Рис. 108. Объект, представленный с ных с гранью помощью трех граней 164
Следует заметить, что если число 4096 представляется по ка- ^им-либо причинам недостаточным, то имеется дополнительная зозможность отображать объекты, состоящие из значительно большего количества граней. Так, грани, расположенные в парал¬ лельных плоскостях и состоящие из одного и того же материала, представляются одной и той же «гранью в смысле Гелиоса». На рис. 108 показан объект, составленный всего из трех граней. Ра¬ зумеется, эти единые грани уже не могут быть идентифицирова¬ ны порознь. 6.5.1.2. Последовательность выполнения процесса Наряду с идентификацией путем указания выбранный процесс позволяет легко изменять признаки, характеризующие свойства объекта (внешний вид, условия освещения). Как было показано в гл. 2, выбор процесса визуализации играет решающую роль. Он обеспечивает: проникновение обрабатываемых признаков А и Е; запоминание других синтезируемых признаков (М, G, Gv, I); операции синтеза основных признаков; операции межэлементной композиции. Основной процесс, который был разработан для жесткой ло¬ гики системы «Гелиос», изображен на рис. 109. Можно заметить большое число встроенных операторов синтеза и глубокое про¬ никновение признаков А и Е. Рассмотрим подробно различные операторы: 165
1 — синтез признака G, определяющего расположение одних граней относительно других (описание), и признаков Gv, выра. жающих параметры съемки. Этот оператор заключается, по су! ществу, в перемножении матриц преобразований с целью полу, чения триад векторов, связанных с каждой гранью, выраженных в координатах снимка (растровая память); 2 — преобразование точек, выражающих контур грани или множество контуров, в координаты снимка по результатам обра¬ ботки признаков (G.Gv); при необходимости выполняется кадри¬ рование; 3 — присвоение внутренним точкам спроецированной грани в растровой памяти идентификационных номеров. Эта растровая память содержит плоскость, которую называют «плоскостью иден¬ тификации». Здесь мы имеем дело с категорией операторов с жесткой логикой, встроенных в терминал, которые выполняются для каждого элемента изображения со скоростью кадровой раз¬ вертки; 4 — определение той части снимка, которая видна на экране. Эта функция «окна» позволяет также выражать сдвиги и врез¬ ки. Результатом действия этого оператора является идентифика¬ ционный номер видимой грани в каждой точке результирующего изображения; 5 — проецирование текстуры, присвоенной каждой грани, на плоскость этой грани, т. е. «облицовка» площади грани этой тек¬ стурой; 6 — необходимые преобразования текстур. Этот оператор поз¬ воляет отображать изменения материалов, характерные для со¬ вокупности граней; 7 — вычисление углов между направлением нормали к грани и направлением на источник света, а также между нормалью и средним (между источником и наблюдателем) для определения коэффициентов диффузного и зеркального отражений; 8 — необходимые преобразования характеристик отражения. Этот оператор позволяет полностью изменять условия освещения для всех граней (эффект тумана, контраст и т. д.); 9 — синтез А.Е. Умножение цвета текстуры на коэффициенты отражения, полученные при выполнении операторов 7 и 8; 10 — окончательный синтез — отображение текущей точки, определяемой оператором 4, с цветом, полученным при выполне¬ нии оператора 9. 6.5.1.3. Иерархическая организация блоков Синтезатор с жесткой логикой разработан на основе понятии, изложенных в гл. 1, 2. Поэтому он содержит три основных бло¬ ка: управления, связи и визуализации-описания. Блок управления. В задачу процессора с жесткой логикой входит обмен с управляющим вычислительным устройством и обеспечение требуемой последовательности выполнения операто¬ 166
ров. Последняя задача состоит в том, чтобы генерировать и рас¬ пределять сигналы синхронизации, необходимые для других про¬ цессов и для телевизионного монитора. Блок связи. С помощью процессора с жесткой логикой этот блок управляет процессами атрибутирования и опроса различных устройств встроенной памяти. Он управляет также конфликта¬ ми, которые могут возникнуть между процедурами внешнего об¬ ращения, доступа к процессам визуализации и регенерации ди¬ намической памяти. Блок описания-визуализации. Операторы процесса визуализа¬ ции сгруппированы в четыре процессора, занятых вычислением соответственно: видимости, текстур, параметров отражений, па¬ раметров освещения и окончательного отображения. Дополнительный процессор осуществляет единственный про¬ цесс общего описания, позволяющий получать координаты в плос¬ кости экрана с помощью двоичной сетки. Внешний доступ Рис. 110. Общая архитектура системы «Гелиос» ^
6.5.1 А. Структуры данных Обрабатываемая этими процессами информация записывается управляющей программой в шесть различных запоминающих устройств: растровую память, или плоскость идентификации (признак M.G.Gv.I); список граней (признаки A, G.Gv); банк текстур; банк моделей отражения; параметры освещения (признак Е); параметры окна (признак Ga). Список граней — это единственная структура, разделенная процессорами вычислений. Именно этот список обеспечивает со¬ ответствие между различными признаками, связанными с одной и той же гранью. Для каждой из 4096 граней он содержит одно¬ временно синтезируемые: индикаторы видимости (невидимости), прозрачности (непроз¬ рачности) для каждой идентифицируемой плоскости; указатель адреса текстуры, присвоенной грани; номер модели отражения; вектор нормали к плоскости грани; базовые векторы плоскости грани. Эти признаки моделируются отдельно для того, чтобы упрос¬ тилась работа процессора синтеза. Этот этап моделирования был одним из наиболее серьезных при создании терминала, и некото¬ рые подробности о нем будут приведены в подразд. 6.5.2. Общая архитектура синтезатора с жесткой логикой схемати¬ чески изображена на рис. 110. 6.5.2. Процессор визуализации Здесь описаны четыре устройства памяти и функции, выпол¬ няемые четырьмя процессорами визуализации. Описание приво¬ дится без подробных технических деталей, которые, в свою оче¬ редь, будут изложены в подразд. 6.5.2. 6.5.2.1. Процессор видимости В процессоре выполняются два элементарных оператора: оператор синтеза Ga, реализующий функцию окна, оператор композиции, предназначенный для исследования ви¬ димости. Плоскости идентификации. Система «Гелиос» позволяет уп¬ равлять восемью плоскостями идентификации, из которых пос¬ ледняя, так называемая плоскость фона, обладает некоторыми особенностями. Любая из этих плоскостей представляет собой растровую па¬ мять размером 512x512 точек, в каждую из которых может 168
о 111111111111111111111 222222111111111111111133 222222222221111133333333 222222222222223333333333 222222222222223333333333 222222222222223333333333 22222222222223333333333 1111111111111 11111 Г рань 3 222222223333333333 222223333 223 Рис. 111. Память идентификации граней быть записано 12-битовое слово, что соответствует номеру иден¬ тификации визуализируемой грани от 4 до 4096 (см. рис. 111). В этих плоскостях запоминается только снимок, а не результи¬ рующее изображение. В плоскости же фона запоминается только один идентифика¬ ционный номер, который присваивается всем точкам снимка. Важ¬ ной особенностью плоскости фона является возможность связать текстуру со всеми снимками через единственную запись. Одно¬ временно обеспечивается видимость только одной грани в каж¬ дой точке экрана (см. далее подраздел «Исследование види¬ мости»). Функция «окна». Эта функция (оператор 4 процесса на рис. 109) существует для каждой из плоскостей идентификации, в том числе и для плоскости фона. Она позволяет описывать квадрат¬ ный участок снимка, который должен быть отображен на экра¬ не, путем индикации его левого верхнего угла, размера и спосо¬ ба кодирования. Область адресации каждого снимка может простираться от О до 4095. В то же время в соответствии с потребностями полез¬ ное пространство плоскостей, размер которого обычно 512x512, 0,0 512 1023 б) а) Рис. 112. Функция окна: a — рабочая плоскость, б — экран 169
0,0 512 1023 Рис. 113. Сдвиг и масштабирование: а — рабочая плоскость, б — экран может быть сокращено до 256x256 точек и даже меньше. Одна из задач, выполняемых этой функцией, — дать возможность про- водить требуемые действия на уменьшенной площади (рис. 112). Изменяя угол окна, можно перемещать квадрат по плоскости в реальном масштабе времени для того, чтобы центрировать зо¬ ну, интересующую пользователя; можно выполнять также мас¬ штабирование, изменяя размер окна, как показано на рис. 113. Метод масштабирования позволяет выражать видимость или невидимость снимка вне полезной зоны. В случае видимости по¬ лезная зона повторяется в адресуемом пространстве снимка (рис. 114). Комбинируя эти возможности, можно сдвигать одни плоскос¬ ти относительно других, накладывать их друг на друга или рас¬ полагать рядом. Это позволяет моделировать движения в реаль¬ ном масштабе времени типа мультипликационного кино. Исследование видимости. Эта операция является точкой схо¬ димости вышеописанных паралллельных процессов. Ее цель co- о.о 512 1023 Рис. 114. Иллюстрация методов кадрирования: а — рабочая плоскость, б — экран 170
Рис. 115. Приоритеты плоскостей идентификации стоит в определении видимой грани в каждой точке изображения. При таком исследовании учитываются: приоритеты плоскостей идентификации, метод кадрирования окна, видимость и прозрач¬ ность грани. Приоритеты плоскостей фиксированы конструктивно (рис. 115). Плоскость 0 обладает наивысшим приоритетом, плоскость фона — самым низким. Перечень граней может содержать до семи индикаторов видимости, выражающих, видна или не видна грань на каждой плоскости. Плоскость же фона является един¬ ственной, в которой находящаяся грань всегда видима. Вычисление видимости выполняется с помощью поперечного процесса конвейерного типа, позволяющего с учетом порядка пе¬ ресечения плоскостей определить, какова та первая грань, которая является видимой. Заметим, что можно мгновенно заменить види¬ мость на невидимость путем просто¬ го изменения одного бита в индика¬ торе видимости. Таким же образом можно сделать видимой или неви¬ димой целую плоскость с помощью функции окна, передвинув его на¬ ружу из полезной зоны. Прозрачность. Хотя описывае¬ мая организация процессора мало¬ пригодна для того, чтобы учиты¬ вать прозрачность на аппаратном уровне, некоторые ухищрения по¬ зволяют получить приемлемый ре¬ зультат. Из всех плоскостей только ну-
левая воспринимает прозрачные грани, для которых предусмотрен дополнительный индикатор. Когда грань на этой плоскости види¬ ма и прозрачна, признак видимости присваивается только одной из двух точек, в то время как другая (невидимая) переносится на следующую плоскость. Чтобы не допускать появления на эк¬ ране вертикальных полос, порядок следования видимых и неви¬ димых точек на каждой строке делают противоположным (рис. 116). 6.5.2.2. Процессор текстур Этот процессор выполняет две элементарные операции: проецирование текстур на плоскость грани (оператор 5 про¬ цессора на рис. 109: синтез A.G); получение текстуры в банке, встроенном в аппаратуру (опера¬ тор 6 процесса на рис. 109: конструирование). Понятие о текстуре. Текстура в системе «Гелиос» характери¬ зуется тремя особенностями: каждая точка выражает цвет, присущий грани, независимо от условий освещения (4096 цветов для каждой точки); предполагается, что каждая текстура определена только в плоскости грани, а не в плоскости экрана. Проекция на экран выполняется для каждой отображенной точки в зависимости от триады векторов, связанных с гранью; текстуры различного размера (от 16x16 до 256X256 точек) могут быть использованы одновременно. Имеющаяся в распоря¬ жении память позволяет удерживать запись о 256 К точках тек¬ стуры по 12 бит для каждой точки. Цвета моделируются в систе¬ ме «красный, зеленый, синий». Эти три свойства позволяют рассматривать каждую текстуру как визуальное моделирование внешнего вида данного материа¬ ла (дерево, кирпич, ткань и т. д.) независимо от триады векторов и условий освещения. Поэтому для граней, «изготовленных» из од¬ ного и того же материала, достаточно иметь всего одну текстуру. Банк текстур. В состав терминала «Гелиос» входит банк, поз¬ воляющий запоминать текстуры разного размера. Чтобы умень¬ шился объем, необходимый для запоминания в перечне граней, банк текстур организован таким образом, что размер неявно за¬ дан с помощью адреса используемой текстуры. Этот адрес представляет собой координаты верхнего левого угла текстуры, выраженные 10 битами (5 для абсциссы, 5 для ординаты). На рис. 117 показан пример конфигурации банка текстур. Максимальное число текстур каждого размера: 1 текстура 512x512, 3 текстуры 256x256, 12 текстур 128x128, 48 текстур 64x64, 172
f f f f Рис. 117. Пример конфигурации банка текстур: Ъ— 2 текстуры 256X256, с — 3 текстуры 128x128, d—11 текстур 64X64, е — 24 тек¬ стуры 32X32, / — 36 текстур 16x16 192 текстуры 32x32, 768 текстур 16x16. Уменьшить теряемую площадь и упростить задачу пользова¬ теля позволяет обслуживание этого банка текстур управляющей программой. Проецирование текстур. Поскольку предполагается, что тек¬ стура определена в плоскости грани, то она, следовательно, дол¬ жна быть спроецирована на плоскость экрана. Упростить вычис¬ лительное устройство с жесткой логикой, которое должно дейст¬ вовать со скоростью поступления видеосигнала, позволяет осу¬ ществление только аксонометрических проекций (т. е. предпо¬ лагается, что наблюдатель бесконечно удален). Тогда (рис. 118) —> —> —> исходя из триады векторов 3D, (U, V, N), связанных с гранью, —У —^ получают проекцию базовых векторов U, V из плоскости грани на плоскость снимка (оператор 1 процесса на рис. 109). Однако задача, встречающаяся на практике, является обрат ной, для каждой точки снимка (Хе, Ye) требуется определить со 173
X Рис. 118. Проецирование триады векторов грани ответствующую ей точку в плоскости грани (Xf, Yf), записать следующим образом: Xf = м-х Хе Y i Ye Определение видимости Г рань N Рис. 119. Проектирование текстур 174 ЧТО МОЖНО Умножение мантисс Сдвиг показателей степени Сложение
Инверсия (М-1) матрицы предварительно вычисляется управ¬ ляющей программой для каждой точки грани, а затем записы¬ вается в список граней: 1 Vy -Vx a b Ux-Vy — Uy-Vx -Uy Ux с d Следует отметить, что случай, когда детерминант обращается в нуль, соответствует коллинеарности векторов U и V, т. е. ког¬ да плоскости грани и снимка взаимно перпендикулярны. Вычис¬ ление результата в этом случае не имеет смысла. Коэффициенты (а, Ь, с, d) матрицы М являются веществен¬ ными числами, и требуется применить специальное кодирование, чтобы уменьшить объем списка граней и упростить вычисления., «Облицовка». Следующий после определения координат теку¬ щей точки (Xf, Yf) в плоскости грани этап состоит в вычислении результирующей точки в банке текстур с учетом ее адреса и не¬ явно заданного размера. Мы упростили эту фазу вычислений, предположив, что точка (0,0) банка текстур совпадает с началом координат в плоскости грани и с началом координат в плоскости снимка. При этом пред¬ положении координаты (Xb, Yb) в банке текстур вычисляются с помощью следующего выражения: ХЬ = Ха размер+|Xf|, Yb = Ya размер + |Yf|, где (Ха, Ya) — указатель текстуры (адрес ее левого верхнего угла). Трехэтапный процесс конвейерного типа, используемый для проецирования и «облицовки» текстурой, показан на рис. 119. Вы¬ числения проводятся в темпе поступления видеосигнала. 6.5.2.3. Процессор отражения Задачей этого процессора является определение коэффициен¬ тов диффузного и зеркального отражений в каждой точке экра¬ на. Для этого можно использовать следующие данные: вектор нормали к видимой грани (признак G); параметры, определяющие условия освещения (признак Е); модели отражения. Процессор выполняет следующие элементарные операции: вычисление углов (синтез (E.G): оператор 7 на рис. 109), моделирование отражения (конструкция (Е): оператор 8 на рис. 109). Вычисление углов. Вычисление с помощью процессора с жест¬ кой логикой угла между двумя направлениями в пространстве явилось одной из наиболее тонких операций в исследовании. В отличие от метода, который был предложен Бассом [7], ис¬ пользуемый здесь метод позволяет избавить от таблиц больших объемов. 175
Рис. 120. Представление нормали сферических координатах Принципиальная особенность этого подхода заключается в ис¬ пользовании сферических коор¬ динат для описания направле¬ ния относительно системы коор¬ динат экрана (рис. 120). Для представления каждого из двух углов (а и Ь) отведено по 5 бит, что позволяет отобра¬ зить 1024 направления в полу¬ пространстве перед экраном. За¬ метим, что а изменяется от —л/2 до л/2, в то время как b — от 0 до л. Реально из-за двоичного кодирования этих двух углов край¬ ние значения ограничены величинами: для а от —л/2 до (31/64) л, а для b от 0 до (31 /32)л. Пусть требуется вычислить угол d между двумя единичными векторами j и к, выраженными в сферических координатах: j = = (aj, bj), k= (ak, bk). Декартовы координаты двух векторов будут: xj = sin (aj) sin (bj); xk = sin (ak) sin (bk); yj = cos (bj); yk = cos (bk); zj = cos (aj) sin (bj); zk = cos (ak) sin (bk), что позволяет вычислить cos (d) = sin (bj) sin (bk) (sin (aj) sin (ak) + + cos (aj) cos (ak)) + cos (bj) cos (bk). (6.1) Можно заметить, что это равенство малопригодно для реали¬ зации с помощью жесткой логики по трем основным причинам: необходимо выполнить пять операций умножения, восемь раз вы¬ числить тригонометрические функции, все операции значительно усложняются из-за того, что значения всех входящих в него пе¬ ременных могут быть как положительными, так и отрицатель¬ ными. Выражение (6.1) можно преобразовать с помощью двух ис¬ кусственных приемов. 1. Тригонометрические преобразования для перехода к функ¬ циям суммы и разности углов: cos (d) = 1/2 (cos (bj — bk) — cos (bj + bk)) cos (aj — — ak) + cos (bj + bk) + cos (bj — bk). (6.2) В соответствии с этим выражением требуются вычисления всего трех тригонометрических функций и только одна операция умно¬ жения. 176
' z. иреооразование для получения только положительных зна¬ чений переменных. Пусть h есть функция вида h (х) = cos (х) + 1. Тогда h (d) = 1/2 (h (bj - bk) - h (bj + bk)) h (aj - ak) + h (bj + bk). (6.3) В выражении (6.3) все значения, в том числе значение ре¬ зультата, положительны и могут изменяться от 0 до 2, что резко упрощает принципиальную схему, как будет показано далее. Вычисление параметров отражения. В используемом методе вычислений учитываются: диффузное отражение, функция угла между нормалью и направлением на источник света; зеркальное отражение, функция угла между нормалью и средним направле¬ нием между источником света и наблюдателем. Геометрия отражений была описана в гл. 5. Наблюдатель располагается на бесконечном удалении в нап- —> равлении оси Oz (относительно экрана). Напомним, что N=(an, bn) — вектор нормали к грани; L=(al, Ы) — вектор, направлен¬ ный на бесконечно удаленный источник света; M=(am, bm) — вектор среднего направления между источником и наблюдателем (осью Oz). Коэффициенты диффузного Rd и зеркального Rs отражений определяются как Rd = D(l), Rs = S (m), —► —► где 1 — угол между векторами N и L; ш — угол между вектора¬ ми N и М; D — модель диффузного отражения; S — модель зер¬ кального отражения. Из выражения (6.3) получаем D (1) = DO h-1 (1/2 h (an - al) h (bn - Ы) - -h(bn + bl) + h(bn + bl)), S (m) = SO h-1 (1/2 h (an — am) h (bn - bm) - — h (bn + bm) + h (bn + bm)), где an, bn получаются из списка граней (вектор нормали); al, Ы и am, bm вычисляются управляющей программой и записывают¬ ся в специальные регистры. Банк моделей. Память системы «Гелиос» может хранить че¬ тыре модели отражений. Для каждой грани в ее списке записана соответствующая модель. При создании системы можно записать стандартные модели, чтобы упростить вычисления, например, раз¬ личных уровней «бликов». 177
Рис. 121. Принципиальная схема вычисления углов Каждая модель представляет собой таблицу, содержащую зна¬ чения D0h-1(x) и S0h_1(x) для значений х от 0 до 2. Коэффи¬ циенты в функции угла изменяются в интервале 0... 1. Банк моделей представляет собой ЗУ объемом 256x4 бит с возможностью внешнего доступа. Углы 1 и m вычисляются в соответствии с выражением (6.3) согласно схеме, показанной на рис. 121. Функции h записаны в биполярные ППЗУ уменьшенной ем¬ кости (32 однобайтовых слова). 6.5.2.4. Процессор освещения Этот процессор выполняет результирующий синтез внешнего вида и освещения (операторы 9 и 10 процесса на рис. 109). Дан¬ ные, которые он при этом обрабатывает, таковы: (Tr. Tg. ТЫ источник света источника (Cr, Сд, СЬ) Рис. 122. Структурная схема вычислений параметров освещения 178
цвет текущей точки, получаемой от процессора текстур (4096 возможных цветов); коэффициенты диффузного и зеркального отражений, получен¬ ные от процессора отражений; цвет источника освещения, данные о котором находятся в ре¬ гистре; интенсивность рассеянного света. Используемая модель освещения была подробно описана в гл. 5. Вычисления в схеме с жесткой логикой выполняются сог¬ ласно выражениям Сг = Max (max (1, A + Rd)Tr + Rs, l)Sr, Cg = Max (max (1, A + Rd)Tg + Rs, l)Sg, Cb = Max (max (1 ,A + Rd) Tb + Rs, 1) Sb. Структурная схема вычислений параметров освещения пред¬ ставлена на рис. 122. 6.5.3. Процессор связи Синтезатор с жесткой логикой можно представить как сово¬ купность восьми 16-битовых регистров, занимающих первые 16 байт адресуемой области. Эти восемь регистров — следующие: 00 — 01 — регистр данных (чтение и запись), 02 — 03 — регистр состояния (чтение), 04—-05 — индексный регистр (запись), 06 — 07 — регистр адреса X (запись), 08 — 09 — регистр адреса Y (запись), 0А — 0В — регистр повторений (запись), ОС — 0 — регистр маски (запись), 0Е — 0 — регистр приращений (запись). Этих регистров, содержимое которых будет рассмотрено да¬ лее, достаточно для того, чтобы управлять всеми функциями, встроенными в синтезатор. Длина каждого регистра составляет 2 байта, но в действительности она может быть переменной. Ин¬ формация, которая содержится в регистрах, не изменяет своего значения до момента ее нового определения. В то же время не¬ которые регистры являются самоперестраивающимися, что позво¬ ляет упростить некоторые часто встречающиеся функции. Регистр данных. Через этот регистр проходят данные, посту¬ пающие из синтезатора с жесткой логикой или предназначенные для него. Информация всех типов, обрабатываемая системой «Гелиос», может быть кодирована максимум на 12 бит. Приве¬ дем типы информации и «длину» соответствующих им кодов: номер идентификации =М2 бит, цвет =4-12 бит, абсцисса =4-12 бит, ордината =4-12 бит, 179
коэффициенты отражения =^8 бит, индикаторы видимости =И ... 2 бита, коэффициент увеличения =^8 бит. Все эти данные располагаются в правой части 16-битовой об¬ ласти. Регистр состояния. Этот регистр, доступ к которому разрешен только в режиме чтения, отмечает наличие событий, относящихся к связи с микропроцессором 6800 или к синхронизации видеосиг¬ налов. Информация сигнализирует о том, что: выполняется об¬ ратный ход по кадру, выполняется четный полукадр, данные пред¬ ставлены в «регистре данных», «регистр данных» свободен для записи, совокупность регистров освобождена предыдущей командой. Индексный регистр. На этот регистр возложены четыре основ¬ ные функции. Он должен отмечать: к какому процессору относит¬ ся следующая команда; каково состояние внутренней памяти у того процессора, к которому относится команда; каково содержа¬ ние операции (запись или чтение); какой регистр будет управ¬ лять операцией записи или считывания. Последнее свойство позволяет избавиться от множества бес¬ полезных перезаписей и значительно повышает скорость выпол¬ нения операций отображения. Регистр адреса X. Этот регистр содержит адрес одномерной памяти, или абсциссы растровой памяти. Следует отметить, что в тех случаях, когда длина адреса превышает установленное зна¬ чение, выполняется операция, соответствующая сокращенному ад¬ ресу, длина которого в битах определяется установленной длиной. Данные, записанные в регистрах адреса X, могут автомати¬ чески увеличиваться для того, чтобы упростились последователь¬ ные запись и считывание (см. подразд. «Регистр приращений»). Для внутренних регистров не существует никакого адреса, они никак не обозначены. Регистр адреса Y. Этот регистр содержит ординаты двухмер¬ ной памяти. Его содержимое, как и у предыдущего регистра, мо¬ жет возрастать автоматически, и он никак не обозначен для всех одномерных ЗУ. Регистр повторений. Чтобы ускорить запись данных, которые должны обрабатываться в течение достаточно большого интерва¬ ла времени, при большом количестве последовательно изменяю¬ щихся адресов (заполнение площадей, одинаковые цвета для не¬ скольких записей и т. д.), в этом регистре может быть записан коэффициент повторений. Элементы с жесткой логикой записы¬ вают последовательно и с большой скоростью отмеченное число позиций (одно значение каждые 75 не). Регистр содержит одну позицию. Максимальное число, кото¬ рое может быть записано, составляет 4095. Регистр маски. Первая задача этого регистра заключается в непосредственном генерировании с помощью жесткой логики лю¬ бых штриховых текстур и стандартных алфавитно- цифровых сим¬ 180
волов, а также специальных символов, требуемых для выполнения конкретного задания. В этом регистре содержатся сведения непосредственно о мае- ке и о коэффициенте увеличения маски. Маска используется во время любой записи, какой бы она ни была, следующим образом: для каждой позиции, в которую информация может быть за¬ писана, запись производится, если нулевой бит маски есть 1, в противном случае записи не происходит; выполняется циклическая перестановка маски вправо для сле¬ дующей позиции; если коэффициент увеличения F не равен нулю, то циклическая перестановка выполняется всего один раз для F4-1 позиций. Этот регистр позволяет создавать штриховые текстуры в со¬ ответствии с заданием и применять их к линиям любого типа (ок¬ ружность, эллипс, прямая). Генерирование любых символов так¬ же сильно упрощается при использовании данного регистра, по¬ скольку достаточно загрузить маску регистра строкой или столб¬ цом матрицы, представляющей символ. Кроме того, каждый сим¬ вол может иметь 16 различных размеров в зависимости от коэф¬ фициента увеличения. К числу дополнительных возможностей метода можно отнес¬ ти «ажурное» заполнение многоугольников или кругов с помощью псевдоструктур, предварительно заданных в матричной форме или вычисленных. Регистр приращений. С помощью этого регистра можно уточ¬ нять способ изменения содержимого регистров адресов X и Y (увеличения или уменьшения). Это действие может выполняться после каждой записи или считывания или только после того, как последняя из всех предусмотренных позиций в регистре «повторе¬ ний» записана или считана. Разрешены все комбинации, обеспе¬ чиваемые кодированием. Автоматический режим приращений, а также использование регистра повторений и возможность выбора регистра запуска поз¬ воляют оптимизировать генерирование графических объектов (отрезки прямых, окружности, прямоугольники, заполненные мно¬ гоугольники и т. д.).
СПИСОК ЛИТЕРАТУРЫ 1. B.D. Agkland, N.H. Weste The Edge Flag Algorithm - A Fill Method for Raster Scan Display IEEE Transactions on Computers, Vol C-30, № 1, 1-81 2. A. Appel The Notion of Quantitative Invisibility and The Machine Rendering of Solids Proc. of ACM 2nd National Conference, 67 3. A. Appel Some Techniques for Shading Machine Rendering of Solids Proc, of the Spring.Joint Computer Conference, Vol 32,*68 4. J-.O. Amberg, B. de Queylar, J.P. Tramoni CIPAYE : Creation interactive de paysages elementaires Projet- d'eleves ingenieurs, Grenoble, juin 80 5. P. Atherton, K. Weiler Hidden Surface Removal Using Polygon Area Sorting Computer Graphics SIGGRAPH-ACM, vol 11, № 2, 77 6. P. Atherton, K. Weiler, D. Greenberg Polygon Shadow Generation Computer Graphics, SIGG RAPH-ACM, vol 12, № 3, 78 '7. D.H.:;l3ass Using the Video Lookup Table for- Reflectivity Calculations Computer Graphics and Image Processing, № 17, 81 8. J.F. ВI inn Models of Light Reflection for Computer Synthetized Pictures Computer Graphics SIGG RAPH-ACM, vol 11, № 2, 77 J.F. Blinn Simulation of Whinkled Surfaces Computer Graphics, SIGG RAPH-ACM, vol 12, № 3, 78 10, J.F. Blinn, M.E. Newell Texture and Reflection in Computer Generated Images CACM vol 19, N° 10, oct 76 182
11. J.F. Blinn, M.E. Newell Clipping Using Homogeneous Coordinates Computer Graphics, SIGGRAPH-ACM, vol 12, № 3, 78 12. S. Boinodiris Parallel Interactive Processing in Shaded Color Graphics Ph.D. Thesis, North California State University, 5-79 13. Ph. Boulle Etude et realisation d'algorithmes pour la visualisation de scenes composees de facettes planes These de Docteur-lngenieur, Grenoble, 9-80 14. Ph. Boulle Une nouvelle approche des problemes lies a la description de scenes tridimensionnelles Rapport de recherche № 359, Grenoble, 3-83 15. I.C. Braid The Synthesis of Solids Bounded by Many Faces CACM vol 18, № 4, 4-74 16. J.E. Bresenham Algorithm for Computer Control of a Digital Plotter IBM System Journal, vol 4, № 1, 65 17. J.E. Bresenham An Incremental Algorithm for Digital Display of Circular Arcs CACM vol 20, № 2, 2-77 18. J.E. Bresenham Incremental Line Compaction The Computer Journal, vol 25, № 1, 82 19. K.E. Brassel, R. Fegeas An algorithm for Shading of Regions on Vector Display Devices Computer Graphics, SIGGRAPH-ACM, vol 13, № 3, 79 20. E. Catmull, A.R. Smith 3-d Transformations of Images in Scanline Order Computer Graphics, SIGGRAPH-ACM, vol 14, № 3, 8-80 21- E.E. Catmull A Suboivision Algorithm for Computer Display of Curved Surfaces Ph.D. Thesis, University of Utah, 12-74 22. E. Catmull A Hidden Surface Algorithm with Anti-aliasing Computer Graphics, SIGGRAPH-ACM, vol 12, № 3, 78 23. J.H. Clark Hierarchical Geometric Models for Visible surface Algorithms CACM vol 19,. № 10, 10-76 183
24. E. Cohen A Method for Plotting Curves Defined by Implicit Equations Computer Graphics, SIGGRAPH-ACM, 76 25. S.A. Coons Surfaces for Computer Aided Design or Space-forms MIT MAC TR-41, 6-67 26. R.L. Cook, K.E. Torrance A Reflectance Model for Computer Graphics Computer Graphics, SIGGRAPH-ACM, vol 15, № 3, 8-81 27. F. Coupigny Fabrication de dessins animes a 11 aide du systeme PSYGHE- ANIM 2 Congres AFCET-TTI, Nancy, 11-80 28. F.C. Crow Shadows Algorithms for Computer Graphics Computer Graphics SIGGRAPH-ACM, vol 11, № 2, 77 29. F.C. Crow The Aliasing Problem in Computer-generated Shaded Images С ACM, vol 20, № 11, 11-77 30. F.C. Crow, B.T. Phong Improved Rendition of Polygonal Models of Curved Surfaces 2 nd USA-Japan Computer Conference, 75 31. M. Doros Algorithms for Generation of Discrete Circles, Rings and Disks Computer Graphics and’ Image Processing 10, 79 32. W. Dungan, A. Strenger, G. Sutty Texture Tile Considerations for Raster Graphics Computer Graphics, SIGGRAPH-ACM, vol 12, № 3, 78 33. R.A. Earnshaw Line-Tracking for Incremental and Raster Devices Computer Graphics SIGGRAPH-ACM, vol 11, № 2, 77 34. R. Eckert, G. Enderle, K. Kansy, F.J. Prester GKS79 : Proposal of a Standard for a Graphic Kernel System Congres EUROGRAPHICS, Bologna, 9-79 35. J. Encarnacao, G. Enderle, K. Kansy et al. The Workstation Concept of GKS and the Resulting Conceptual] Differences to the GSPC Core System Computer Graphics, SIGGRAPH-ACM, vol 14, № 3, 8-80 36. J.M. England et al. A Display-Optimized Processor Proc. 2 nd Annual Symposium on Computer Architecture, ’1-75, 184
37. R.R. Everett • The Whirlwind I Computer Joint A IEEE-1 RE, Electr. Digit. Computer, 52 38. F. Nunes Ferreira Conception et realisation d'un systeme interactif pour la synthese d'images realistes : HELIOS These de Docteur-lngenieur, Grenoble, 9-81 39. H. Fuchs, Z.M. Kedem, B.F. Naylor On Visible Surface Generation by a Priori Tree Structure Computer Graphics, SIGGRAPH-ACM, vol 14, № 3, 8-80 40. E. Feibush, M. Levoy, R.L. Cook Synthetic Texturing Using Digital Filters Computer Graphics, SIGGRAPH-ACM, vol 14, № 3, 8-80 41. J.D. Foley A Tutorial on Satellite Graphics Systems Computer, vol 9, № 8, 8-76 42. K.S. Fu, S.Y. Lu Computer Generation of Textures Using a Syntactic Approach Computer Graphics, SIGGRAPH-ACM, vol 12, № 3, 78 43. R. Galimberti, U. Montanari An Algorithm for Hidden Line Elimination CACM, vol 12, № 4, 4-69 44. H. Gouraud Computer Display of Curved Surfaces Ph.D. Thesis, University of Utah, 6-71 45. M. Grave Etude d'un noyau de systeme de synthese d'image Application a la visualisation de scenes tridimensicnnelles These de Docteur-lngenieur, Lille, 12-80 46. D. Greenberg, G.H. Joblove Color Spaces for Computer Graphics Computer Graphics, SIGGRAPH-ACM, vol 12, № 3, 78 47. Status Report of the Graphics Standard Planning Commitee Computer Graphics SIGGRAPH-ACM, vol 11, № 2, 77 48. Status Report of the Graphics Standard Planning Commitee Computer Graphics, SIGGRAPH-ACM, vol 13, № 3, 79 49 S. Gupta, R. Sproull, I.E. Sutherland A VLSI Architecture for Updating Raster-Scan Displays Computer Graphics, SIGGRAPH-ACM, vol 15, № 3, 8-81 50. G. Hegron Techniques de remplissage de taches pour une surface a 185
pointiifage RR № 6, Informatique, Universite de'Nantes, 10-82 51. Hvistendahl IGL : A Structured Langage for Interactive Graphics Congres EUROGRAPHICS, Bologna, 9-79 52. G.H. Joblove Color Spaces and Computer Graphics Master's thesis, Cornell University, N.Y., 1-79 53. J.R. Kender Instabilities in Color Transformations Pattern recognition and image processing, 6-77 54. D.T. Lee Shading of Regions on Vector Display Devices Computer Graphics, SIGGRAPH-ACM, vol 15, № 3, 8-81 55. P. Leray Realisation d'un systeme de generation synthetique d'image en temps reel : GSI Congres AFCET-TTI, Nancy, 11-80 56. J.Z. Levin QUADRIL : A Computer Language for the Description of Quadric-Surface Bodies Computer Graphics, SIGGRAPH-ACM, vol 14, № 3, 8-80 57. H. Lieberman How to Color in a Coloring Book Computer Graphics, SIGGRAPH-ACM, vol '12, № 3, 78 58. A. Leduc-Leballeur, M. Lucas, F. Martinez Conception et realisation d'un logiciel graphique interactif inde¬ pendant du contexte d'utilisation. Le logiciel de base GRIGRI Revue RAIRO Informatique, vol 12, № 2, 78 59. M. Lucas Contribution a I-'etude des techniques de communication graphique avec un ordinateur. Elements de base des logiciels graphiques interactifs These d'etat, Grenoble, 12-77 60. P.C. Maxwell, P.W, Baker The Generation of Polygons Representing Circles, Ellipses and Hyperbolas Computer Graphics and Image Processing 10, 79 61. R. Mahl Visible Surface Algorithm for Quadric Patches IEEE Trans. Computers, vol c-21, № 1, 1-72 62. F. Martinez, F. Ferreira m
HELIOS : Terminal interactif pour la synthese d'images realistes Congres AFCET-TTI, Gif-sur-Yvette, 11-81 63. F. Martinez, F. Ferreira HELIOS : Terminal video interactif pour la synthese d'images realistes Le Nouvel Automatisme, № 30, 5-82 64. F, Martinez Etude des problemes de conception et de realisation d'anima- tion : Le systeme SAFRAN These de 3eme cycle, Grenoble, 5-77 65. F. Martinez Les concepts lies a la description de I'animation Congres AFCET-TTI, Gif-sur Yvette, 11-78 66. F. Martinez An Approach to the Modelling and Display of Lanscapes Congres EUROGRAPHICS, Bologna, 9-79 67. F. Martinez CLOVIS : Complexe Logiciel pour la Visualisation Interactive Structuree Congres AFCET-TTI, Nancy, 11-80 68. F, Martinez Utilisation de textures pour la synthese d'images realistes Journees INA : Les nouvelles images, Arc et Senans, 6-81 69. F. Martinez Vers une approche systematique de la synthese d'image ; Aspects logiciel et materiel These d'etat, Grenoble, 11-82 70. C. Marson Terminaux : la couleur en plus 01 Informatique, № 147, 2-81 71. P. Matherat A Chip for Low-Cost Raster-Scan Graphic Display Computer Graphics, SIGGRAPH-ACM, vol 12, № 3, 78 72. N.L. Max Vectorized Procedural Models for Natural Terrains : Waves and Island in the Sunset Computer Graphics, SIGGRAPH-ACM, vol 15, № 3, 8-81 73. G.W. Meyer, D.P. Greenberg Perceptual Color Spaces for Computer Graphics Computer Graphics, SIGGRAPH-ACM, vol 14, № 3, 8-80 74. M. Meriaux Etude et realisation d'un terminal graphique couleur 187
tridimensionnel fohctionnant par taches • These de Docteur-lngenieur, Lille, 1-79 75. M. Meriaux Architectures adaptees a la synthese d’image 'Congres AFCET-TTI, Gif-sur-Yvette, 11-81 76 A.H. Munsell A Color Notation 8th ed., Munsell Color Co., Baltimore, 39 77. A.J. Myers An Efficient Visible Surface Program Tech. Report № 74-00768, 7-75 78. T. Nishita, E. Nakamae An Algorithm for Half-toned Representation of 3-D Objets Inf. Process. Japan, vol 14, 74 79. W. Newman, R.F. Sproull Principles of Interactive Computer Graphics 2nd ed., Me Graw-Hill, New York, 79 80. M.E. Newell, R.G. Newell, T.L. Sancha A New Approach to the Shaded Picture Problem Proc. of ACM National Conference, vol 1, Boston, 8-72 81. T. Pavlidis Filling in Raster Graphics Computer Graphics, SIGGRAF H-ACM, vol 15, № 3, 8-81 82. B.T. Phong Illumination for Computer Generated Pictures С AC M; vol 18, № 6, 6-75 83. D. Perny, M. Gangnet, Ph. Coueignoux Perspective Mapping of Planar Textures Computer Graphics, vol 16, № 1, 5-82 84. M.L. Pitteway, A.J. Green Bresenham's Algorithm with Run Line Coding The Computer Journal, vol 25, № 1, 1-82 85. Т.К. Porter Spherical Shading Computer Graphics, SIGGRAPH-ACM, vol 12, № 3, 78 86. Purdue University Thermophysical Properties of Matter vol 7-8-9, 70 87. D.F. Rogers, J.A. Adams Mathematical Elements for Computer Graphics Me Graw-Hill, New York, 76 188
88. L.G. Roberts Machine Perception of Three-Dimensional Solids TR^-315, MIT Lincoln Laboratory, 5-63 89. S. Roth Ray Casting for Modeling Solids Computer Graphics and Image Processing, vol 18, 82 90. S.M. Rubin, J.T. Whitted A Three-Dimensional Representation for Fast Rendering of Computer Scenes Computer Graphics, SIGG RAPH-ACM, vol 14, № 3, 8-80 91. ■M.T. Sarrasin Analyse et implementation ,du logiciel pilote d'un synthetiseur d' image Memoire d'ingenieur CNAM, Grenoble, 10-82 92. R.A. Schumacker, B. Brand, M. Gilliland, W, Sharp Study for Applying computer Generated Images to Visual Simulation TR 69-14, US Air Force Laboratory, 9-69 93. A.C. Shaw A Proposal Language for the Formal Description of Pictures TR GSG-28, Standford Lin. Accel. Center, 67 94» U. Shani Filling Regions in Binary Raster Images.: A Graph-Theoretic Approach Computer Graphics, SIGG RAPH-ACM, vol 14, № 3, 8-80 95* Y. Suenaga, T. Kamae, T. Kobayashi A High-Speed Algorithm for the Generation of Straight Lines and Circular Arcs IEEE Trans, on computers, vol C-28, № 10, 10-79 96. A,R. Smith Color Gamut Transform Pair Computer Graphics, SIGGRAPH-ACM, vol 12, № 3, 78 97* A. R. Smith Tint Fill Computer Graphics, SIGGRAPH-ACM, vol 13, № 3, 79 98. R.F. Sproull, I.E. Sutherland A Clipping Divider AFIPS FJCC Conf. Proc., vol 33, 68 99» i-E. Sutherland, R.F. Sproull, R.A. Schumacker A Characterization of Ten Hidden-Surface Algorithms* ACM Computing Surveys, vol 6, № 1, 3-74 100, ! J. Staudhammer 189
On Display of Space Filling Atomic Models in Real Time^ Computer Graphics, SIGGRAPH-ACM, vol 12, № 3, 78 101. J. Staudhammer, J. Tartar Shaded Graphics Hardware Congres EUROGRAPHICS, Boiogna, 9-79 102. I.E. Sutherland, G.W. Hodgman Reentrant Polygon Clipping С ACM, vol 17, № 1, 1-74 103. I.E. Sutherland SKETCHPAD : A Man Machine Graphical Communication System AF IPS SJCC Conf. Proc., vol 23, 63 104. I.E. Sutherland Tree-Dimensional Data Input by Tablet Proc. IEEE, vol 62, № 4, 4-74 105. F. Theron Sur le programme EUCLID : creation, manipulation et visualisa¬ tion de formes tridimensionnelles dans un langage geometrique These de 3eme cycle, Paris, 72 106 K.E. Torrance, E.M. Sparrow Theory for Off-Specular Reflection from Roughened Surfaces J. Optical Soc. of America, vol 57, № 9, 9-67 107. J.R. Truckenbrod Effective Use of Color in Computer Graphics Computer Graphics, SIGGRAPH-ACM, vol 15, № 3, 8-81 108. J. Van Der Bos, L.C. Caruthers, A. Van Dam GPGS : A Device Independant General Purpose Graphic System for Stand Alone and Satellite Graphics Computer Graphics SIGGRAPH-ACM, vol 11, № 2, 77 109. J. Warner, N. Kiefhaber The DIGRAF Implementation of the Proposed GSPC Standard Congres EUROGRAPHICS, Bologna, 9-79 110. J.E. Warnock A Hidden Surface Algorithm for Computer Generated Half-1 cue Pictures TR № 4-15, University of Utah, 6-69 111. G.S. Watkins A Real-Time Visible Surface Algorithm TR UTEC CSc-7o-101, University of Utah, 6-70 ljl2. C.F. Weiman Continuous Anti-aliased Rotation and Zoom of Raster Images Computer Graphics, SIGGRAPH-ACM, vol 14, № 3, 8-80 113. R. Weinberg 190
Parallel Processing Image Synthesis and Anti-aliasing Computer Graphics, SIGGRAPH-ACM, vol 15, № 3, 8-81 114. J.T. Whitted An Improved Illumination Model for Shaded Display QACM, vol 23, № 6, 6-80 115. L. Williams Casting Curved Shadows on Curved Surfaces Computer Graphics, SIGGRAPH-ACM, vol 12, № 3, 78 116. P.A. Woodsford The Design and Implementation of the GINO 3D Graphics Software Package Software-Practice and Experience, vol 1, № 4, 10-71 И7. T.J. Wright A Two-Space Solution to the Hidden Line Problem for Plotting Functions of Two Variables IEEE Trans. Computers, vol c-22, № 1, 1-73 118. S.W. Zucker Toward a Model of Texture Computer Graphics and Image Processing, № 5, 6-75 ДОПОЛНИТЕЛЬНЫЙ СПИСОК ЛИТЕРАТУРЫ Д1. Bouknight W. J. A Procedure for Generation of Three Dimensional Halfto¬ ned Computer Graphics Representation//CACM.— 1970.—Vol. 13, N 9.— P. 527. Д2. Bouknight W. J., Kelley К. C. An Algorythm for Producing Halftone Com¬ puter Graphice Presentation with Shadows and Movable Light Sources. — SJCC 1970, Montvale, N. Y„ AFIPS Press. — P. 1. ДЗ. Loutrel P. P. A Solution to the Hidden — line Problem for Computer-drawn Polyhedra.— New York Univ., Department of Electrical. Engeneering, Re¬ port 400—167, September 1967. Д4. Weiss R. A. Be Vision, a Paskage of IBM 7090 Fortran Programs to Draw Orthographic Views of Combinations of Planes and Quadric Surfaces// JACM. — 1966. —Vol. 13, N 2.— P. 194. СПИСОК РАБОТ, ПЕРЕВЕДЕННЫХ НА РУССКИЙ язык 79. Ньюмен У., Спрулл Р. Основы интерактивной машинной графики/Пер. с англ. В. М. Грина и О. Н. Родинко; Под ред. В. А. Львова. — М.: Мир, 1976. —576 с. 104. Сазерленд. Ввод трехмерных данных посредством вводной панели// ТИИЭР. — 1974. — Т. 62, Ко 4. — С. 44—54. 191
ОГЛАВЛЕНИЕ Предисловие к русскому изданию 5 Введение 6 Глава 1. Концептуальный аспект: точка зрения пользователя 9 1.1. История и состояние вопроса . 9 1.1.1. Начальный период (1963—1970 гг.) .... 9 1.1.2. Период ученичества (1971 —1978 гг.) .... 10 1.1.3. Современный период (начиная с 1979 г.) 11 1.1.4. Заключение 11 1.2. Основные понятия интерактивного синтеза изображений 13 1.2.1 Типы изображений 13 1.2.2. Участники диалогового процесса синтеза .... 14 1.2.3. Основные определения 16 1.2.4. Укрупненные этапы синтеза изображений .... 19 1.3. Основные элементы общей системы синтеза изображений 21 1.3.1. Операции 21 1.3.2. Различные процессы ... .... 23 1.3.3. Характеристики систем синтеза .... 30 1.4. Заключение .... 32 Глава 2. Технический аспект: точка зрения разработчика 33 2.1. Общая организация системы .34 2.1.1. Понятие о синтезаторе .34 2.1.2. Уровни синтезатора .34 2.1.3. Влияние конфигурации аппаратных средств . . .34 2.1.4. Реализация синтезатора . 38 2.2. Организация однопроцессного синтезатора .... .39 2.2.1. Ход выполнения процесса .39 2.2.2. Архитектуры синтезаторов .45 2.3. Организация многопроцессного синтезатора ... .49 2.3.1. Проблемы, свойственные множественным процессам . 49 2.3.2. Иерархическая организация . ... .52 2.3.3. Разделение на слои .56 2.4. Различные подходы к намеченным целям ... .62 2.4.1. Рабочие характеристики .62 2.4.2. Степень интерактивности . . ... .65 2.4.3 Независимость и адаптивность ... .66 2.4.4. Стоимость оборудования . ? ,66 2.4.5. Сводная таблица .... . . .67 Глава 3. Аппаратный аспект: архитектуры синтезаторов изображения 67 3.1. Элементарные аппаратные процессы . 68 3.1.1. Устройства отображения . . .68 3.1.2. Устройства регенерации .... . 71 3.1.3. Устройства ввода . 73 3.2. Архитектуры оборудования .... . 74 3.2.1. Методология изучения .... .74 3.2.2. Минимальные системы .... .76 3.2.3. Развитые системы . 80 3.3. Архитектуры специализированных систем . 82
времени03^™6 Движущихся изо&Ражений в реальном масштабе 3.3.2. Визуализация специфических объектов . 04 3.3.3. Удаление невидимых линий в реальном масштабе времени 84 3.3.4. Визуализация синтезированных реалистичных изображений 86 3.4. Современные тенденции и перспективы gg 3.4.1. Параллельные архитектуры gg 3.4.2. Будущее СБИС для синтеза изображений 90 Глава 4. Программный аспект: организация и архитектура 91 4.1. Процессы, управляемые пользователем 91 4.1.1. Влияние внутренней организации системы . 92 4.1.2. Влияние алгоритмов удаления невидимых линий . 96 4.1.3. Влияние алгоритмов определения теней 101 4.2. Программно-управляемые процессы 104 4.2.1. Блок связи . 105 4.2.2. Блок управления 117 4.3. Заключение 121 Глава 5. Функциональный аспект: операторы описания и визуализации 122 5.1. Геометрические операторы . 123 5.1.1. Описание и моделирование .... 123 5.1.2. Геометрические операторы визуализации 125 5.2. Морфологические операторы . 127 5.2.1. Описание и моделирование . 127 5.2.2. Воссоздание и визуализация 128 5.3. Операторы освещения . . 134 5.3.1. Описание и моделирование 134 5.3.2. Воссоздание освещения в процессе визуализации . . 138 5.4. Операторы внешнего вида ... 141 5.4.1. Описание и моделирование 141 5.4.2. Воссоздание внешнего вида в процессе визуализации 151 Глава 6. Система «Гелиос» 153 6.1. Задачи системы 153 6.1.1. Области применения 153 6.1.2. Требуемые характеристики . 154 6.1.3. Об управлении системой . 154 6.2. Выбор основных характеристик 155 6.2.1. Конфигурация аппаратных средств 155 6.2.2. Рабочее место «Гелиос» . 156 6.3. Общая архитектура системы 157 6.3.1. Общая организация .... 157 6.3.2. Синтезатор с жесткой логикой . 158 6.3.3. Программируемые синтезаторы 6.4. Процессы визуализации 6.4.1. Каркасные элементы на терминале низкого уровня 6.4.2. Каркасные элементы в системе «Гелиос» 6.4.3. Заполненные элементы на терминале низкого уровня ^ 6.4.4. Заполненные элементы в системе «Гелиос» 6.5. Синтезатор с жесткой логикой . 6.5.1. Общее представление 6.5.2. Процессор визуализации 6.5.3. Процессор связи . Список литературы Дополнителньый список литературы • ык Список работ, переведенных на русск 160 160 161 161 163 163 168 179 182 191 191
2 p. 40 к. СИНТЕЗ ИЗОБРАЖЕНИЙ ’РАДИО И СВЯЗЬ’