task4-v3 (794727)
Текст из файла
Авторы: Владимир Фролов, Владимир Афанасьев.Задание 4Симуляция и визуализация тканейРисунок 1. Пример выполненного задания.1 АННОТАЦИЯЦель задания: Изучение основ OpenGL3/4 в процессе выполнения задания с полезной нагрузкой. Основы метода конечных элементов (МКЭ) (база). Графический конвейер, геометрические преобразования (база). Шейдерные программы (база). VBO/VAO. Объекты памяти OpenGL (база). Отладочная визуализация. Точки и линии (база). Расчёт нормалей поверхности. Локальные модели освещения (база). Модели освещения тканей (дополнительно). Имитация микрорельефа (дополнительно). Тени. Карты теней (дополнительно). Редеринг в текстуру (дополнительно). Научная визуализация (дополнительно).Предполагаемый объём кода задания: 1000 строк. Инициализация сетки 200 строк.100 строк. Симуляция:50 строк. Расчёт нормалей:500-1000 строк. Работа с OpenGL:Пример выполненного задания: https://youtu.be/q406SHgnJww1ПРАВИЛА ОФОРМЛЕНИЯ РАБОТЫ2Внимание! При невыполнении указанных требований работа может непроверяться!Архив с заданием в формате zip должен быть залит в систему курса.
В случаепревышения максимального размера архива в системе нужно разбить его на частисредствами архиватора. Заливать архив на файлообменники можно только в случаеневозможности залить его в систему, по предварительному согласованию спроверяющими.Содержимое архива:1. Папка src (исходный код)a. Файлы исходного кодаb. Файлы проектаc. НЕ нужно включать в архив папку ipch, базы данных программы .ncb, .sdf.d. Проект должен собираться из папки src2. Папка bin (исполняемый код - конфигурация Release, 32 бит).
Обязательнопроверьте, что программа запускается из папки bin. Желательно, на другоймашине.a. Исполняемый файлb. Библиотеки, необходимые для запускаc. Данные (модели, текстуры, файл настроек). Дублировать данные в папкеsrc не нужно.3. Файл Readme.txta. Фамилия, имя, отчество, группаb. Операционная системаc. Оборудование (процессор, видеокарта, объём памяти)d.
Управление программойe. Реализованные пункты из бонусной части3 БАЗАНеобходимо реализовать симуляцию и рендеринг полотна ткани.3.1 ОБЯЗАТЕЛЬНЫЕ ТРЕБОВАНИЯ К СИМУЛЯЦИИ:Движения ткани должны быть реалистичными.Движения должны затухать со временем.Должна быть возможность время от времени возобновлять движения.Либо автоматически при помощи ветра (как в примере) либо по кнопке 'p' (Push) добавлятьвозмущения.Скорость симуляции не должна зависеть от производительности машины. Можно включитьвертикальную синхронизацию, чтобы гарантировать ограничение 60 кадров в секунду.
Намашине проверяющего вертикальная синхронизация будет включена23.2 ОБЯЗАТЕЛЬНЫЕ ТРЕБОВАНИЯ К ВИЗУАЛИЗАЦИИВ сцене должна быть текстурированная плоскость, имитирующая пол. Аналогично тому каксделано в примере. Либо какая-то более сложная имитация земли.В сцене должен присутствовать хотя бы 1 источник освещения: точечный или прожектор(spot).
Просто 'Ambient' освещение не считается источником света.Один и тот же источник (или их совокупность) должен освещать и ткань, и плоскость.Ткань должна иметь текстуру отличную от текстуры плоскости.По кнопке '1' должен включаться каркасный режим визуализации полотна. Каждая линиядолжна отображать соединение между вершинами пружинкой.По кнопке '2' должна включаться визуализация нормалей в мировом пространстве цветом(база). Либо стрелочками (дополнительно).По кнопкам '3'-'6' должны включаться различные реалистичные варианты визуализацииматериала ткани. Для базы достаточно реализовать только 1 варинт (для базы достаточноЛабмерта с текстурой), по кнопке '3'.4 КРИТЕРИИ ОЦЕНКИ И ДОПОЛНИТЕЛЬНАЯ ЧАСТЬМаксимальная оценка за задание – 15 баллов.1.
База. Симуляция полотна ткани и каркасная визуализация. Визуализация с текстурами всоответствии с требованиями (8 баллов).2. Дополнительно (7 балов максимум, в каждом пункте указано максимальное число балловза качественную реализацию этого пункта):Реалистичная симуляцияoooooОригинальная форма ткани или моделируемый объект (+1). (флаг, одежда,шатёр/палатка, любые другие тканевые объекты)Учёт столкновений полотна ткани с простыми объектами (сфера, бокс) (+2).
Объектынеобходимо визуализировать.Анимация одежды на танцующем манекене (столкновения при помощи множествабоксов и сфер) (+6). Не складывается с двумя предыдущими пунктами.Реализация падения со сползанием такни по сфере или боксу (+2). По кнопке 'd' (Drop).Синхронизация танцующего манекена с музыкой (+2). Пример синхронизациинаходится в примере 'advanced/gs_sound'. https://github.com/FROL256/msu-opengl4-sdkСимуляция на GPU (OpenGL или OpenCL) (+6) Должна быть реализована возможностьувеличения и уменьшения числа симулируемых и отрисовываемых объектов по кнопкам '+' и'-'. Должен быть реализован вывод времени симуляции куда-нибудь. Можно в название окна.3Кнопка '9' должна включать/отключать параллельную реализацию.
Скорость симуляции недолжна зависеть от числа объектов! Даже при снижении FPS ниже 60 кадров в секунду. +4 балла за расчёт через OpenGL Compute Shaders или OpenCL +6 баллов за расчёт через вершинный шейдер и transform fedeedback.В этом и только в этом случае нормали могут быть не сглажены! Вам необходиморассчитать их в геометрическом шейдере.Симуляция на CPU параллельно (+2). Должна быть реализована возможность увеличения иуменьшения числа симулируемых и отрисовываемых объектов по кнопкам '+' и '-'.
Долженбыть реализован вывод времени симуляции куда-нибудь. Можно в название окна. Кнопка '9'должна включать/отключать параллельную реализацию. Скорость симуляции не должназависеть от числа объектов! Даже при снижении FPS ниже 60 кадров в секунду.ТениooooТени на плоскости (+1)Тени на плоскости и других объектах (+3) (простой Shadow Map)Простой Shadow Map + PCF (+4)Более сложные и реалистичные методы теней (+6)Внимание! Требования к реализации карт теней: Если реализованы тени при помощи карт теней, по кнопке '7' должна включатсявизуализация карты глубины, которая строится при рендере сцены из источника.Визуализация карты глубины должна позволять различать в ней отдельные объекты(карта может быть не однотонной, либо можно не рисовать плоскость в карту глубины).При реализации карт теней необходимо добавить хотя бы 1 дополнительный объект всцену, чтобы тень падала на этот объект.
Аналогично тому как сделано в примере. Либоделать не плоскую землю.Реалистичные модели материала ткани.o Локальные модели (+2) в зависимости от реалистичности.Например, Oren–Nayar [3].o Имитация BSSRDF (+3) в зависимости от реалистичности. Например texture spacediffusion [4].o Имитация золотых или серебрянных прожилок при помощи specular текстур (+1).(Подсказка: Для более реалистичной имитации бликов можно добавлять в сценуточечные источники, действующие только на specular).Имитация микрорельефа (normal mapping) (+3).o Обязателен корректный расчёт tangent space.4Прозрачная ткань (+1) (как доп. реалистичный режим по кнопке '4' или '5')Цветная тень от прозрачной ткани (+1) (как доп.
реалистичный режим по кнопке '4' или '5')Реалистичное окружениеo Sky box с небом (+1)o Визуализация объекта, к которому крепится ткань (+1).o Добавление других произвольных мешей в сцену (+2)Научная визуализацияo Визуализация сил, действующих на вершины сетки в виде стрелочек (+3) взависимости от наглядности и эстетичности.oВизуализация числовых значений величин (сил, скоростей, позиций) по кнопкам ('8','9', '0') в точке куда указывает мышка. (+3)Подсказка 1: Cамый простой способ - использовать рендеринг в отдельные текстурысил, скоростей и позиций. См. пример 'basic/sample_10_mrt' [0].Затем можно выводить числовые значения в виде 3 чисел в названия окна.Задание из примера получило бы 10 баллов за базу, +1 балл за имитацию вставок при помощиотдельной текстуры, и +4 балла за карты теней с использованием PCF.
Итого 15 баллов.5 ТЕОРЕТИЧЕСКИЕ ОСНОВЫ5.1 ФИЗИЧЕСКАЯ МОДЕЛЬРисунок 3. Простейшая модель полотна ткани5Модель ткани - это набор вершин, имеющих массу и соединённых пружинами. Пружинамисоединяются смежные вершины (красные и зелёные) и "через одну" (синие). Разным типампружин можно задать разную жёсткость.Обратите внимание, что в модели для придания ткани упруости на изгиб присутствуют не толькосоединения смежных вершин, но и соединения “через 1” (синие пружинки). В тестовойреализации задания мы использовали модель с бОльшим количеством пружин, где каждаявершина соединяется со всеми смежными и всеми вершинами "через один" (Рисунок 4). Алгоритмпостроения такой модели дан ниже (алгоритм 1).Рисунок 4. Соединения смежных вершин пружинами и "через одну".
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.















