Главная » Просмотр файлов » Задание 4 по машграфу 2013

Задание 4 по машграфу 2013 (1124442)

Файл №1124442 Задание 4 по машграфу 2013 (Task 4)Задание 4 по машграфу 2013 (1124442)2019-05-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

Визуализация кристаллаАвторы задания: Владимир Афанасьев, Владимир Фролов, Александра АфанасьеваЦель задания ­ реализовать визуализацию полигональных объектов с помощьютрассировки лучей.Базовая часть (15 баллов)В базовой части требуется реализовать алгоритм трассировки лучей с учетом корректныхпреломлений и отражений.ТребованияРасчёт изображения● Камера с перспективной точечной проекцией● Цветное RGB изображение● Использование законов отражения и преломления света● Использование формул Френеля● Использование локальной модели освещения (Фонга)Сцена● Кристалл (преломляющий и отражающий объект), заданный в виде полигональноймодели● Плоское зеркало● Сферическое окружение, либо окружение в виде комнаты “cornell box”, либо болеесложные варианты помещений.● Кристалл должен стоять на участке плоскости.Взаимодействие с пользователем●В текстовом файле настроек должны задаваться следующие параметры:○ Координаты камеры (CameraPos(x,y,z))○ Направление взгляда камеры (ViewDir(x,y,z))○ Углы обзора камеры по горизонтали и вертикали (ViewAngle(x,y))○ Разрешение изображения (Resolution(x, y))○ Максимальное число отражений/преломлений (MaxDepth) ­ глубинатрассировки, или минимальная энергия луча (MinEnergy)○ Параметры, задающие поведение алгоритмов из бонусной части(показатель поглощения, количество лучей на пиксель при антиалиасинге,цвет кристалла и т.п.)Формат файла произвольный, должен быть описан в Readme.●Минимум 3 различных сценария запуска, реализованных через bat файлы.Сценарии должны отличаться параметрами рендеринга, использованиемразличных алгоритмов, положением камеры, демонстрацией различныхдополнительных элементов задания. Изображения, полученные прииспользовании каждого сценария, нужно включить в архив в папку img.● Результирующая картинка должна сохраняться в файл (можно использовать любойиз общепринятых форматов) и может выводиться на экран. Время работыпрограммы при заданных параметрах должно быть указано в readme и не должнопревышать 2 минут (хотя бы для одного набора параметров, указанного в readme).Правила оформления работыВнимание! При невыполнении указанных требований работа может непроверяться!Архив с заданием должен быть залит в систему курса. В случае превышениямаксимального размера архива в системе нужно разбить его на части средствамиархиватора. Заливать архив на файлообменники можно только в случае невозможностизалить его в систему, по предварительному согласованию с проверяющими.Формат архива:1.

Папка src (исходный код)○○○Файлы исходного кодаФайлы проектаНЕ нужно включать в архив файлы со следующими расширениями (пройтипоиском и удалить): .sdf, .ncb, папки Debug, Release, ipch. Это позволяетсущественно экономить место.2. Папка bin (исполняемый код ­ конфигурация Release, 32 бит). Обязательнопроверьте, что программа запускается из папки bin. Желательно, на другоймашине.○ Исполняемый файл○ Библиотеки, необходимые для запуска○ Данные (модели, текстуры, файл настроек). Дублировать данные в папкеsrc не нужно.3.

Папка img (визуализированные изображения сцены + файлы настроек дляних)4. Файл Readme.txt○○○○Фамилия, имя, отчество, группаОперационная системаОборудование (процессор, видеокарта, объём памяти)Управление программой (формат задания настроек в файле настроек,описание интерфейса)○ Время работы программы для каждого варианта настроек○ Реализованные пункты из бонусной частиДополнительная часть (максимум 5 баллов)Алгоритм, эффектСпособ демонстрацииБаллы (от 0 до X)BVH­дерево илиkd­ деревоСложный объект сбольшим числомполигонов+5Трассировка путейНесколько диффузныхобъектов в сцене,светящиеся объекты всцене, взаимноевторичное освещение икаустики.Максимум +5:● расчет вторичного диффузногоосвещения +2● расчет каустиков +2● прогрессивный расчет +1● теневые лучи +2● многократная выборка позначимости +3●MLT и другие более сложныеметоды +5Фотонные картыКаустики на плоскости,либо на объектахAmbient OcclusionМягкое затенение+2объектов сцены другимиобъектами приосвещении панорамойТекстурированиеМинимум однатекстурированнаямодельМаксимум +3:● простая выборка текстур(билинейная интерполяция) +1● использование mipmap уровней стрилинейной интерполяцией +1● Более сложные техники выборкитекстур (бикубическая илианизотропная) +1Моделированиеглубины резкостиРендеринг как минимумдля 3­х положенийкамеры+2Эффект поглощения Показатель поглощениявнутри кристалладолжен задаваться втекстовом файле+1Антиалиасинг+1ВозможностьМаксимум +5:● упрощенный сбор в текстуру наплоскости: с модификациейближайшего текстеля +1, собратной интерполяцией имодификацией 4 соседнихтекстелей +2.● финальный сбор сфиксированным радиусом наплоскости +3● финальный сбор сфиксированным радиусом припомощи ускоряющих структур напроизвольных объектах +4● финальный сбор k­ближайших(можно на плоскости) +4● прогрессивная схема расчета +1● более сложные методы сбора(например [1] ­ см в разделеЛитература), фильтрация и другиеметоды улучшения результата) +2посмотреть на результаткак с реализациейантиалиасинга, так и безнееПростыенеполигональныеобъектыНапример, пузыривнутри кристалла+1ПараллелизмУскорение расчёта привключениипараллелизма.Количество потоковдолжно задаваться вфайле настроек.+1Мягкие и/илицветные тени откристаллаПротяжённый/площадной Максимум +2:источник света, цветной ● мягкие тени от протяженныхкристаллисточников +1● цветные тени +1МатериалыМоделиМодель кристалла содержится в шаблоне к заданию.Ресурсы по изучению трассировки лучей1) ray­tracing.ru2) raytracegroundup.comЛитература[1] Lars Schjøth, Jeppe Revall Frisvad, Kenny Erleben, and Jon Sporring. 2007. Photondifferentials. In Proceedings of the 5th international conference on Computer graphics andinteractive techniques in Australia and Southeast Asia (GRAPHITE '07). ACM, New York, NY,USA, 179­186. DOI=10.1145/1321261.1321293 http://doi.acm.org/10.1145/1321261.1321293Подсказки к решению: базаМодель камерыПредлагается реализовать модель перспективной камеры с точечной проекцией.Камера не должна быть наклонена на бок, т.е. ось z (если принимать её за вертикальноенаправление), ViewDir и Up должны лежать в одной плоскости. Векторы ViewDir, Up,Right образуют ортонормированный базис и задают модельно­видовую матрицу.Обратная трассировка лучей (краткое описание алгоритма)1.

Для каждого пиксела изображения вычисляется луч. Луч задается точкойиспускания (положением камеры) и направлением. Для генерации направлениялуча можно использовать следующие функции.Простая генерация направления луча, проходящего через центр пиксела// Подготовим 2 вектора, длина которых равна половине плоскости проекцииfloat3 Right_HalfPlane = Right * tan(ViewAngle.x/2);float3 Up_HalfPlane = Up * tan(ViewAngle.y/2);// x, y ­ координаты пиксела, w, h ­ разрешение изображенияfloat3 EyeRayDir(float x, float y, float w, float h){ float xNorm = (x+0.5f)/w * 2.0f ­ 1.0f; float yNorm = (y+0.5f)/h * 2.0f ­ 1.0f; float3 ray_dir = ViewDir + Right_HalfPlane*xNorm + Up_HalfPlane*yNorm; return normalize(ray_dir);}Обратите внимание, что соотношение разрешения картинки по вертикали игоризонтали h / w должно быть равно соотношению сторон плоскости проекцииtan(ViewAngle.y/2) / tan(ViewAngle.x/2). Иначе изображение будет растянутое.Генерация направления луча с учетом модельно­видовой матрицы иматрицы проекцииДанная функция может быть полезна, если необходимо получать геометрическисовпадающие изображения при помощи OpenGL и трассировки лучей.// x, y ­ координаты пиксела, w, h ­ разрешение изображенияfloat3 EyeRayDir2(float x, float y, float w, float h){ float4 pos( 2.0f * (x + 0.5f) / w ­ 1.0f,­2.0f * (y + 0.5f) / h + 1.0f, 0.0f, 1.0f );­1 pos = g_mViewProjInv*pos; // (mView*mProj) *pos pos /= pos.w; pos.y *= (­1.0f); return normalize(pos.xyz);}2.

Вычисляется пересечение луча с объектом сцены. В случае, если луч непересекается ни с одним объектом, вычисляется его пересечение со сферическимокружением. При этом нужно посчитать сферические координаты направленияэтого луча и сделать выборку из сферической текстуры по соответствующимкоординатам, а не делать расчёт пересечения луча со сферой конечного радиуса.3. Когда луч пересекается с поверхностью одного из объектов, выполняютсяследующие действия:●Вычисление освещенности точки по локальной модели (Ламберта, Фонга).Идеальные зеркала и стекла при этом освещать не нужно, локальные моделиосвещения предназначены для учета рассеивающих свойств поверхности.Освещенность от каждого отдельного источника складывается.●Трассировка отраженных и преломленных лучей (выполняется рекурсивно). Приэтом:●Если луч попал на зеркальную поверхность, вычисляется отраженный луч всоответствии с законом отражения света.●Если луч попал на диффузную поверхность, в классической трассировкелучей дальнейшие переотражения не учитываются, и рекурсияостанавливается. В стохастической трассировке лучей и трассировкепутей используется отраженный случайный луч с равномерным иликосинусоидальным распределением.●Если луч попал на преломляющую поверхность, определяется направлениеидеально отраженного и преломленного лучей (согласно закону Снелла). Наоснове направления входящего луча и направлений отраженного ипреломленного луча, используя формулы Френеля, определяютсякоэффициенты отражения R и пропускания T. То есть определяется, какаячасть энергии приносится в эту точку отражённым лучом, а какая ­преломлённым.4. Для новых лучей (отраженного и преломленного) рекурсивно запускаем шаги 2 ­ 3.5. После рекурсивной трассировки этих лучей нужно умножить их цвет (полученный изсферического окружения, а возможно и из цвета кристалла, если кристалл цветной)соответственно на коэффициенты R и T и получить результирующий цвет текущего луча.После заданного числа отражений и преломлений (глубины трассировки) либо придостижении минимальной учитываемой интенсивности рекурсию нужно остановить.Вычисление пересеченийДля вычисления пересечения луча с произвольной полигональной моделью можно длякаждого треугольника использовать алгоритм пересечения луча с треугольником.Формулы для расчета пересечения луча со сферой предлагается вывестисамостоятельно.Формулы ФренеляПри отражении и преломлении интенсивность лучей распределяется по закону Френеля. Вбазовой части требуется корректный расчет интенсивности по формулам Френеля безучёта поляризации. Направление преломленного луча считается согласно законупреломления света. Коэффициенты преломления реальных материалов есть здесь.Код для расчета коэффициента отражения R от поверхности диэлектрика поформулам Френеля при идеальном отражении/преломлении:ci ­ косинус угла падения (угла между падающим лучом и нормалью)n ­ относительный коэффициент преломления границы раздела средfloat FresnelReflectance(float& ci, float& n){ float ci2 = ci * ci; float si2 = 1.0f ­ ci2; float si4 = si2 * si2; float a = ci2 + n * n ­ 1.0f; float sqa = 2 * sqrtf(a) * ci; float b = ci2 + a; float c = ci2 * a + si4; float d = sqa * si2; return (b ­ sqa) / (b + sqa) * (1.0f + (c ­ d) / (c + d)) * 0.5f;}Коэффициент пропускания поверхности T считается исходя из закона сохраненияэнергии: R + T = 1.Случай полного внутреннего отражения света, пришедшего изнутри среды, нужнообрабатывать отдельно: R = 1, T = 0.Подсказки к решению (дополнительная часть задания)Трассировка путейЗначительное отличие трассировки путей от трассировки лучей состоит в том, что притрассировке путей луч один на всем своем пути, а в трассировке лучей луч привзаимодействии с объектом расщепляется на 2 или более лучей.

Характеристики

Тип файла
PDF-файл
Размер
1,61 Mb
Материал
Тип материала
Высшее учебное заведение

Тип файла PDF

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

Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.

Список файлов лабораторной работы

Task 4
решение
RayTracer
bin
data
CrystalModel
Crystal.3DS
Crystal.mtl
Crystal.obj
RayTracer.pdb
RayTracerWithOpenMP.exe
RayTracerWithoutOpenMP.exe
scene_settings.xml
img
src
data
CrystalModel
glm
core
gtc
gtx
virtrev
l3ds
l3ds.cpp
tinyxml2
contrib
tinyxml2-doxygen
search
Camera.h
Main.cpp
Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7031
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее