task4-v3 (Task 4)
Описание файла
Файл "task4-v3" внутри архива находится в папке "Task 4". PDF-файл из архива "Task 4", который расположен в категории "". Всё это находится в предмете "инженерная графика" из 5 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Авторы: Владимир Фролов, Владимир Афанасьев.Задание 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. Соединения смежных вершин пружинами и "через одну".