ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
На тему: Организация взаимодействия трехмерного редактора и визуализатора на основе трассировки лучей
Студент:
Руководитель проекта:
Допущен к защите « » 2008
Консультанты проекта:
Специальная часть
Охрана труда
Зав. Кафедрой проф. д. т.н.
Содержание
Содержание. 2
Аннотация. 8
1. Введение. 9
2. Общая часть. 10
2.1. Терминология. 10
2.1.1. Трехмерный редактор. 10
2.1.3. Программа-визуализатор. 11
2.1.2. Программа-модуль. 12
2.2. Обзор трехмерных редакторов. 12
2.2.1. Autodesk 3ds Max. 12
2.2.2. NewTek Lightwave 3D.. 13
2.2.3. Autodesk Maya. 14
2.2.4. Softimage XSI. 16
2.2.5. Side Effects Houdini 17
2.2.6. Blender 18
2.2.7. Выбор редактора. 19
2.3. Обзор файловых форматов. 20
2.3.1. Двоичные файловые форматы.. 20
2.3.2. Текстовые файловые форматы.. 20
2.3.3. Выбор формата. 21
3. Специальная часть. 23
3.1. Схема взаимодействия визуализатора и трехмерного редактора. 23
3.2. Добавление возможности чтения файлов с описанием трехмерной сцены в программу-визуализатор. 24
3.2.1. Компиляция программы-визуализатора. 24
3.2.2. Описание данных, передаваемых из трехмерного редактора. 30
3.2.3. Формат файла. 31
3.2.4. Описание разработанного класса XMLImport 32
3.2.5. Описание библиотеки RapidXML.. 35
3.3. Написание программы-модуля для трехмерного редактора. 36
3.3.1. Архитектура программы Autodesk Maya. 36
3.3.2. Программный интерфейс Maya API. 40
3.3.3. Настройка среды разработки. 42
3.3.4. Описание реализации программы-модуля. 43
3.4. Тестирование программ.. 44
4. Охрана труда. 47
4.1. Исследование возможных опасных и вредных факторов при эксплуатации ЭВМ и их влияния на пользователей. 47
4.1.1. Введение. 47
4.1.2. Выводы.. 49
4.2. Анализ влияния опасных и вредных факторов на пользователя. 50
4.2.1. Влияние электрического тока. 50
4.2.2. Влияние электромагнитных излучений НЧ.. 52
4.2.3. Влияние статического электричества. 53
4.2.4. Выводы.. 53
4.3. Методы и средства защиты пользователей от воздействия на них опасных и вредных факторов 53
4.3.1. Методы и средства защиты от поражения электрическим током.. 53
4.3.2. Методы и средства защиты от ультрафиолетового излучения. 60
4.3.3. Методы и средства защиты от электромагнитных полей низкой частоты. 61
4.3.4. Методы и средства защиты от статического электричества. 61
4.4. Выводы. 62
5. Выводы.. 62
6. Список литературы.. 63
7. Приложение. 65
7.1. Листинг с исходным кодом класса XMLImport 65
7.1.1. Файл XMLImport. h. 65
7.1.1. Файл XMLImport. cpp. 65
7.1.3. Функция InitSceneFromFile из файла main. cpp. 69
7.2. Листинг с исходным кодом программы-модуля для Maya. 70
МОСКОВСКИЙ ИНСТИТУТ ЭЛЕКТРОНИКИ И МАТЕМАТИКИ
(Технический Университет)
Кафедра | Информационно-коммуникационных технологий |
«Утверждаю» Зав. кафедрой | ЗАДАНИЕ на дипломное проектирование | |
____________________ «___»__________20___ |
студенту | С-105 | группы | дневного | отделения |
(дневного, вечернего) |
Болдыреву Дмитрию Алексеевичу |
(фамилия, имя, отчество полностью) |
I. Тема проекта
Взаимодействие трехмерного редактора и визуализатора на основе трассировки |
лучей |
(Утверждена приказом по институту от ________________20 ___г. №_________________)
II. Срок сдачи студентом законченного проекта | |
III. Техническое задание | Реализовать возможность чтения и обработки файлов с |
описанием трехмерной сцены в программе-визуализаторе и разработать | |
программный модуль экспорта информации из трехмерного редактора в данный тип файлов. | |
IV. Содержание расчетно-пояснительной записки.
А. Специальная часть проекта.
1. | Схема взаимодействия визуализатора и трехмерного редактора |
2. | Добавление возможности чтения файлов с описанием трехмерной сцены в |
программу-визуализатор | |
3. | Описание данных, передаваемых из трехмерного редактора |
4. | Формат файла |
5. | Написание программы-plugin’a для трехмерного редактора |
6. | Анализ полученных результатов и тестирование программ |
Б. Конструктивно - технологическая часть проекта.
| |
2. | |
В. Охрана труда.
1. | Исследование возможных опасных и вредных факторов при эксплуатации ЭВМ |
и их влияние на пользователей | |
2. | Методы и средства защиты пользователей от воздействия на них опасных и |
вредных факторов. |
Г. Экономическая часть проекта.
1. | |
2. | |
3. | |
4. |
Д. Решение задачи на ЭВМ.
1. | |
2. | |
3. |
V. Перечень графического материала (с указанием обязательных чертежей).
1. | Схема взаимодействия визуализатора и трехмерного редактора |
2. | Блок-схема алгоритма ввода информации в визуализатор |
3. | Блок-схема алгоритма работы программы-plugin’a |
4. | Вид пользовательского интерфейса трехмерного редактора |
5. | Результат работы программы |
6. | |
7. | |
8. | |
9. | |
10. |
VI. Консультанты по проекту.
Консультант по специальной части | ||
(подпись) | ||
Консультант по конструктивно-технологической части | ||
(подпись) | ||
Консультант по экономической части | ||
(подпись) | ||
Консультант по охране труда | ||
(подпись) | ||
VII. Дата выдачи задания «___»______________20____г.
Руководитель дипломного проектирования | ||
(подпись) | ||
Задание принял к исполнению | ||
(подпись) | ||
«____»____________20____г.
Примечание. 1. Задание оформляется в двух экземплярах и сдается студентом на кафедру. После утверждения один экземпляр задания выдается на руки студенту. Экземпляр задания вшивается в пояснительную записку.
2. Получив задание, студент должен составить и согласовать с руководителем от кафедры календарный график выполнения дипломного проекта.
Аннотация
Данная дипломная работа заключается в организации взаимодействия трехмерного редактора и визуализатора на основе трассировки лучей путем добавления в визуализатор возможности импорта информации о трехмерной сцене из XML-файлов и написания программы-модуля для трехмерного редактора, позволяющей экспортировать такого рода файлы.
1. Введение
В современной неинтерактивной трехмерной графике, широко использующейся, например, в кинопроизводстве, конечные изображения, как правило, рассчитываются на центральном процессоре рабочей станции. В 2007 году компания NVIDIA, один из лидеров в области разработки графических видеоадаптеров выпустила специальный компилятор CUDA, а также средства разработки для него. С помощью этого программного инструментария возможно компилировать приложения, написанные на языке «С», которые будут работать непосредственно на графических процессорах видеокарт. За последнее время мощность продвинутых моделей потребительских видеокарт выросла благодаря стремительной эволюции их архитектуры, повышения частот, на которых работают графические процессоры и графическая память, расширению полосы пропускания шины памяти и улучшения других показателей. Пиковая потенциальная производительность системы с установленной видеокартой NVIDIA GeForce 8800GTX может достигать 346 гигафлоп (в следующем поколении планируется больше 900 гигафлоп), тогда как система на основе четырехъядерного процессора Intel Core 2 Quad достигает лишь 100 гигафлоп [2]. Однако, в некоторых приложениях, с учетом написания эффективного кода и специфики вычислений, преимущество такой системы с видеокартой унифицированной архитектуры может достигать даже 400-кратного превосходства скорости исполнения [3].
В последнее время наблюдается устойчивый интерес среди определенных профессионалов и любителей в области трехмерной графики к методам аппаратного ускорения расчета визуализации сцены, одной из самых длительных по времени выполнения операций в трехмерной графике. Данная дипломная работа является частью общего студенческого проекта по разработке средств для визуализации трехмерной графики, использующих аппаратное ускорение видеокарт. Целью данной дипломной работы является организация взаимодействия трехмерного редактора, который будет выбран в обзоре трехмерных редакторов (пункт 1.4) и визуализатора на основе трассировки лучей, разработанного другим участником студенческого проекта с использованием названных в начале данного введения технологий.
2. Общая часть
2.1. Терминология
2.1.1. Трехмерный редактор
Трехмерный редактор – комплексный дорогостоящий пакет программного обеспечения, с помощью которого обычно возможно организовывать полную рабочую цепочку, по которой проходят стадии синтеза конечного трехмерного изображения. Трехмерные редакторы разных компаний различаются пользовательским интерфейсом, ценой и набором функциональных возможностей. К базовым функциям трехмерного редактора можно отнести возможности моделирования, текстурирования, наложения материалов, создание анимации и визуализации (о ней см. пункт 2.1.3 данного раздела).
Под трехмерным моделированием понимается создание прототипа – трехмерного представления реального или вымышленного объекта при помощи использования примитивов (сфера, многоугольник, параметрически заданные поверхности и т. д.) и инструментов их модификации.
Текстурирование – это метод, по которому на примитивы накладывается плоское изображение, отображающее фактуру поверхности. Простейший пример здесь – у нас есть куб, представляющий комнату и мы накладываем на его внутренние грани текстуру обоев. Текстурирование – относительно простой метод, позволяющий сильно повысить реалистичность трехмерной сцены.
Материалы – это, фактически, описание фотометрических свойств поверхностей, основные параметры здесь – коэффициенты отражения и преломления. Материалы могут накладываться вместе с текстурами, а также некоторые редакторы позволяют создавать цепочки материалов.
Анимация создается с помощью расстановки ключевых кадров, на разных ключевых кадрах объекты трехмерной сцены занимают различные позиции. Для анимации сложных объектов типа человека или животных используется скелетная анимация. Скелет в данном случае – иерархическая структура, в которую входят кости, имеющие определенные зависимости между собой.
Также трехмерный редактор может обладать возможностями включения в системы частиц для порождения таких эффектов, как дым, вода, огонь. Любой трехмерный редактор позволяет сохранять изображения или даже видео в распространенных форматах, для этого также задаются параметры «виртуальной камеры».
[4]
2.1.3. Программа-визуализатор
Программа-визуализатор получает на входе полную информацию о трехмерной сцене (модели, текстуры, материалы и т. д.), а на выходе выдает конечное изображение. Основным критерием отличия одного визуализатора от другого является алгоритм рендеринга, по которому он работает. «Рендеринг» и «визуализация» - это одинаковые понятия. К основным алгоритмам относятся растеризация, метод излучательности и метод трассировки лучей (и его модификации). Визуализатор, который используется в данной дипломной работе, построен на основе метода трассировки лучей. Этот метод является наиболее гибким, так как позволяет получать любые эффекты, связанные с освещением. Он основан на принципах геометрической оптики и является хорошим физическим приближением, в отличие от метода растеризации, который работает подобно кисти художника. В любом трехмерном редакторе всегда доступен хотя бы один встроенный визуализатор.
2.1.2. Программа-модуль
Программа-модуль или «plugin» взаимодействует с приложением-хостом, для которого она написана. Она компилируется как динамическая библиотека и наследует интерфейсные классы приложения-хоста. Очень часто вместе с установочным дистрибутивом трехмерного редактора поставляются средства разработки программ-модулей.
2.2. Обзор трехмерных редакторов
2.2.1. Autodesk 3ds Max
Один из наиболее популярных пакетов для работы с трехмерной графикой, вырос из программы 3d Studio, которая появилась в 1993 году для операционной системы DOS. Изначально разрабатывалась компанией Discreet, которая была позже куплена гигантом области CAD/CAM ПО Autodesk.
3ds Max имеет встроенный язык сценариев MaxScript, а также возможность запуска программ-модулей, написанных на языках C/C++.
Основные сферы применения продукта: компьютерные игры, телевизионная реклама, архитектурная визуализация.
Два значительных недостатка этого продукта – достаточно высокая цена и отсутствие кросс-платформенности: 3ds Max рассчитан на работу только в среде операционных систем компании Microsoft.
[7]

Рис. 1. Пользовательский интерфейс программы 3ds Max
2.2.2. NewTek Lightwave 3D
Один из первых общедоступных трехмерных редакторов промышленного масштаба. Этот пакет состоит из двух отдельных программ – «Modeling» для моделирования и «Layout» для настройки освещения, анимации и визуализации.
Важной особенностью пакета является то, что большинство его функций написаны с учетом асинхронной модели программирования, что подразумевает эффективную работу на мультипроцессорных системах.
Из средств расширения функциональности доступен встроенный специально разработанный язык сценариев LScript, имеющий схожий с языком С синтаксис, и SDK для написания модулей на С/C++.
Lightwave3d в основном используется в разработке компьютерных игр, а также на телевидении и в кино (некоторые фильмы получили награду Emmy за спецэффекты). [8]

Рис. 2. Пользовательский интерфейс программы Lightwave
2.2.3. Autodesk Maya
Трехмерный редактор Maya обладает очень широкими возможностями, так как изначально был составлен из трех программ: визуализатора The Advanced Visualizer калифорнийской компании Wavefront, средства моделирования Explore французской компании Thomson Digital Image (TDI) и пакета анимации Power Animator канадской компании Alias. В конечном счете Alias приобрела TDI, а гигант сферы 3D графики SGI поглотил и Alias, и Wavefront. После этого на свет появилась Maya, работающая в среде специальной операционной системы для графической обработки Irix на графических серверах SGI, а затем была адаптирована для трех самых популярных ОС: Windows, Mac OS, Linux. Сегодня данный пакет выпускается под брендом Autodesk.
[9]
Обычно, как слабую сторону Maya выдвигают неинтуитивный пользовательский интерфейс (с другой стороны, многие выражали мысль, что после того, как формируется привычка к нему, он оценивается как более удобный и гибкий, нежели в других пакетах). Как большое преимущество выделяют очень развитую систему анимации, поэтому в Maya часто создают анимацию животных и гуманоидов. Однако, это не единственная сильная сторона программы, в ней можно также найти много продвинутых возможностей по имитации жидкости, меха, тканей, волос, созданию анимации методом motion capture (все это в самой полной и дорогой версии программы).

Рис. 3. Пользовательский интерфейс программы Maya
Autodesk Maya обладает одним из наиболее гибких программных интерфейсов для расширения среди проприетарных программ с закрытым кодом (вследствие особый архитектуры программы, где все параметры сцены отображаются на структуре DAG - направленном ациклическом графе) – для этого можно использовать встроенный язык сценариев Maya Embedded Language (MEL) или SDK C/C++.
2.2.4. Softimage XSI
Для того, чтобы описать пакет XSI, выделим наборы возможностей, которые можно разделить на семь основных групп: openXSI, XSI workforce, XSI performance, rendercore, mixer, XSI intuition, XSI fx.

Рис. 4. Пользовательский интерфейс программы XSI
openXSI: В отличие от других трехмерных редакторов, имеющих встроенные специализированные языки сценариев, для XSI можно писать сценарии на распространенных языках JScript, VBScript, Python, PerlScript, ScOps и OMScripting.
XSI workforce предназначен для упрощения работы над проектом в команде, например для удобного просмотра документации.
XSI performance служит для того, чтобы повысить скорость работы над трехмерной моделью.
Ядром визуализации (rendercore) в XSI является mental ray, который, однако, также доступен в качестве второго визуализатора в программах 3ds Max и Maya.
С помощью mixer можно накладывать (в том числе и используя «систему слоев») различные анимации друг на друга, а также редактировать их. Хорошей возможностью является возможность проигрывания аудио – это может потребоваться, например, для осуществления синхронизации губ персонажей с их речью.
XSI intuition позволяет изменять пользовательский интерфейс для адаптации под личные потребности.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 |



