Разработка приложения для визуализации трехмерных iен с использованием карт освещения и динамического освещения

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



depthTexture, smcoord, ivec2 (1, 1));

(res / 9.0);

}

// коэффициент затененияshadow = PCF (Vert.smcoord);

3.3Пересчет кадра 3d-приложения

В связи с тем, что мы используем не статический, а динамический источник света а также динамическую камеру наблюдения и объекты, необходимо заново рассчитывать основные параметры для камеры, источника света и объектов. Алгоритм пересчета всех этих параметров представлен на рисунке 3.5. Блок 1 и 2 отвечают за изменение параметров объектов и их реализация выглядит:

// зададим углы поворота куба с учетом времени((torusRotation[0] += 30.0f * (float) deltaTime) > 360.0f)[0] -= 360.0f;((torusRotation[1] += 15.0f * (float) deltaTime) > 360.0f)[1] -= 360.0f;

((torusRotation[2] += 7.0f * (float) deltaTime) > 360.0f)[2] -= 360.0f;

// зададим матрицу вращения куба[1].rotation = GLFromEuler (torusRotation[0],[1],[2]);[2].rotation =GLFromEuler (-torusRotation[0],[1],

torusRotation[2]);

Рисунок 3.5. Алгоритм пересчета кадра 3D-приложения

Блок 3 и 4 отвечают за изменение параметров наблюдателя и их реализация выглядит:

// вращаем камеру(mainCamera, (float) deltaTime * rotateDelta[1], (float) deltaTime * rotateDelta[0], 0.0f);

// двигаем камеру(mainCamera, (float) deltaTime * moveDelta[0]*5, 0.0f, (float) deltaTime * moveDelta[1]*5);

[0] = rotateDelta[1] = 0;[0] = moveDelta[1] = 0;

Блок 5 и 6 отвечают за изменение источника света и их реализация выглядит:

// движение источника света= false;(directionalLight.position[0] < -50)

(directionalLight.position[0] > 50)= true;

(decLightPos).position += vec3 (-deltaTime*2, 0, 0);.position += vec3 (deltaTime*2, 0, 0);

(lightCamera, directionalLight.position, vec3 (0,0,0), vec3_y);[4].position = directionalLight.position;[4].position += vec3 (2,2,2);

4.Тестирование реализации 3d приложения

Тестирование реализации 3D приложения будем производить на разных настройках карт теней. Изменять будем проекционную матрицу. Как известно из предыдущих разделов проекционная матрица задается функцией OrthoProjection (float left, float right, float bottom, float top, float zNear, float zFar).

Будем пропорционально увеличивать left, right, bottom, top для тестов 1-3, а для тестов 4 и 5 ZNear соотвествестно.

Тест 1

Значение параметров

left = -10.0f, right = 10.0f,

bottom = -10.0f, top = 10.0f,= 0.0f, zFar = 100.0

Рисунок 4.1 Результат теста 1

Тест 2

Значение параметров

left = -50.0f, right = 50.0f,

bottom = -50.0f, top = 50.0f,

zNear = 0.0f, zFar = 100.0

Рисунок 4.2 Результат теста 2

Тест 3

Значение параметров

left = -100.0f, right = 100.0f,

bottom = -100.0f, top = 100.0f,

zNear = 0.0f, zFar = 100.0

Рисунок 4.3 Результат теста 3

Тест 4

Значение параметров

left = -10.0f, right = 10.0f,

bottom = -10.0f, top = 10.0f,

zNear = 20.0f, zFar = 100.0

Результат теста 4 при параметрах -10.0f, 10.0f, -10.0f, 10.0f, 20.0f, 100.0f

Рисунок 4.4 Результат теста 4

Тест 5

Значение параметров

left = -10.0f, right = 10.0f,

bottom = -10.0f, top = 10.0f,

zNear = 60.0f, zFar = 100.0

Результат теста 5 при параметрах -10.0f, 10.0f, -10.0f, 10.0f, 60.0f, 100.0f

Рисунок 4.5 Результат теста 5

Исходя из тестов можно сделать следующие выводы:

1.При увеличении параметры left, right, bottom, top происходит уменьше-ние доли занимаемой iены в карте теней.

2.Уменьшение доли занимаемой iены в карте теней ведет к ухудшению качества тени

.Увеличение параметра zNear при неизменном zFar и left, right, bottom, top ведет к увеличению четкости карты теней и следовательно качеству теней в итоговом изображении.

5.Технико-экономическое обоснование

5.1Концепция экономического обоснования

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

Для технико-экономического обоснования НИР выделены сле-дующие этапы:

определение трудоемкости проводимых в ходе дипломного проектирования работ и составление календарного плана выпол-нения работ;

составление сметы затрат на проведение работ;

оценка эффективности дипломной работы.

В конце технико-экономического обоснования будут сделаны выводы о научно-технических результатах данной дипломной Ра-боты.

5.2Трудоемкость и календарный план выполнения работы

Все необходимые действия по выполнению данной НИР производились в составе научного сотрудника и инженера-программиста на кафедре МОЭВМ.

5.3Смета затрат на проведение работ

Калькуляция себестоимости разработки осуществляется по следующим статьям:

материалы;

расходы на оплату труда;

отчисления на социальные нужды;

накладныерасходы;

прочие прямые расходы.

Затраты на израсходованные материалы приведены в таблице 5.3.1.

Таблица 5.3.1 Затраты на материалы

МатериалКоличество, шт.Стоимость единицы, руб.Стоимость, руб.Ч/б картридж для принтера118001800Бумага размера A4 для принтера, пачка1150150Комплектканцелярских принадлежностей1-60USBflash-накопительемкостью на 2 Гб11299Транспортные расходы7-10% от общих затрат на материалы-23