close

Вход

Забыли?

вход по аккаунту

?

Sorokin

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное
учреждение высшего профессионального образования
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ
ОСНОВЫ РАБОТЫ С X3DOM
Методические указания для студентов очной
формы обучения
Санкт-Петербург
2014
Составитель – А. А. Сорокин
Рецензент – кандидат технических наук, доцент В. П. Попов
Методические указания по курсу «Интерактивная компьютерная
графика» включают варианты лабораторных работ для студентов
очного отделения с пояснениями к их выполнению и оформлению,
литературу и интернет-ресурсы.
Предназначены для студентов очной формы обучения по
направлению 230100.62 «Информатика и вычислительная техника»
Ивангородского гуманитарно-технического института (филиала)
ФГАОУ ВПО «Санкт-Петербургский государственный университет
аэрокосмического приборостроения».
Подготовлены на кафедре Прикладной математики и информатики Ивангородского гуманитарно-технического института (филиала)
ФГАОУ ВПО «Санкт-Петербургский государственный университет
аэрокосмического приборостроения».
Публикуется в авторской редакции
Компьютерная верстка Ю. А. Гайнутдиновой
Сдано в набор 01.04.2014. Подписано к печати 08.07.14. Формат 60 × 84 1/16.
Бумага офсетная. Усл. печ. л. 1,97. Уч.-изд. л. 2,1.
Тираж 100 экз. Заказ № 392.
Редакционно-издательский центр ГУАП
190000, Санкт-Петербург, Б. Морская ул., 67
© Санкт-Петербургский государственный
университет аэрокосмического
приборостроения, 2014
ПРЕДИСЛОВИЕ
Издание подготовлено в соответствии с требованиями ФГОС и
программой дисциплины «Интерактивная компьютерная графика», разработанной и утвержденной в ГУАП.
Целью учебной дисциплины «Интерактивная компьютерная
графика» является изучение и практическое освоение программных средств построения интерактивных трехмерных сцен на персональном компьютере и в сети Интернет.
Изучение курса «Интерактивная компьютерная графика» студентами очной формы обучения включает в себя лекционные занятия, лабораторные занятия, направленные на освоение и закрепление материала, а также самостоятельную работу.
Настоящее издание нацелено на изучение методик работы с языками X3D и X3Dom, основ построения трехмерных интерактивных
сцен. По завершению курса студенты должны иметь представление
об основах технологии создания трехмерных сцен, знать открытые
программные стандарты VRML, X3D и методы построения интерактивных трехмерных сцен, уметь проектировать интерактивные
трехмерные пространства и применять открытые программные
стандарты для их разработки с учетом особенностей их использования в глобальных компьютерных сетях.
3
Требования к выполнению заданий
Данное пособие содержит 7 заданий на лабораторные работы.
Все работы связаны между собой и выполняются последовательно.
Рекомендуется сохранять каждую работу отдельно для дальнейшего ее использования. Каждая лабораторная работа содержит 10 вариантов заданий.
Вариант выбирается следующим образом: последняя цифра номера зачетки (номера студенческого билета) соответствует номеру варианта, если последняя цифра – 0, выбирается вариант 10. Вариант
выбирается один раз для всех лабораторных работ.
Все лабораторные работы состоят из двух этапов:
1. Построение сцены или объектов на языке X3D.
2. Перенос X3D в DOM-модель Web-страницы (X3Dom).
Запрещается использование VRML для решения поставленных
задач из-за его несовместимости с X3Dom. На обоих этапах запрещается использовать вспомогательное программное обеспечение
для трехмерного моделирования или построения Web-сайтов. Все
объекты X3D строятся вручную. Если для выполнения расчетов
при проектировании объектов используется собственное программное обеспечение, то его исходный код необходимо добавить в пояснительную записку к лабораторной работе (отчет).
До переноса в X3Dom, разработанный виртуальный мир должен
быть проверен с помощью проигрывателя. Если после переноса мир
не работает в браузере из-за отсутствия поддержки каких-либо элементов X3D в X3Dom, их необходимо заменить аналогами.
4
Лабораторная работа 1
ПОСТРОЕНИЕ СЦЕНЫ
1. Введение в языки моделирования виртуальной реальности
VRML (Virtual Reality Modeling Language) – язык моделирования виртуальной реальности; стандартизированный текстовый
формат файлов для демонстрации трехмерной интерактивной векторной графики. Поддерживается большинством программ трехмерного моделирования. По возможностям отстает от современной
компьютерной графики.
X3D – расширение языка VRML, использующее синтаксис XML;
стандарт ISO, предназначенный для работы с трехмерной компьютерной графикой в реальном времени. Совместим с VRML и поддерживает его синтаксис.
X3Dom (X-Freedom) – экспериментальный фреймворк с открытым исходным кодом, нацеленный на интеграцию X3D элементов
в DOM-модель HTML5, что позволяет вывести интерактивность на
новый уровень за счет выделения клиентской и серверной части
виртуальной реальности. Основан на XML синтаксисе языка X3D.
Реализован для браузеров, поддерживающих WebGL, и плагинов
Flash 11 и выше или InstantReality. Включается посредством добавления в DOM-модель документа мира, описанного на языке X3D,
скриптовой части на языке JavaScript (x3dom.js) и каскадной таблицы стилей (x3dom.css).
Язык VRML, являющийся основой для построения виртуальных
миров, к сожалению, невозможно интегрировать в Web-страницу
без использования специальных плагинов, кроме этого, его функциональные возможности не соответствуют современным требованиям оформлению Web-страниц. Поэтому здесь и далее все примеры и задания будут базироваться на XML-синтаксисе языка X3D,
взаимодействие с которым возможно и с помощью скриптовой части
страниц (JavaScript, JScript, VBScript).
2. Структура X3D-документа
Язык X3D базируется на XML-синтаксисе. Любой X3D-документ
полностью соответствует спецификации XML и начинается с объявления версии языка и используемой кодировки:
5
<?xml version=’1.0’ encoding=’UTF-8’?>
Рекомендуемой является кодировка UTF-8, русский язык в этой
кодировке будет поддерживаться любым проигрывателем и плагином. Поэтому при разработке необходимо выбрать текстовый редактор с поддержкой UTF-8, например, Notepad++.
Язык поддерживает комментарии, Которые обособляются символами «<!--» слева и «-->» справа:
<!- – Текст комментария – ->
Все остальное содержимое документа – элементы, вложенные
друг в друга и их атрибуты:
<внешний_элемент атрибут=”значение”>
<вложенный_элемент атрибут=’значение’ />
</внешний_элемент>
Каждый элемент, внутри которого содержится другой элемент
описывается с помощью открывающего и закрывающего тега (перед
именем ставится слэш – косая черта). Элементы, не содержащие вложенных, не имеют парных (слэш ставится в конце описания элемента). Кроме этого элементы содержат атрибуты, имена которых отделяются друг от друга разделителями (пробельными символами). Значение атрибута записывается после символа равно в кавычках или
апострофах. Запись значения без обособляющих знаков не рекомендуется, как и не рекомендуется использование кириллицы в написании имен элементов или атрибутов.
Основным (корневым) элементом X3D-документа является одноименный элемент X3D (рекомендуемые атрибуты: profile, version),
внутри которого содержится сцена – элемент Scene. Все описание
виртуального мира содержится в сцене. Кроме различных объектов, сцена может содержать список разрешенных методов перемещения – табл. 1.1, список камер, описание фона, имя мира
и другое:
<?xml version=’1.0’ encoding=’UTF-8’?>
<X3D>
<Scene>
<WorldInfo title=’Name of World’ />
<NavigationInfo type=’NONE’ />
<Viewpoint description=’Front’
orientation=’0 1 0 0’
position=’0 0 10’ />
<Background skyColor=’1 1 1’ />
</Scene>
</X3D>
6
Таблица 1.1
Значения NavigationInfo
Значение
Описание
ANY
Все возможные методы передвижения
EXAMINE
Вращение мышью, перемещение двойным кликом
FLY
Гоизонтальное передвижение с помощью мыши.
FREEFLY
Передвижение с помощью мыши.
GAME
Игровое движение (стрелки или клавиши W, A, S, D)
LOOKAT
Осмотр, движение отсутствует
NONE
Движение запрещено
PAN
Вращение с центром в точке обзора
SLIDE
Скольжение
WALK
Горизонтальное передвижение с помощью
мыши.
3. Структура X3Dom-документа
X3D-мир напрямую встраивается в Web-страницу как обычный элемент HTML или xHTML документа. Для обработки X3Dсодержимого необходимо в заголовочной части страницы подключить программную часть – x3dom.js – и связанную с ней каскадную
таблицу стилей – x3dom.css. Рекомендуется использовать актуальные версии с сайта разработчиков. Встраивание в производится переносом элемента X3D с его содержимым в необходимое место страницы. Кодировка Web-страницы по-прежнему рекомендуется UTF-8,
чтобы предотвратить возможные проблемы с русским языком или методами обмена данными с сервером.
С помощью дополнительных атрибутов элемента X3D можно
управлять методами отображения самой сцены и отладочной информации: showStat – статистика, showLog – отладочная информация, height – высота, width – ширина:
<!DOCTYPE HTML>
<html>
<head>
<meta charset=’UTF8’ />
7
<link href=’x3dom.css’ />
<script src=’x3dom.js’ />
</head>
<body>
<X3D showStat=’false’ showLog=’false’
height=’200px’ width=’200px’>
...
</X3D>
</body>
</html>
4. Основные свойства сцены: камера и фон
Как и в большинстве других языков, в X3D существуют значения по умолчанию как для атрибутов, так и для отдельных элементов. Примером значения для элемента является камера. Если у сцены отсутствуют объявления камеры, то камера устанавливается
в позицию (0;0;10). В противном случае создается по камере на каждое описание, первая камера из списка становится камерой по умолчанию.
За камеру (точку обзора) отвечает элемент Viewpoint, его основные атрибуты: description – имя для проигрывателей, orientation –
направление камеры, position – положение камеры. Orientation состоит из четырех значений, где первые три – направляющие косинусы по осям 0x, 0y и 0z, четвертое – угол разворота в радианах.
Position состоит из трех значений x, y и z. Разделителями выступают обычные пробельные символы или запятые. Точка – десятичный разделитель. Камера по умолчанию выглядит так:
<Viewpoint description=’Front’
orientation=’0 1 0 0’ position=’0 0 10’ />
Саму сцену (или мир) можно представить в виде сферы, высшая и
низшая точки которой находятся над и под выбранной точкой обзора.
С помощью элемента background и его основных свойств можно управлять цветами окружающего мира: skyClor – цвета «небесной сферы»,
skyAngle – угловые расстояния от верхней точки до линий, цвета которых указаны в skyColor, groundColor – цвета «земли» (нижней полусферы), groundAngle – соответствующие угловые расстояния. Цвета указываются наборами по 3 вещественных числа со значениями
от 0 до 1 в формате RGB (интенсивность каждого канала). Разделителями являются пробельные символы и запятые независимо от их
расположения и количества. Для удобства рекомендуется отделять
8
каждую группу дополнительным пробелом или обособлять от других групп запятыми. Каждый угол – вещественное число в радианах. Для skyColor и groundColor существует один цвет, который не
связан с углом – основной цвет окружающего мира. Все остальные
цветовые значения должны быть связаны с углами. Если две соседних линии разного цвета, то между ними будет градиентный переход из одного цвета в другой. Пример, переходящая из белого в голубой небесная сфера и черная земля:
<background skyColor=»1 1 1, 0.2588 0.6666 1»
skyAngle=»3.1416» groundColor=»0 0 0, 0 0 0»
groundAngle=»1.5708» />
5. Задание
Цель работы:
Познакомиться с основой построения виртуального мира и структурой X3D-документа. Познакомиться с работой с проигрывателем
X3D. Научиться встраивать X3D-мир в Web-страницу.
Формулировка задания:
1. Выбрать задание согласно варианту.
2. Построить мир с учетом необходимых вариантов цветового
оформления.
3. Добавить в мир необходимое количество камер и методы перемещения.
4. Произвести проверку с помощью проигрывателя.
5. Перенести мир в Web-страницу и выполнить проверку в браузере.
6. Написать отчет.
Содержание отчета:
Отчет о лабораторной работе должен содержать:
1. Титульный лист, содержащий (образец присутствует на сайте
ВУЗа):
1.1. Полное название ВУЗа, кафедры, дисциплины и лабораторной работы.
1.2. Фамилию и инициалы студента, а также номер группы.
1.3. Информацию о преподавателе.
2. Цель работы.
3. Исходные данные согласно варианту.
4. Задание.
5. Исходный текст разработанного X3D-документа.
6. Исходный текст Web-страницы с интегрированным X3Dom.
7. Вывод.
9
6. Варианты заданий
Вариант 1
«Небесная сфера» состоит из следующих цветов (сверху вниз):
желтый, зеленый, голубой, серый. Угловые расстояния одинаковые. «Земля» отсутствует. Оттенки неба следует выбирать светлые,
не мешающие восприятию.
Вариант 2
«Небесная сфера» плавно переходит из синего в фиолетовый.
«Земля» имеет равномерную коричневую окраску. Оттенки неба
следует выбирать светлые, не мешающие восприятию. Оттенки земли должны быть темными, не мешающими восприятию.
Вариант 3
«Небесная сфера» имеет равномерную розовую окраску. «Земля»
состоит из следующих цветов (от центра к краям): серый, коричневый, черный. Угловые расстояния одинаковые. Оттенки неба следует выбирать светлые, не мешающие восприятию. Оттенки земли
должны быть темными, не мешающими восприятию.
Вариант 4
«Небесная сфера» окрашена тремя оттенками синего. «Земля»
окрашена тремя оттенками зеленого. Угловые расстояния должны
быть одинаковыми. Оттенки неба следует выбирать светлые, не мешающие восприятию. Оттенки земли должны быть темными, не мешающими восприятию.
Вариант 5
«Небесная сфера» окрашена равномерным серым цветом. Цвет
«Земли» плавно переходит из черного в коричневый, а затем в зеленый. Оттенки неба следует выбирать светлые, не мешающие восприятию. Оттенки земли должны быть темными, не мешающими
восприятию.
Вариант 6
«Небесная сфера» окрашена в синий цвет. В центре располагается желтая имитация источника света. Чтобы предотвратить появления зеленого, желтый и синий разделены белым. «Земля» равномерно окрашена в зеленый. Оттенки неба следует выбирать светлые,
не мешающие восприятию. Оттенки земли должны быть темными,
не мешающими восприятию.
Вариант 7
«Небесная сфера» окрашена в чередующиеся оранжевые и розовые цвета с плавными переходами. Земля отсутствует. Оттенки неба следует выбирать светлые, не мешающие восприятию.
10
Вариант 8
«Небесная сфера» плавно меняет цвет от зеленого до желтого.
Земля плавно меняет цвет от зеленого до коричневого. Оттенки неба
следует выбирать светлые, не мешающие восприятию. Оттенки земли должны быть темными, не мешающими восприятию.
Вариант 9
«Небесная сфера» состоит из следующих цветов (снизу-вверх):
желтый, зеленый, синий, серый. Каждое следующее угловое расстояние в два раза больше предыдущего. «Земля» отсутствует. Оттенки
неба следует выбирать светлые, не мешающие восприятию.
Вариант 10
«Небесная сфера» имеет равномерную голубую окраску. «Земля»
состоит из следующих цветов (от края к центру): серый, коричневый,
зеленый. Каждое следующее угловое расстояние в два раза больше
предыдущего. Оттенки неба следует выбирать светлые, не мешающие
восприятию. Оттенки земли должны быть темными, не мешающими
восприятию.
11
Лабораторная работа 2
2D-ОБЪЕКТЫ
1. Основные 2D-объекты
Формат X3D поддерживает множество различных объектов,
в т.ч. и графические примитивы. Среди примитивов на плоскости
можно выделить линии и области плоскости (например, окружность и круг). Основные из них представлены в табл. 2.1, остальные
с их описанием можно найти в спецификации и справочных материалах по языку X3D.
Таблица 2.1
Графические примитивы на плоскости
Элемент
Описание
Атрибуты (значение по умолчанию)
Arc2D
Дуга
radius = 1, startAngle = 0,
endAngle = 1.570796
ArcClose2D
Сектор или
сегмент
radius = 1, startAngle = 0
endAngle = 1.570796
closureType = PIE (сектор) или
CHORD (сегмент)
Circle2D
Окружность
radius = 1
Disk2D
Круг
или кольцо
innerRadius = 0
outerRadius = 1
Polyline2D
Ломаная
lineSegments – набор точек
Rectangle2D
Прямоугольник
size = 2 2 (ширина и высота)
TriangleSet2D
Набор треугольников
vertices – набор треугольников (каждый
треугольник состоит из 3х точек – x y)
Встраивание каждого элемента происходит добавлением отдельного элемента-контейнера Shape. Попытка добавить несколько объектов через один Shape не приведет к желаемому результату: будет
доступен только первый объект. Пример правильного добавления
кольца:
<Shape>
<Disk2D innerRadius=’0.5’ outerRadius=’1’ />
</Shape>
12
2. Положение, искажение, объединение 2D-объектов
Язык X3D позволяет производить несколько различных трансформаций объектов. Трансформации производятся с помощью элемента Transform, в который заключаются элементы, к которым будут применяться модификации. При необходимости выполнения
нескольких взаимоисключающих изменений, можно помещать элементы Transform друг в друга. Основные атрибуты перечислены
в табл. 2.2.
Таблица 2.2
Основные атрибуты элемента Transform
Атрибут
Описание
Значение
по умолчанию
translation
Перемещение (x y z)
000
rotation
Разворот (направляющие косинусы и
угол разворота)
0010
center
Центр вращения (x y z)
000
scale
Искажение (соотношение сторон по
каждому направлению)
111
Пользуясь элементом Transform можно объединять множество
объектов. Если же требуется только объединение, имеет смысл использовать элемент Group, внутрь которого помещаются все группируемые элементы.
3. Задание
Цель работы:
Познакомиться с основой работы с объектами в X3D. Научиться
создавать 2D-объекты, модифицировать и группировать их.
Формулировка задания:
1. Выбрать задание согласно варианту.
2. Построить с помощью 2D-объектов витраж из задания.
3. Встроить в мир, разработанный в лабораторной работе 1,
витраж.
4. Произвести проверку с помощью проигрывателя.
5. Перенести мир с витражом в Web-страницу и выполнить проверку в браузере.
6. Написать отчет.
13
Содержание отчета:
Отчет о лабораторной работе должен содержать:
1. Титульный лист, содержащий (образец присутствует на сайте ВУЗа):
1.1. Полное название ВУЗа, кафедры, дисциплины и лабораторной работы.
1.2. Фамилию и инициалы студента, а также номер группы.
1.3. Информацию о преподавателе.
2. Цель работы.
3. Исходные данные согласно варианту.
4. Задание.
5. Исходный текст витража на языке X3D.
6. Картинка, показывающая результат работы (скриншот).
7. Исходный текст Web-страницы с интегрированным X3Dom.
8. Вывод.
4. Варианты заданий
14
Вариант 1
Вариант 6
Вариант 2
Вариант 7
Вариант 3
Вариант 8
Вариант 4
Вариант 9
Вариант 5
Вариант 10
15
Лабораторная работа 3
МАТЕРИАЛ, ИСПОЛЬЗОВАНИЕ ЦВЕТА
1. Управление внешним видом объектов
Чтобы отойти от параметров оформления объектов по умолчанию, необходимо добавить в элемент Shape элемент Appearance, который является контейнером для нескольких методов изменения
внешнего вида. Основным методом будет использование элемента
Material, основные атрибуты которого перечислены в табл. 3.1:
<Shape>
<Appearance>
<Material />
</Appearance>
...
</Shape>
Таблица 3.1
Атрибуты элемента Material
Атрибут
Описание
Значение по
умолчанию
ambientIntensity
Воздействие окружающего света
0.2
diffuseColor
Цвет объекта
0.8 0.8 0.8
emissiveColor
Цвет свечения
000
shininess
Блеск
0.2
specularColor
Цвет блика
000
transparency
Прозрачность
0
При этом стоит учесть, что данные свойства не влияют на объектылинии (ломаная, дуга и т.д.).
2. Задание
Цель работы:
Познакомиться с основой работы с объектами в X3D. Научиться
создавать 2D-объекты, модифицировать и группировать их.
16
Формулировка задания:
1. Взять задание из лабораторной работы 2.
2. Построить с помощью 2D-объектов витраж из задания, закрасив области 4-6 цветами.
3. Добавить контуры, наложив витраж из лабораторной работы 2.
4. Встроить в мир, разработанный в лабораторной работе 1, витраж.
5. Произвести проверку с помощью проигрывателя.
6. Перенести мир с витражом в Web-страницу и выполнить проверку в браузере.
7. Написать отчет.
Содержание отчета:
Отчет о лабораторной работе должен содержать:
1. Титульный лист, содержащий (образец присутствует на сайте ВУЗа):
1.1. Полное название ВУЗа, кафедры, дисциплины и лабораторной работы.
1.2. Фамилию и инициалы студента, а также номер группы.
1.3. Информацию о преподавателе.
2. Цель работы.
3. Исходные данные согласно варианту.
4. Задание.
5. Исходный текст витража на языке X3D.
6. Картинка, показывающая результат работы (скриншот).
7. Исходный текст Web-страницы с интегрированным X3Dom.
8. Вывод.
17
Лабораторная работа 4
3D-ОБЪЕКТЫ
1. Основные 3D-объекты
Среди 3D-объектов языка X3D можно выделить две группы:
1. Трехмерные примитивы (куб, сфера и т.д., векторные объекты),
основной список которых представлен в табл. 4.1.
2. Полигональные фигуры.
Таблица 4.1
Трехмерные графические примитивы
Элемент
Описание
Атрибуты (значение по умолчанию)
Box
Параллелепипед
size = 2 2 2 (ширина, высота, глубина)
Cone
Конус
bottomRadius = 1, height = 2
Cylinder
Цилиндр
height = 2, radius = 1
Sphere
Сфера
radius = 1
Text
Текст
string (выводимый текст)
2. Прототипы
Зачастую, при построении сложных объектов приходится использовать однотипные блоки, состоящие из нескольких объектов.
Если внутри такого блока не планируется изменений или все изменения, в т.ч. и анимация, будут происходить одновременно во всех
блоках, можно создать именованный прототип, который либо используется при построении, либо располагается вне зоны видимости, либо скрывается с помощью трансформаций.
Во внешнем элементе (Shape, Transform, Group) выбранного блока объявляется атрибут DEF с уникальным значением – именем
блока (имя может состоять из латинских букв, цифр и символа под18
черкивания, не должно начинаться с цифры, пробельные символы
запрещены):
<Group DEF=’name’>
<Shape>
<Box />
</Shape>
<Shape>
<Cone />
</Shape>
</Group>
Для обращения к полученному блоку используется элемент
Shape, не содержащий в себе объектов, в котором объявляется атрибут USE со значением – именем используемого блока:
<Shape USE=’name’ />
Каждый экземпляр можно изменять с помощью трансформации, выбора материала и наложения текстуры индивидуально. Но
следует учесть, что замена материала затронет все элементы дубликата независимо от того, как был описан прототип.
3. Скелет, относительно расположение объектов
Построение сложных объектов и их анимация приводят к возникновению расчетов разворотов и смещений каждого объекта (при
полигональной графике – каждой вершины). Для упрощения работы используется скелетная анимация, основанная на относительном расположении объектов: при изменении свойств родительского
Рис. 4.1. Скелетное построение
19
элемента (узла), например, положении в пространстве, изменяется
положение всех дочерних узлов. При таком подходе изначальное положение дочернего объекта относительно родительского (0;0;0). Любые модификации дочернего элемента не влияют на родительский.
В X3D, обычно, роль узла (родительского элемента) исполняет
элемент Transform:
<Transform DEF=’parent_node’>
<Shape />
...
<Transfrom DEF=’child_node’>
<Shape />
...
</Transform>
</Transform>
На рис. 4.1 представлен пример скелетного построения из сфер (в
качестве визуализации узлов) и конусов (в качестве визуализации
связей между узлами).
4. Задание
Цель работы:
Научиться создавать 3D-объекты, модифицировать и группировать их. Научиться создавать прототипы. Научиться проектировать и строить сложные скелетные объекты на основе прототипов.
Формулировка задания:
1. Выбрать задание согласно варианту.
2. Разработать прототипы с учетом задания.
3. Построить из прототипов скелет согласно заданию.
4. Произвести проверку с помощью проигрывателя.
5. Перенести мир в Web-страницу и выполнить проверку в браузере.
6. Написать отчет.
Содержание отчета:
Отчет о лабораторной работе должен содержать:
1. Титульный лист, содержащий (образец присутствует на сайте
ВУЗа):
1.1. Полное название ВУЗа, кафедры, дисциплины и лабораторной работы.
1.2. Фамилию и инициалы студента, а также номер группы.
1.3. Информацию о преподавателе.
2. Цель работы.
3. Исходные данные согласно варианту.
20
4. Задание.
5. Исходный текст разработанных прототипов.
6. Исходный текст разработанного скелета.
7. Изображения полученного скелета в проигрывателе и в браузере (скриншоты).
8. Вывод.
5. Варианты заданий
Вариант 1
Разработать скелет гуманоида, отобразить узлы с помощью сфер,
соединенных цилиндрами. Количество прототипов: 3. Количество
сегментов: по необходимости.
Вариант 2
Разработать скелет кисти руки, отобразить узлы с помощью
сфер, соединенных цилиндрами. Количество прототипов: 1. Количество сегментов: по необходимости.
Вариант 3
Разработать скелет манипулятора, отобразить узлы с помощью
сфер, соединенных цилиндрами. Количество прототипов: 3. Количество сегментов: 5.
Вариант 4
Разработать скелет гуманоида, отобразить узлы с помощью параллелепипедов, соединенных цилиндрами. Количество прототипов: 4. Количество сегментов: по необходимости.
Вариант 5
Разработать скелет кисти руки, отобразить узлы с помощью параллелепипедов, соединенных цилиндрами. Количество прототипов: 2. Количество сегментов: по необходимости.
Вариант 6
Разработать скелет манипулятора, отобразить узлы с помощью
параллелепипедов, соединенных цилиндрами. Количество прототипов: 2. Количество сегментов: 4.
Вариант 7
Разработать скелет гуманоида, отобразить узлы с помощью сфер,
соединенных конусами. Количество прототипов: 2. Количество сегментов: по необходимости.
Вариант 8
Разработать скелет кисти руки, отобразить узлы с помощью
сфер, соединенных конусами. Количество прототипов: 4. Количество сегментов: по необходимости.
21
Вариант 9
Разработать скелет манипулятора, отобразить узлы с помощью
сфер, соединенных конусами. Количество прототипов: 3. Количество сегментов: 6.
Вариант 10
Разработать скелет гуманоида, отобразить узлы с помощью сфер,
соединенных цепочкой из параллелепипедов и сфер (штрихпунктирной линией). Количество прототипов: по необходимости. Количество сегментов: по необходимости.
22
Лабораторная работа 5
СВЕТ И ТЕКСТУРЫ
1. Источники света и варианты их размещения
Изначально любая сцена в X3D строится без использования источников света. Но, чтобы добиться большей реалистичности, показать трехмерное пространство, необходимо использовать источники света. В разных средах трехмерного моделирования существуют
свои варианты источников света, большинство из которых базируется на трех основных. Существующие в X3D источники приведены
в табл. 5.1.
Таблица 5.1
Источники света
Источник
Описание
Атрибуты (значение по умолчанию)
DirectionalLight
Направленный
свет
ambientIntensity = 0.2,
color = 1 1 1,
direction = 0 0 – 1,
intensity = 1,
on = true
SpotLight
Прожектор
ambientIntensity = 0,
beamWidth = 0.7854,
color = 1 1 1,
cutOffAngle = 1.570796,
direction = 0 0 – 1,
intensity = 1,
location = 0 0 0,
on = true,
radius = 100
PointLight
Точечный источник света
ambientIntensity = 0,
color = 1 1 1,
intensity = 1,
location = 0 0 0,
on = true,
radius = 100
Какие источники света использовать и как их расставлять зависит
от преследуемой цели. Обычно используется классическая расстановка источников, называемая Голливудским треугольником – рис. 5.1.
23
Обратный
свет
Объект
Ключевой
свет
Заполняющий
свет
Рис. 5.1. Голливудский треугольник
При которой один источник располагается за объектом, чтобы выделить его контур, один перед объектом (обычно справа), освещающий
объект – прожектор, и еще один перед объектом (с другой стороны),
освещающий все объекты сцены, чтобы сделать их видимыми.
2. Текстуры
В X3D существует несколько вариантов текстур, подробно с которыми можно ознакомиться из спецификации или справочных
материалов. Среди них присутствует классическая текстура – изображение – элемент ImageTexture, свойства которого приведены
в табл. 5.2.
Таблица 5.2
Атрибуты ImageTexture
Атрибут
Описание
url
Ссылка на файл
Значение по умолчанию
repeatS
Повторять по горизонтали
true
repeatT
Повторять по вертикали
true
Добавление текстуры производится чрез элемент Appearance:
<Shape>
<Appearance>
24
<ImageTexture url=’...’ />
</Appearance>
...
</Shape>
Если Shape, к которому применяется текстура, является экземпляром прототипа, то текстура будет применена ко всем его составляющим. Если необходимо задать поведение объекта (отражающую
способность, цвет и интенсивность блика, излучаемый свет и т.д.),
то параллельно задаются свойства через элемент Material.
3. Задание
Цель работы:
Познакомиться с основой работы со светом X3D. Научиться создавать использовать простые текстуры.
Формулировка задания:
1. Взять задания из лабораторных работ 3 и 4.
2. Заменить в витраже из задания 3 цвета на текстуры.
3. Разработать и применить текстуры для прототипов из задания 4.
4. Встроить в мир, разработанный в лабораторной работе 1, витраж и скелетный объект.
5. Произвести проверку с помощью проигрывателя.
6. Перенести мир с витражом и скелетным объектом в Webстраницу и выполнить проверку в браузере.
7. Написать отчет.
Содержание отчета:
Отчет о лабораторной работе должен содержать:
1. Титульный лист, содержащий (образец присутствует на сайте
ВУЗа):
1.1. Полное название ВУЗа, кафедры, дисциплины и лабораторной работы.
1.2. Фамилию и инициалы студента, а также номер группы.
1.3. Информацию о преподавателе.
2. Цель работы.
3. Исходные данные согласно варианту.
4. Задание.
5. Исходный текст витража и скелетного объекта на языке X3D.
6. Исходный текст Web-страницы с интегрированным X3Dom.
7. Картинки, показывающие результат работы в проигрывателе
и браузере (скриншоты).
8. Вывод.
25
Лабораторная работа 6
АНИМАЦИЯ
1. Интерполяторы
Анимация в X3D строится по принципу ключевых кадров. Переходы между ними производятся плавно за счет интерполяторов. Для
каждого набора данных существует свой интерполятор: для одиночного вещественного числа – ScalarInterpolator, для координат объекта –
PositionInterpolator, для угла разворота – OrientationInterpolator, для
набора координат – CoordinateInterpolator, для цвета – ColorInterpolator
и др. Более подробно с ними ознакомиться из спецификации и справочных материалов.
У всех интерполяторов существуют два обязательных атрибута:
key – набор ключевых кадров (значение от 0 до 1) и keyValue – набор
значений для каждого кадра (количество значений зависит от типа
изменяемого атрибута: для позиционирований их будет 3, а для угла разворота – 4).
2. Таймер
Ни в одном интерполяторе не существует атрибута для указания
времени выполнения, начала анимации, типа анимации и т.д. Эта
функциональность вынесена в т.н. сенсор времени – TimeSensor, атрибуты которого перечислены в табл. 6.1. Если не задавать последние
четыре атрибута, то таймер будет полностью описан первыми тремя.
Таблица 6.1
Атрибуты TimeSensor
Атрибут
Описание
Значение по умолчанию
cycleInterval
Время выполнения
1.0
enabled
Состояние
true
loop
Зацикленность
true
startTime
Время запуска
0
stopTime
Время завершения
0
pauseTime
Время остановки
0
resumeTime
Время возобновления
0
26
3. Связь таймера, интерполятора и объекта
Чтобы объект анимировался, необходимо связать его (конкретное свойство) с интерполятором. Чтобы интерполятор передавал новое значение объекту, его нужно связать с таймером. Эти связи делаются с помощью элемента ROUTE, необходимые атрибуты которого перечислены в табл. 6.2.
Таблица 6.2
Атрибуты ROUTE
Атрибут
Описание
fromNode
Имя исходного элемента
fromField
Атрибут исходного элемента
toNode
Имя конечного элемента
toField
Артибу конечного элемента
Пример связи:
<Transform DEF=’node’>...</Transform>
<PositionInterpolator DEF=’interpolator’
key=’0, 1’ keyValue=’0 0 0, 1 0 0’ />
<TimeSensor DEF=’timer’ cycleInterval=’10’ />
<ROUTE fromNode=’Timer’
fromField=’fraction_changed’
toNode=’interpolator’
toField=’set_fraction’ />
<ROUTE fromNode=’interpolator’
fromField=’value_changed’
toNode=’node’
toField=position’ />
4. Задание
Цель работы:
Познакомиться с основами анимации в X3D. Научиться анимировать сложные объекты.
Формулировка задания:
1. Взять задание из лабораторных работ 4 и 5 (скелет).
2. Дополнить скелет необходимыми для анимации элементами.
3. Разработать и реализовать анимацию скелета.
27
4. Встроить в мир, разработанный в лабораторной работе 1 анимированный скелетный объект.
5. Произвести проверку с помощью проигрывателя.
6. Перенести мир анимированным скелетным объектом в Webстраницу и выполнить проверку в браузере.
7. Написать отчет.
Содержание отчета:
Отчет о лабораторной работе должен содержать:
1. Титульный лист, содержащий (образец присутствует на сайте
ВУЗа):
1.1. Полное название ВУЗа, кафедры, дисциплины и лабораторной работы.
1.2. Фамилию и инициалы студента, а также номер группы.
1.3. Информацию о преподавателе.
2. Цель работы.
3. Исходные данные согласно варианту.
4. Задание.
5. Исходный скелетного объекта и анимации на языке X3D.
6. Исходный текст Web-страницы с интегрированным X3Dom.
7. Картинки, показывающие результат работы в проигрывателе
и браузере (скриншоты).
8. Вывод.
28
Лабораторная работа 7
ИНТЕРАКТИВНОСТЬ
1. Сенсоры
Кроме TimeSensor, который по сути является таймером, в X3D существует множество других сенсоров, основные приведены в табл. 7.1.
Таблица 7.1
Сенсоры X3D
Сенсор
Описание
TimeSensor
Сенсор, реагирующий на события системного таймера
KeySensor
Сенсор, реагирующий на события клавиатуры
TouchSensor
Сенсор, реагирующий на события мыши
CylinderSensor
Сенсор, отслеживающий движения в цилиндре
PlaneSensor
Сенсор, отслеживающий движения в плоскости
SphereSensor
Сенсор, отслеживающий движения в сфере
Все сенсоры, цепляются к своему родительскому элементу и не
работают за его пределами, что позволяет манипулировать отдельными объектами. Связь каждого сенсора с другими элементами
производится за счет элемента ROUTE. Атрибут description каждого сенсора позволяет вывести подсказку на экран. Более подробно
ознакомиться со списком сенсоров, их возможностями и атрибутами можно из спецификации и справочных материалов.
2. Задание
Цель работы:
Познакомиться с основными сенсорами в X3D. Научиться взаимодействовать с различными объектами. Закрепить изученный за
курс «Интерактивная компьютерная графика» материал.
Формулировка задания:
1. Выбрать задание согласно варианту.
2. Взять задания из лабораторных работ 2–6.
29
3. Встроить в мир из работы 1 все объекты из работы 2-6 так, чтобы они не попадали в зону видимости друг друга.
4. Снабдить каждый объект элементами манипуляции.
5. Создать объект-описание, указать в нем автора работы.
6. Разработать интерактивный экран согласно заданию, встроив
в него картинки-превью для каждого объекта.
7. Запретить управление камерой, расположить камеру напротив экрана.
8. Организовать переходы к объектам по клику на соответствующий экран и возврат от объектов обратно к экрану.
9. Произвести проверку с помощью проигрывателя.
10. Перенести мир анимированным скелетным объектом в Webстраницу и выполнить проверку в браузере.
11. Написать отчет.
Содержание отчета:
Отчет о лабораторной работе должен содержать:
1. Титульный лист, содержащий (образец присутствует на сайте
ВУЗа):
1.1. Полное название ВУЗа, кафедры, дисциплины и лабораторной работы.
1.2. Фамилию и инициалы студента, а также номер группы.
1.3. Информацию о преподавателе.
2. Цель работы.
3. Исходные данные согласно варианту.
4. Задание.
5. Исходный текст на языке X3D.
6. Исходный текст Web-страницы с интегрированным X3Dom.
7. Картинки, показывающие результат работы в проигрывателе
и браузере (скриншоты).
8. Вывод.
3. Варианты заданий
Вариант 1
Экран 1. Вращение всех объектов только в цилиндре.
Вариант 2
Экран 2. Вращение всех объектов только в сфере
Вариант 3
Экран 3. Вращение всех объектов только в цилиндре.
Вариант 4
Экран 4. Вращение всех объектов только в сфере.
30
Вариант 5
Экран 1. Вращение всех объектов только в сфере.
Вариант 6
Экран 2. Вращение всех объектов только в цилиндре.
Вариант 7
Экран 3. Вращение всех объектов только в сфере.
Вариант 8
Экран 4. Вращение всех объектов только в цилиндре.
Вариант 9
Экран 3. Вращение в цилиндре и сфере, выбирается пользователем.
Вариант 10
Экран 4. Вращение в цилиндре и сфере, выбирается пользователем.
4. Экраны
Экран 1
Все 6 окон расположены в два ряда одной плоскости.
Экран 2
Окна расположены в два ряда по окружности.
31
Экран 3
Окна расположены на одной линии, имеется возможность пролистывать их слева-направо и обратно.
Экран 4
Окна расположены в 2 вертикальных ряда, имеется возможность пролистывать их сверху-вниз и обратно.
32
Список литературы
1. Войскунский А. Е. и др. Архитектура виртуальных миров:
монография/ ред.: М. Б. Игнатьев, А. В. Никитин, А. Е. Воскуновский; 2-е изд., перераб. и доп.. СПб.: ГУАП, 2009. 287 с.
2. Макаренко В. Н. Математические методы и алгоритмы компьютерной графики: учебное пособие. СПб.: ГУАП, 2010. 186 с.
3. Web3D Consortium – [Электрон. ресурс]. – Режим доступа:
http://www.web3d.org/realtime-3d/.
4. X3Dom – [Электрон. ресурс]. – Режим доступа: http://www.
x3dom.org/.
33
Содержание
Предисловие................................................................... 3
Лабораторная работа 1. Построение сцены........................... 5
Лабораторная работа 2. 2D-объекты.................................... 12
Лабораторная работа 3. Материал, использование цвета........ 16
Лабораторная работа 4. 3D-объекты.................................... 18
Лабораторная работа 5. Свет и текстуры............................. 23
Лабораторная работа 6. Анимация.. ................................... 26
Лабораторная работа 7. Интерактивность............................ 29
Список литературы.......................................................... 33
Документ
Категория
Без категории
Просмотров
0
Размер файла
369 Кб
Теги
sorokin
1/--страниц
Пожаловаться на содержимое документа