Скачиваний:
1
Добавлен:
18.01.2022
Размер:
183.12 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

федеральное государственное автономное образовательное учреждение высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ

КАФЕДРА 44 (Кафедра вычислительных систем и сетей)

ОЦЕНКА

ПРЕПОДАВАТЕЛЬ

Старший преподаватель

А.В. Аксенов

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ЛАБОРАТОРНАЯ РАБОТА №3

ТИРАЖИРОВАНИЕ, ВСТРАИВАНИЕ, ОСВЕЩЕНИЕ, НАВИГАЦИЯ

по дисциплине: Интерактивная компьютерная графика

РАБОТУ ВЫПОЛНИЛА

СТУДЕНТКА ГР. №

номер группы

подпись, дата

инициалы, фамилия

Санкт-Петербург 2021

1. Цель работы

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

2. Постановка задачи

Разработать сюжет 3D-сцены. Пользуясь геометрическими узлами, объединяя их в именованные группы и применяя к ним пространственные преобразования, реализовать сцену в виде HTML-страницы с внедренным X3D-кодом. Задать для объектов сцены свойства материала и текстур. Для некоторых объектов (или групп объектов) применить тиражирование с использование DEF/USE. Подготовить отдельный файл в формате X3D и встроить его в основную сцену. Привязать к некоторым объектам гиперссылки на другие сцены или произвольные ресурсы. Задать для сцены освещение различными типами источников. Задать параметры навигации пользователя по сцене.

3. Задание

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

Также к каждому кольцу прикреплена прямая ссылка с помощью узлов Anchor.

4. Выполнения работы

Код 3D сцены:

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>Лабораторная работа 3</title>

<link rel="stylesheet" href="https://www.x3dom.org/download/1.8.1/x3dom.css">

<script src="https://www.x3dom.org/download/1.7/x3dom-full.js"></script>

</head>

<body>

<h1>Лабораторная работа №3</h1>

<p>Тиражирование, встраивание, освещение, навигация</p>

<p> </p>

<p> </p>

<X3D id="x3d">

<Scene>

<!-- Свет -->

<Viewpoint position='0 0 0'></Viewpoint>

<PointLight location="25 0 0.25" color="1 0 0" intensity="0.5" shadowIntensity="0.1" shadowMapSize="512">

</PointLight>

<PointLight location="-15 0 0.25" color="1 1 0" intensity="5" shadowIntensity="0.3" shadowMapSize="512"></PointLight>

<!-- Создание колец и гиперссылки -->

<Anchor url="https://www.youtube.com/watch?v=dQw4w9WgXcQ" parameter="target='_self'">

<Transform DEF='ring1' translation='4.8 0 0'>

<Shape>

<Torus innerRadius="0.1" outerRadius="1.0"></Torus>

<Appearance>

<Material diffuseColor="red"></Material>

</Appearance>

</Shape>

</Anchor>

</Transform>

<Anchor url="https://www.youtube.com/watch?v=dQw4w9WgXcQ" parameter="target='_self'">

<Transform DEF='ring2' translation='2.5 0 0'>

<Shape>

<Torus innerRadius="0.1" outerRadius="1.0"></Torus>

<Appearance>

<Material diffuseColor="black"></Material>

</Appearance>

</Shape>

</Transform>

</Anchor>

<Anchor url="https://www.youtube.com/watch?v=dQw4w9WgXcQ" parameter="target='_self'">

<Transform DEF='ring3' translation='0.2 0 0'>

<Shape>

<Torus innerRadius="0.1" outerRadius="1.0"></Torus>

<Appearance>

<Material diffuseColor="blue"></Material>

</Appearance>

</Shape>

</Anchor>

</Transform>

<Anchor url="https://www.youtube.com/watch?v=dQw4w9WgXcQ" parameter="target='_self'">

<Transform DEF='ring4' translation='1.2 -1 0'>

<Shape>

<Torus innerRadius="0.1" outerRadius="1.0"></Torus>

<Appearance>

<Material diffuseColor="yellow"></Material>

</Appearance>

</Shape>

</Anchor>

</Transform>

<Anchor url="https://www.youtube.com/watch?v=dQw4w9WgXcQ" parameter="target='_self'">

<Transform DEF='ring5' translation='3.7 -1 0'>

<Shape>

<Torus innerRadius="0.1" outerRadius="1.0"></Torus>

<Appearance>

<Material diffuseColor="green"></Material>

</Appearance>

</Shape>

</Anchor>

</Transform>

<!-- Создание группы колец -->

<Transform DEF='ring1' translation='3 2 0'>

<Group Use='Torus'></Group>

</Transform>

<Transform DEF='ring2' translation='1 1.5 0'>

<Group Use='Torus'></Group>

</Transform>

<Transform DEF='ring3' translation='7 0.5 0'>

<Group Use='Torus'></Group>

</Transform>

<Transform DEF='ring4' translation='4 -2 0'>

<Group Use='Torus'></Group>

</Transform>

<Transform DEF='ring5' translation='4 -2 0'>

<Group Use='Torus'></Group>

</Transform>

<!-- Текст -->

<Transform translation='2.5 1 0.5'>

<Shape>

<Text string='ПОПРОБУЙ БЕЗ ДОПСЫ' solid='false'>

<FontStyle family="courier" size='0.6'style='BOLD' spacing='0.1' language='en'></FontStyle>

</Text>

<Appearance>

<Material diffuseColor='pink'></Material>

</Appearance>

</Shape>

</Transform>

<Transform translation='2.2 -3 0.5'>

<Shape>

<Text string='GAMES 21/22' solid='false'>

<FontStyle family="monaco" size='0.6'style='BOLD' spacing='0.1' language='en'></FontStyle>

</Text>

<Appearance>

<Material diffuseColor='pink'></Material>

</Appearance>

</Shape>

</Transform>

</Scene>

</X3D>

</body>

</html>

Рисунок 2 – Общий план выполнения кода

Рисунок 3 – sideview с учётом света

6. Вывод

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