Task 3 (1126109)
Текст из файла
Задание 3.Трехмерная карта солнечной системыАвторы задания: Александра Афанасьева, Владимир Афанасьев, Кристина Зипа1Contents1Введение .............................................................................................................................................. 32Требования: обязательная часть (15 баллов) ................................................................................... 42.1 Модель движения .............................................................................................................................
42.2 Визуализация ..................................................................................................................................... 42.3 Взаимодействие с пользователем ................................................................................................... 53Требования: дополнительная часть (максимум 5 баллов).............................................................. 54Материалы ........................................................................................................................................... 75Ресурсы для изучения OpenGL 3 и OpenGL4 ..................................................................................... 86Правила оформления работы ............................................................................................................
87Подсказки к решению: база ............................................................................................................... 97.1 Расчет движения планет ................................................................................................................... 97.1.1Глобальные координаты .................................................................................................... 97.1.2О дискретизации .................................................................................................................
97.1.3Расчет движения планеты по модели Кеплера ................................................................ 97.1.4Гравитационная модель взаимодействия ...................................................................... 107.2 Генерация сферы.............................................................................................................................
117.3 Камера .............................................................................................................................................. 127.4 Текстура ............................................................................................................................................ 127.5 Освещение ....................................................................................................................................... 127.6 Расчет нормалей ............................................................................................................................. 138Подсказки к решению: бонусы ........................................................................................................
148.1 Подгрузка текста в окно opengl ...................................................................................................... 148.2 Плавная камера ............................................................................................................................... 148.3 Прозрачные кольца Сатурна .......................................................................................................... 148.4 Тени от спутников на планетах ......................................................................................................
158.5 Созвездия ......................................................................................................................................... 168.6 Отражения сферического окружения ........................................................................................... 1621 ВведениеЦель задания - реализовать симуляцию и визуализацию движения небесных тел солнечнойсистемы в 3D, обеспечить интерактивный режим навигации по ней.Рисунок 1. Пример выполненного задания (http://www.solar-system-explorer.com/).Другой пример реализации задания с регулируемым вращением планет.Задачи:реализовать визуализацию физической моделисоздать графическое приложений для GPU с использованием шейдеров OpenGL3/43изучить некоторые алгоритмы реалистичной компьютерной графикиобеспечить интерактивный режим работы, удобный интерфейс взаимодействия спользователем2 Требования: обязательная часть (15баллов)2.1 Модель движения1.
В солнечной системе должны быть как минимум Солнце, 9 планет (давайте будем считать,что их 9). Спутники, астероиды, кометы изображать необязательно.2. Движение планет и Солнца должно быть реализовано одним из 2 способов: по моделиКеплера или по гравитационной модели. Каждая планета должна двигаться по своейреальной орбите.3.
Планеты должны вращаться вокруг своей оси. Все скорости движения по орбитам и скоростивращения вокруг своей оси должны быть согласованы между собой.2.2 Визуализация1. У программы должно быть 2 режима масштаба: схематичный и реальный.В схематичном режиме орбиты должны даваться в логарифмической оси, размеры планетдолжны быть согласованы между собой (Солнце может быть уменьшено).
Цельсхематичного режима - удобство использования программы, наглядность.В реальном режиме орбиты должны быть соразмерны по расстоянию до Солнца и сразмерами планет, т.е. все измерения должны соответствовать физическим величинам сточностью до некоторого коэффициента.2. Все объекты должны выводиться на экран при помощи шейдерных подпрограмм версии нениже OpenGl 3.0. Как минимум, должны быть использованы вершинный и фрагментныйшейдеры.3.
У всех объектов (кроме Солнца) должны быть корректно подсчитанные гладкие нормали.4. Солнце должно являться источником освещения (можно считать его точечным). Каждаяпланета должна освещаться Солнцем с использованием модели Фонга. У планет должнобыть минимум 2 различных материала (например, у малых и больших планет).5. Некоторые планеты (минимум одна - Земля) должны быть текстурированы.В реальном режиме допускается не просчитывать нормали и освещение в полном объеме припросмотре издалека, однако при приближении к объектам все требования должны бытьсоблюдены. Главное правило: оптимизация должна быть не заметна пользователю.42.3 Взаимодействие с пользователем1. С помощью мыши должно быть организовано вращение камеры.
Приближение и удалениеможно реализовать либо с помощью колесика мыши, либо с помощью клавиатуры (+\-).Направление взгляда может быть фиксированным в центре сцены. Также у пользователядолжна быть возможность перемещения по сцене (т.е. возможность движения в выбранномнаправлении).2. Должна быть возможность остановить анимацию движения и запустить ее вновь по клавише“Пробел” с того момента, на котором она остановилась.3 Требования: дополнительная часть(максимум 5 баллов)- Качественная неполярная сетка (+1 на CPU, +2 на GPU)- Сферическая карта звёздного неба (+1)- Визуализация орбит планет в виде линий (+1)- Детализация поверхности планет с использованием сдвига вершин модели или бамп-маппингапо карте высот (+2)- Настройка тесселяции сферы (программное построение сферы из икосаэдра с фиксированнымколичеством подразбиений) (+2)- Фильтры постпроцессинга (bloom effect от звезд или комет) (+1)- Инстанцирование однотипных мешей (полигональных сеток), например, недалеких астероидов,с разными модельно-видовыми матрицами (+1) - функция glDrawElementsInstanced- Использование сложных мешей с помощью библиотеки l3ds ( космическая станция, спутник,чайник Рассела на орбите между Марсом и Юпитером, скафандр, корабль пришельцев и т.д.)(+2)- Удобная навигация по солнечной системе (+2)нелинейная навигация с помощью свободной камеры, скорость камеры в пустых местахсистемы должна быть на порядки выше, камера не должна резко тормозитьнавигация с использованием перемещения по объектам (клик по объекту - камераперелетает к нему)- Использование уровней детализации текстур (+1) - функции glTexImage2D и textureLod- Движущиеся спутники, кольцо астероидов, кометы (+2)5- Управляемая скорость анимации: смещение одной планеты вручную, по ней смещаются всеостальные (+1)- Атмосфера у планет (+2)+1 балл в случае прозрачных плоскостей+2 балла за реалистичную атмосферу, если прозрачность зависит от положения и направлениякамеры- Имитация столкновения космических объектов (массивные метеоры, астероиды) с изменениемтраектории (+1) и имитацией разрушения с помощью системы частиц (до +3 с использованиемполупрозрачных текстур)- Тени от спутников на поверхности планет, затмениепростейшие резкие тени (на Земле от Луны) + 1 баллкачественные реалистичные размытые тени от двух и более источников, реализация методаshadow volumes +2 балла- Полупрозрачные кольца Сатурна, соразмерные с масштабом планетыкольца как набор вращающихся окружностей различных цветов +1 баллкольца как набор полупрозрачных концентрических окружностей с наложенной текстурой +2баллакольца как набор полупрозрачных текстурированных концентрических окружностей сэффектом исчезновения либо с наличием движущихся частиц +3 балла- Отражения сферического окружения (карты звездного неба):+1 за простой объект - сферу, куб+2 за чайник Рассела или любой другой сложный объект+3 за отражение всего окружения в сцене, а не только сферической карты звездного небаДополнительная функциональность в интерфейсеВозможность просмотра солнечной системы (галактики) в заданную дату, а такжевозможность ускорения/замедления времени +1Возможность выделения конкретного созвездия/галактики (подсветка, соединение линиями- возможно при покоординатной частичной реализации карты звездного неба) +1Настройка количества звезд +1Возможность настроить скорость анимации (множитель соотношения реального времени ивремени отображения) +16Возможность выбрать мышкой один из объектов (кам минимум, Солнце и 9 планет), послечего в углу экрана должно возникнуть информационное окно с краткой информацией обобъекте (после клика по окну оно должно исчезнуть) +14 Материалы1) Вам предлагается шаблон программы, рисующей текстурированный квадрат с помощью двухтреугольников.
По нажатию пробела окраска квадрата меняется градиентную.Шаблон обеспечивает организацию работы с шейдерами: вершинным и фрагментным.Прилагаются шейдеры версии 3.2.В шейдеры передаются необходимые матрицы, подключаемые в юниформ-переменные.Организован цикл анимации. Значения четырех пикселей текстуры жестко заданы впрограммном коде. При реализации задания необходимо организовать подгрузку текстуры изизображения, при этом допускается использование сторонних библиотек.2) Шаблон проверен в Windows и Linux на сборку.
На Mac OS шаблон не работает. Приразработке на QT изучите предоставляемые библиотекой примеры.Шейдеры написаны на основе библиотек freeglut и glew. Библиотеки доступны дляоперационных систем windows и linux. В линукс нужно установить необходимыепакеты freeglut и glew (dev версию).
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.















