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

кандидата технических наук
Романовский, Алексей Валентинович
город
Новосибирск
год
1995
специальность ВАК РФ
05.13.16
Автореферат по информатике, вычислительной технике и управлению на тему «Применение смешанных вычислений для решения задач трехмерной машинной графики»

Автореферат диссертации по теме "Применение смешанных вычислений для решения задач трехмерной машинной графики"

н о

ин

На правах рукописи

РОМАНОВСКИЙ Алексей Валентинович

ПРИМЕНЕНИЕ СМЕШАННЫХ ВЫЧИСЛЕНИЙ ДЛЯ РЕШЕНИЯ ЗАДАЧ ТРЕХМЕРНОЙ МАШИННОЙ ГРАФИКИ

05.13.16 - применение вычислительной техники, математического моделирования и математических методов в научных исследованиях

Автореферат диссертации на соискание ученой степени кандидата технических наук

Новосибирск - 1995

Работа выполнена в Институте автоматики и электрометрии СО РАН, г. Новосибирск.

Научный руководитель: доктор физико-математических наук,

профессор С. Л. МУШЕР

Официальные оппоненты: доктор технических наук,

профессор В. Г. ХОРСШЕВСКИЙ

кандидат физико-математических наук, старший научный сотрудник С. А. УПОЛЬНИКОВ

Ведущая организация: Институт систем информатики СО РАН,

г. Новосибирск.

Защита состоится " Vе " ШЖМ^СУ/^ 1995 г. ./5Г часов на заседании диссертационной совета К 003.06.01 в Институте автоматики и электрометрии СО РАН, 630090, г. Новосибирск, Университетский проспект 1.

С диссертацией можно ознакомиться в библиотеке Института автоматики и электрометрии СО РАН.

Автореферат разослан " 5* г.

Ученый секретарь диссертационного совета

кандидат физико-математических наук

Л. В. ИЛЬИЧЕВ

Актуальность работы. Трехмерная машинная графика, визуальное моделирование трехмерных сцен относятся к самым перспективным областям научных исследований на ближайшие десятилетия. Повьшенный интерес к данной проблематике и быстрый прогресс в этих направлениях объясняется тем, что компьютерная визуализация - это новый язык коммуникации, и его воздействие на цивилизацию в недалеком будущем может сравниться с эффектом появления письменности и книгопечатания.

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

Требования реального времени означают, что один кадр с изображением моделируемой сцены должен быть получен не более чем за 20 мс, то есть кадровая частота ограничивается снизу значением 50 кадров/с. Достижение такой производительности обеспечивается выполнением как можно большего количества вычислений до того, как происходит собственно построение изображений сцены. Иными словами, вычисления, необходимые для синтеза изображений трехмерной сцены в реальном времени, выполняются в два этапа : часть вычислений выполняется при создании математической модели сцены, а остальные - при построении изображений моделируемой сцены. На первом этапе формируется представление сцены, содержащее ее заранее известные и рассчитанные характеристики, которые используются затем для достижения максимальной эффективности вычислений на втором этапе визуализации сцены.

Рассмотрение этих двух этапов с общих позиций организации вычислений позволяет применить для решения задач трехмерной машинной графики реального времени аппарат теории смешанных вычислений. Основные идеи теории смешанных вычислений были опубликованы в классических работах Ломбарда, Футамуры, Ершова и других исследователей в шестидесятых - семидесятых

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

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

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

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

2. Разработка и практическое использование подхода, в котором частичные вычисления исполняются после ксмпиляири программы в терминах объектного кода, а не п^рец компиляцией программы.

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

4. Разработка, реализация и грактическое использование компилятора, генерирукшрго смешанный код для частичного исполнения на объектной машине.

5. Создание и грактическое использование частичного вычислителя, который исполняет смешанный объектный код и порождает остаточный код.

Методы исследования. Для выделения и обобщения задач визуального моделирования трехмерных сцен использовалась методология объектно-ориентированного программирования. При

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

Научная новизна.

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

Предложен подход, в котором частичные вычисления исполняются над объектньм кодом програм/ы после ее компиляции, а не над исходной программой до ее компиляции. Показано, что этот подход является более эффективные, чем общепринятый подход к исполнению частичных вычислений, основанный на интерпретационной схеме.

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

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

Создан частичный вычислитель, исполняющий смешанный объектный код и порождающий остаточный код. Показана независимость частичного вычислителя от семантики языка, на котором написана программа. Известные частичные вычислители обрабатывают программы на исходных языках и, следовательно, пол-

ностью зависима от их семантики.

Прагаическая Значимость.

Предлагаемая технология посредством применения смешанных вычислений позволяет автоматизировать эффективное решение таких задач визуального моделирования трехмерных сцен и их динамики как (а) конструирование геометрии твердых трехмерных объектов, (б) расчет статической освещенности и вычисление текстурных координат, (в) определение пространственных приоритетов объектов сцены, (г) • структурирование моделируемой сцены для быстрой отбраковки ее невидимых частей во время отображения.

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

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

Основные положения, выносимый на заш^ггу :

1. На стадии частичных вычислений могут быть выполнены (а) конструирование геометрии твердых трехмерных объектов, (б) расчет статической освещенности и вычисление текстурных координат, (в) определение пространственных приоритетов объектов сцены, (г) структурирование моделируемой сцены для быстрой отбраковки ее невидимых частей во время отображения.

2. Существует представление частичных и остаточных вычислений в объектном коде, которое семантически эквивалентно их

- б -

представлению в исходной программе.

3. Исполнение частичных вычислений после компиляции проще и быстрее исполнения частичных вычислений до компиляции.

4. Частичный вычислитель, обрабатывакший смешанный объектный код, не зависит от семантики языка, на котором написана программ.

Алробагяя результатов. По материалам диссертации был сделан доклад на Всесоюзной конференции 'Методы и средства обработки сложной графической информации' (Горький, 1988), два доклада на 5-ой всесоюзной конференции по машинной графике 'Машинная графика 89' (Новосибирск, 1989), доклады и стендовые демонстрации на международной конференции Г]эафи-Кон'92 (Москва, 1992), доклады на международной конференции ГрафмКон'95 (Санкт-Петербург, 1995). Программное обеспечение, созданное на основе результатов диссертационной работы, представлялось вместе с системами синтеза визуальной обстановки 'Альбатрос' на Международной аэрокосмической выставке Aerospace - 90 (Москва, 1990), Второй Международной выставке авиационного оборудования (Пекин, 1990) и на выставке Мосаэрошоу - 92 (Жуковский - 1992).

Публикации. Основные результаты диссертации опубликованы в 9 работах.

Oipywrypa и обгьем диссертации. Диссертационная работа изложена на 70 страницах машинописного текста и состоит из введения, 3 глав, заключения, трех приложений и списка литературы из 65 наименований. 2. Содержание диссертации

Первая глава диссертации 'Смешанные отчисления и их развитие' состоит из двух разделов.

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

построения частичных вычислителей.

А. П. Ершов дал следугацее общее определение смешанных вычислений. "Пусть в языке 1 определен алгоритм вычисления v, который для любой программы р и начального состояния памяти х иногда приводит к некоторому заключительному состоянию памяти y=v(p,x) . OteiuaHHbM вычислением в языке 1 называется любой алгоритм М, который для любой программы р и начального состояния памяти х иногда приводит к промежуточному состоянию памяти у' = Мо(р,х) и к некоторой остаточной программе р'=Мд (р,х) . Смешанное вычисление М корректно в 1 если для любых р, х справедливо следугацее функциональное равенство:

v(p,x) = v(Mg(p,x), Мс(р,х)) (принцип частичного вычисления)"

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

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

Более формально - пусть исполнение программы р со входными данными d представляется уравнением [[р]] (d) = result.

Если входные данные программы р состоят из двух частей dl и d2, и г есть остаточная программа для р, получаемая в ре-

зультате частичного исполнения последней с данными dl, то [ lp] ] (dl,d2) = [[r]](d2).

Пусть mix обозначает программу - частичный вычислитель. Тогда частичное вычисление программы р для данных dl задается уравнением {[р]] (dl,d2) = [ [ [[mix]] (p,dl) ]] (d2) . To есть, г = /[mix]] (p,dl) .

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

Подавлякзцее большинство известных в настоящее время частичных вычислителей обрабатывают программы, написанные либо на 'игрушечных' языках, либо на ограниченных подмножествах реальных языков программирования, либо на языках с ограниченной областью применения. Известные частичные вычислители, будучи интерпретаторами, тесно связаны с семантикой языков, для которых они реализованы, и усложнение или изменение семантики языка автоматически ведет к усложнению и изменению частичного вычислителя. Частичные вычисления, результатом которых является текст программы, по своей сути статические и поэтому лишь ограниченно могут применяться к операциям с динамической памятью, операциям ввода-вывода, для взаимодействующих процессов, что уменьшает или сводит на нет эффект частичных вычислений для многих классов программ.

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

В предлагаемом подходе одан частичный вычислитель для объектной машины естественно может использоваться в совре-

менных систолах программирования, где для компиляторов с разных языков программирования существует общий объектный форинт. Гримерами таких систем могут служить VAX/VMS (компиляторы для Pascal, Fortran, С и ADA), TopSpeed (компиляторы для Pascal, Modula-2, С, С++), среда Motorola PowerPC для AIX, Solaris, Windows NT (компиляторы для С, С++, Fortran 77). В традиционном подходе для каждого языка должен быть свой частичный вычислитель.

Другим преимуществом предлагаемого подхода является то, что частичные вычисления после компиляции для программ с частично вычисляемыми циклами, повторными или рекурсивными вызовами процедур мэгут быть выполнены быстрее, чем частичные вычисления, выполняемые по интерпретационной схеме.

Частичные вычисления после компиляции мэгут быть применены к операциям с динамической памятью и вводу-выводу, поскольку после компиляции все данные находятся в одинаково адресуемой памяти. Например, переменным на 'куче' могут присваивать ся значения и эти переменные используются далее как в частичных так и в остаточных вычислениях. Или во время частичных вычислений происходит чтение и запись файлов, осуществляется интерактивный ввод-вывод, данные выводятся на печать используя те же библиотеку что и для остаточных вычислений.

Частичные вычисления после компиляции исполняются значительно эффективнее частичных вычислений, выполняемых традиционно по интерпретационной схеме. Технологический процесс 'компиляция - частичные вычисления' значительно проще и требует меньше машинных ресурсов, чем процесс 'проверка синтаксической и семантической правильности программы -частичные вычисления - компиляция остаточной программы1.

И, наконец, предлагаемой подход позволяет распространить применение частичных вычислений для взаимодействукщих процессов .

Вторая глава диссертации 'Окапанные жяисления в прсш-рамлых моделях ^рехмернввс сцен и их данажки' состоит из двух разделов.

В первом разделе второй главы обсуждаются две классичес-

кие алгоритмические схемы визуального моделирования трехмерных сцен и их динамики.

Моделируемая сцена по первой классической алгоритмической схеме представляется в виде иерархической (древовидной) структуры или базы данных, содержащей как можно больше рассчитанных заранее характеристик сцены. Эти характеристики затем используются, обычно многократно, при синтезе одного или нескольких изображений сцены. Предварительный расчет инвариантных для последующих вычислений характеристик сцены позволяет значительно ускорить синтез изображений сцены.

Иерархическая база данных в таком представлении отражает статическую структуру сцены. В нетерминальных узлах дерева сцены (см. рис. 1) могут хранится система координат, данные об источниках освещения, информация о пространственных габаритах или локализации части сцены в некотором заданном подпространстве. В терминальных узлах дерева сцены, как правило, хранится -информация о геометрии и визуальных характеристиках поверхностей моделируемых обгьектов сцены.

По второй классической алгоритмический схеме моделируемая сцена представлена программой. Наблкщателю сцены, системам координат, источникам освещения, габаритным параметрам, поверхностям сцены соответствуют не узлы дерева сцены, а объ-

екты данных. Вызовы процедур или функций с такими объектами в качестве параметров эквивалентны обработке узлов дерева сцены в первой алгоритмической схеме. Последовательности (рекурсивных) вызовов процедур и вложенность операторов, то есть статический текст программы, соответствуют статической структуре сцены. Изображения сцены (кадры) строятся в результате исполнения такой программы. Изменения значений ее переменных на каждом кадре влияют на порядок вызовов процедур и исполнение операторов, представляя таким образом динамику сцены в виде динамики программы.

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

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

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

Такая реализация второй алгоритмической схемы возможна на основе предлагаемой автором диссертации технологии, которая за счет применения смешанных вычислений позволяет автомати-

зировать эффективное решение задач визуального моделирования трехмерных сцен и их динамики реального времени.

Во втором разделе второй главы рассматривается реализация второй классической алгоритмической схе*/ы визуального моделирования трехмерных сцен и их динамики.

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

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

- конструирование геометрии трехмерных объектов;

- расчет статической освещенности и расчет текстурных координат поверхностей;

- определение пространственных приоритетов объектов сцены;

- структурирование моделируемой сцены для быстрой отбраковки ее невидимых частей.

Далее рассматривается распределение вычислений на частичные и остаточные конструировании геометрии трехмерных объектов, при расчете статической освещенности и текстурных координат поверхностей, при определении пространственных приоритетов объектов сцены, при структурировании моделируемой сцены для быстрой отбраковки ее невидимых частей.

Третья глава диссертации 'Практические аспекты применения смешанных вычислении для решения -задач трехмерной машинной графики реального времени' состоит из орех разделов.

В первом разделе третьей главы реализованное подмножество языка смешанных вычислений Ь.

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

альности, производства анимационных (фильмов и имеют производительность 50 кадров/сек., 1000-4000 фильтрованных, с возможной текстурой и полупрозрачностью многоугольников ГУ~ ро в одном кадре на растре 512*512 пикселов с 24 битами цвета в каждом пикселе.

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

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

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

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

аннотированы процедуры и их параметры. Семантика выражений в языке Ь расширена по сравнению с другими традиционными языками программирования ввиду того, что выражения могут задавать смешанные вычисления. То есть, одна часть выражения может быть исполнена во время частичных вычислений, а другая - во время остаточных вычислений. В Ь есть операторы общего назначения - присваивание, условный оператор, оператор выбора варианта, оператор цикла и т. п., а также несколько специальных операторов для программирования визуальных моделей трехмерных сцен. В частности, языке Ь есть два оператора общего назначения, которые несмотря на их универсальность не встречаются в других языках программирования. Это оператор исполнения по порядку и оператор сортировки и исполнения по порядку. Оба этих оператора используются как в универсальных алгоритмах, так и для программирования сцен, чье изображение строится по алгоритму художника. Наиболее важньми специальными операторами для программирования трехмерных визуальных моделей являются оператор начала кадра, оператор установки текущей системы координат и оператор назначения текущего списка источников освещения.

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

Во втором разделе третьей главы обсуждается структура компилятора Ь-программ. Излагаются особенности реализации блока лексического анализа, блока синтаксического анализа, семантического анализа (анализа области действия определений программных объектов и анализа типов), генератора объектного кода. Далее во втором разделе кратко описываются виртуальные машины, на которых исполняются частичные и остаточные вычисления, и соответствуюций этим машинам объектный формат.

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

Обсуждается устойчивость библиотечных алгоритмов. Рассматриваются реализованные в библиотеке алгоритмы: аппроксимация криволй по методу Безье; аппроксимация кривой по методу О-сгшайнов; построение минимальной полигональной выпуклой оболочки множества точек; одностороннее замощение плоского, возможно невыпуклого, контура; построение поверхности вращения, построение полосы граней, ограниченной двумя контурами; эйлеровские операции 'сложения1, 'вычитания', 'пересечения', 'отсечения' для трехмерных полигональных поверхностей; автоматическая расстановка нормалей в смежных вершинах граней поверхности; расчет статической освещенности полигональных объектов; расчет значений текстурных координат в вершинах граней; расчет габаритных сфер для полигональных объектов и множеств точек; пространственная сортировка полигональных объектов для произвольного положения наблюдателя.

В Приложении 1 к диссертации 'Синтаксисис языка смешанных вычислений Ь' приводятся полный синтаксис языка Ь.

В Приложении 2 к диссертации 'Интерфейсы Ь-бийлиотек, используемых для программирования визуальных моделей трехмерных сцен' дается полный интерфейс библиотечных модулей, используемых для визуального моделирования трехмерных сцен и их динамики реального времени.

В Приложении 3 к диссертации 'Объектный формат для смешанного кода, генерируемого компилятором Ь' описана семантика объектного формата, соответствугацего виртуальной машине, на которой исполняются частичные и смешанные вычисления.

Основные результаты и выводы

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

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

но, что такой подход является более простым и эффективным, чем общепринятый подход к исполнению частичных вычислений до компиляции по интерпретационной схеме.

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

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

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

6. Разработаны принципы построения компилятора, транслирующего программы, написанные на языке программирования смешанных вычислений, в смешанный обгьектный код. На основе этих принципов реализован и внедрен в практику компилятор для языка L.

7. Разработан и внедрен в практику частичный вычислитель, не зависящий от синтаксиса и семантики языка, на котором написана частично вычисляемая программа.

Список работ по тема диооергацри.

1. Гусев А. В., Романовский А. В. Пространственная сортировка трехмерных объектов. - Автометрия, 1989, N 2.

2. Белаго И. В., Романовский А. В., Тарасов Ю. В. Комплекс трехмерного визуального моделирования SoftLab Images 1.1.-Автометрия, 1993, N 5.

3. Романовский А. В. VML - язык описания геометрических моделей трехмерных сцен хотя синтезирукщих систем визуализации.- Автометрия, 1993, N5.

4. Белаго И. В., Романовский А. В., Тарасов Ю. В. SDL -язык описания визуальных моделей трехмерных сцен, Автометрия, 1993, N 5.

5. Романовский А. В. Использование типов данных для визуального моделирования динамики трехмерных сцен.- Автометрия, 1994, N 2.

6. Белаго И. В., Некрасов Ю. Ю., Романовский А. В., Тарасов Ю. В. Типы данных и алгоритма для описания визуальных моделей трехмерных сцен.- Автометрия, 1994, N б.

7. Романовский А. В. Язык смешанных вычислений для визуального моделирования трехмерных сцен и их динамики в реальном времени.- Автометрия, 1994, N б.

8. Белаго И. В., Романовский А. В., Тарасов Ю. В. Комплекс трехмерного визуального моделирования SoftLab Images 1.1. Базовый язык.- Новосибирск: 1993. (Препринт/ИАиЭ СО РАН: 477).

9. Романовский А. В. Комплекс трехмерного визуального моделирования SoftLab Images 1.1. Язык геометрического моделирования.- Новосибирск: 1993. (Препринт/ ИАиЭ 00 РАН: 478).