Реализация генерации и отображения ландшафта в трехмерной плоскости

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    845,25 Кб
  • Опубликовано:
    2016-07-17
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Реализация генерации и отображения ландшафта в трехмерной плоскости

РЕФЕРАТ

ЛАНДШАФТ, АЛГОРИТМ, DIAMOND-SQUARE, ШУМ, ПЕРЛИН, КАМЕРА, ОСВЕЩЕНИЕ, ТЕКСТУРА, ШЕЙДЕР, DIRECTX, C++

В данной работе представлена реализация генерации и отображения ландшафта в трехмерной плоскости, с помощью средств языка C++, C# и DirectX, в среде Visual Studio 2015.

ВВЕДЕНИЕ


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

В некоторых задачах решают проблему построения реалистичных ландшафтов. Особенно это касается игр жанров RPG и MMORPG. Разработка RPG занимает более 2 лет, а MMORPG более 5 лет. Более того стоимость разработки подобных проектов очень высока. Один из способов удешевить стоимость изготовления это автоматизировать некоторые процессы.

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

Ландшафты можно создавать вручную, но этот процесс занимает достаточное продолжительное время. Можно автоматизировать процесс создания грубой модели ландшафта с последующей обработкой.

1. Анализ задачи

 

.1 Описание предметной области


Существует различные определения ландшафта, но одно наиболее точно отражает его.

Ландшафт - достаточно большой, обозримый простым глазом участок поверхности, отличающийся от соседних участков характерными индивидуальными чертами.

Под понятием реалистичный ландшафт подразумевается, то, что ландшафт, полученный каким-то не естественным способом, будет выглядеть похоже по ряду признаков на естественный ландшафт. К таким признакам относят:

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

-       эрозия влияет на рельеф с точки зрения воздействия воды на природный материал;

-       однородный рельеф;

-       единый геологический фундамент;

-       иметь уникальную структуру.

Другими словами полученная территория должна представлять собой не делимое по внешним признакам территорию с особыми факторами развития.

В настоящее время компьютерная графика используется все чаще. Она используется в видео играх и различного рода рендер такого как рекламные ролики, фильмы и мультфильмы.

Процесс создание 3D-моделей занимает достаточно продолжительное время. Чтобы сократить время на создание ландшафтов можно автоматизировать этот процесс.

На рынке представлены готовые решения, такие как Vue Espri и Terragen.Esprit это профессиональная программа для моделирования окружающей среды, ориентированный на 3D-художников. Есть возможность экспортировать в различные 3D-форматы, такие как 3ds, lwo, obj, dfx и как рендар в форматов tiff, tga, pict, bmp, gif, jpeg, png. Распространяется по цене 199 долларов США в месяц.это программа для ландшафтного моделирование и анимации. Имеет следующие достоинства:

-    импорт карты высот;

-       малый объем дистрибутива;

-       моделирование неба и облаков.

Так же он имеет ряд недостатков:

-    не предусмотрена возможность повтора или отмены действий;

-       невозможно создать растительность;

-       невозможность импорта 3D-моделей.

Распространяется по цене 349 долларов США за базовый набор и за 699 за полную комплектацию.

 

1.2 Постановка задачи


Создание комплекса для генерации ландшафтов подразумевает решение следующих задач:

-    генерация ландшафта с учетом заданных высот, размера карт, количество гор и крутизны гор;

-       предоставление библиотеки для внедрения в приложение;

-       программа для взаимодействия с библиотекой для получения 3D-модели или карты высот.

-       визуализатор для демонстрации результата;

-       экспорт 3D-модели в формате obj;

-       экспорт карты высот в формате bmp.

1.3 Используемые алгоритмы

 

.3.1 Алгоритм diamond-square

Алгоритм diamond-square это алгоритм для генерации фрактальных ландшафтов. Он основан на одномерном алгоритме midpoint displacemet.

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

Суть его заключается в следующем. Изначально мы любым образом задаем высоту на концах отрезка и разбиваем его точкой посередине на два под-отрезка. Эту точку мы смещаем на случайную величину по формуле:

= (hL + hR) / 2 + random(- R * l, R * l)

где hL - левая граница отрезка;R - правая граница отрезка;- длина отрезка;- коэффициент «шероховатости».

Далее, повторяем разбиение и смещение для каждого из полученных подотрезков. И так далее - пока отрезки не станут длиной в одну условную единицу. Пример работы алгоритма можно увидеть в приложении А на рисунке А.1.

Существует два способа обобщения данного алгоритма. Здесь и далее считается, что карта квадратная и ее размер ее стороны является равным значение степени двойки.

Первый алгоритм называется midpoint displacement. Присваиваем случайные значения высот на всех четырех угла карты и разбиваем ее на четыре равные части. Центральная точка получается усреднением высот с 4 угловых точек и серединная точка на стороне усреднением пары точек лежащих на концах этой стороны. Так же необходимо добавить случайного отклонение путем сдвига точки вверх или вниз пропорционально стороне квадрата. Повторяем данный шаг для под квадратов [1].

Начнем с присвоения случайных высот четырем углам всей карты целиком и разобьем её на четыре равных квадрата. В каждом из них известно значение в одном из углов. Точка в центре получается усреднением высот всех 4 угловых точек, а каждая серединная точка на стороне большого квадрата - усреднением пары точек, лежащих на концах соответствующей стороны. Нужно добавить немного шума - сдвинуть случайным образом центральную точку вверх или вниз (в пределах, пропорциональных стороне квадрата) - и можно повторять рекурсивно наши действия для полученных подквадратов.

Данный алгоритм имеет существенный недостаток, в результате наблюдается линейная зависимость. Второй способ уже носит имя diamond-square. Работа данного алгоритма состоит из двух шагов. Первым шагом square определяется центральная точка путем усреднением крайних точек с добавлением случайного отклонения «displacement». Вторым шагом diamond определяется высота точек лежащих на серединах сторон квадрата. Усредняются не две точки, как в алгоритме midpoint displacement, но и точки с «слева» и с «право», то есть еще две точки, полученные на шаге square. Эти точки должны быть посчитанными на предыдущем шаге, поэтому расчет необходимо вести «слоями», для всех квадратов выполняется шаг square и для всех ромбов шаг diamond, затем идет переход к меньшим квадратам. Пример работы представлен в приложении А на рисунке А.3.

Данный алгоритм имеет следующие недостатки. Для расчетов на шаге diamond используются точки, которые находятся за пределами текущей области или даже возможно за пределами карты.

Следующий недостаток это при детальном просмотре карты видны «шероховатости», множество мелких островков или просто сплошной шум.

алгоритм трехуровневый ландшафт библиотека



1.3.2 Шум Перлина

Шум Перлина - это градиентный шум, состоящий из набора псевдослучайных единичных векторов (направлениях градиента), расположенных в определенных точках пространства и интерполированных функцией сглаживания между этими точками.

Чтобы создать функцию шума Перлина необходимы две функции: функция шума и функция интерполяции. Функция шума это специальная функция, которая принимает целое число в качестве параметра и возвращает случайное число. Важно чтобы при передаче функции два раза и более одного и того же числа, она возвращала всегда одно и тоже число. В приложении Б на рисунке Б.1 показан пример функции шума.

По плавной интерполяции между значениями, мы можем определить непрерывную функцию, которая принимает не целое в качестве параметра.

Для дальнейшего описание алгоритма необходимо ввести некоторые определения.

Синусоидальная волна, представлена в приложении Б на рисунке Б.3. Длина волны (wavelength) - это расстояние от одной вершины к другой. Амплитуда (amplitude) - это высота волны. Частота (frequency) определяется как 1/(длина волны).

Шумовая волна. В приложении Б на рисунке Б.4 представлен график функции шума, красные точки указывают на случайные значения, определенные по измерению функции. В этом случае амплитуда - это разница между минимальным и максимальным значениями, которые у функции могут быть. Длина волны - это есть расстояние от одного красного пятна к другому. Опять же частота определяется как 1/(длина волны).

Создание функции шума Перлина. Если взять много таких гладких функций, с различной частотой и амплитудой, вы можете добавить их все вместе, чтобы создать хорошо зашумленную функцию. Пример можно увидеть в приложении Б на рисунке Б.5.

Стойкость. Возникает вопрос, какая именно амплитуда и частота использована каждой из них. В одномерном примере использованы двойная частота и половина амплитуды для каждой последующей добавляемой функции шума. Это довольно распространенное явление. Таким образом, фактически, многие не рассматриваю возможность использования всего остального. Тем не менее, можно создать шум функции Перлина с различными характеристиками и с использованием других частот и амплитуд на каждом шагу. Например, чтобы создать гладкие холмы, можно использовать функции шума Перлина с большими амплитудами на низких частотах, и очень малой амплитудой на высоких частотах. Чтобы объяснить это проще, и, чтобы избежать повторения слов «амплитуда» и «частота» все время, используется единственное число для определения каждой амплитуды и каждой частоты. Эта величина называется настойчивостью (Persistence). Существует некоторая неопределенность относительно его точного смысла.

Определение настойчивости заключается в следующем: частота равняется 2 в степени i, амплитуда равно стойкость в степени i, где i - это i - тая добавочная функция шума.

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

Если вы используете функции шума Перлина для рендеринга изображения на экран, наступит момент, когда октава может иметь слишком высокую частоту, чтобы быть отображаемой. Там просто может не быть достаточно пикселей на экране, чтобы воспроизводить все мелкие детали на очень высокой функции шума. Некоторые реализации шума Перлина автоматически складываются из шумовых функций, до тех пор, пока пределы разрешения экрана (или другой среды) не будут достигнуты.
Кроме того, разумно остановиться при добавлении шумовой функции, когда их амплитуда становится слишком мала, чтобы оказывать влияние на результат. Когда именно это произойдет, зависит от уровня стойкости, общей амплитуды функции Перлина и бита разрешения экрана [2].

Создание шумовой функции. По существу шумовая функция это генератор случайных чисел. Однако, в отличие от других генераторов случайных чисел, которые дают вам различные случайные числа каждый раз, когда вы их вызываете, эти шумовые функции выдают случайное число рассчитываемое из одного или нескольких параметров. То есть каждый раз, когда вы вводите то же число, шумовая функция будет отвечать тем же числом, что и раньше для этого числа. Но вводя другое число, она и вернет другое число.

 

1.3.3 Медианная фильтрация

Медианная фильтрация - метод нелинейной обработки сигналов, разработанный Тьюки. Медианный фильтр используется для подавления шума на изображениях [3].

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

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

Концепция медианного фильтра легко обобщается для двух измерений. Применяя двумерное окно желаемой формы, чаще всего квадратное. Двумерный фильтр с окном NxN обеспечивает эффективное подавление шума на изображении, чем применение по очередного применения медианных фильтров с окнами Nx1 и 1xN, но приводит к более существенному подавлению сигнала.

 

1.4 Обоснование выбора средств реализации

 

.4.1 Обоснование выбора графического API

Все современные видеокарты имеют аппаратную поддержку возможностей DirectX и OpenGL последних версий, причем для совместимости с разным софтом (использующим ту или иную версию) производители встраивают в чипы реализацию сразу обеих библиотек. Различия их состоят в способе обработки графической информации, причем от версии к версии добавляются новые функции и возможности, позволяющие создавать более реалистичную графику. Чтобы выполнить обработку (весьма сложную) графической информации и снять с программистов заботу разработки собственного драйвера для доступа к функциям видеокарты и были созданы данные библиотеки.
DirectX и OpenGL это библиотеки графического API (Application Programming Interface), они обрабатывают графическую информацию и осуществляют прямой доступ к железу. Основу обоих API составляют несколько файлов, в которых содержатся как низкоуровневые функции, так и более сложные модули. Базовые функции реализованы аппаратно, в виде части GPU, более сложные функции представляют собой программные модули, построенные на базовых командах. Видеокарта не всегда аппаратно поддерживает нужные для работы приложения функции, и в этом случае библиотека использует программные модули, эмулирующие требующиеся возможности.это изначально это только графическая библиотека. Основой для этой API является ядро, которое «умеет» обрабатывать примитивные объекты (треугольники). Интерфейс содержит огромное количество процедур и функций, необходимых для создания высококачественных графических изображений. Чтобы аппаратно реализовать многие функции от видеокарты требуется наличие framebuffer'а (кадровый буфер), причем некоторые операции могут выполняться исключительно в нем [4].

Для работы с библиотекой программа сначала должна открыть окно во framebuffer (где будет происходить все операции), и потом уже контекст библиотеки связывается с этим окном. Такую операцию нужно проделать один раз, а далее все действия определяются через параметры обработки (рисование простых геометрических объектов: линии, точки, полигоны; рендеринг примитивов, включая их положение и цвет).

Плюсы:

-    разработчик может напрямую работать с железом при использовании соответствующего расширения;

-       переносимость между различными платформами (насколько это возможно);

-       простата использования.

Недостатки:

-    производит только рендер;

Чтобы начать работать с графической библиотекой, требуется открыть окно программы, но далее нужно также создать устройство отрисовки и тем самым произвести инициализацию Direct3D. После выполнения этого шага идет процесс просчета и отображения сцены [5].

Достоинства:

1)   позволяет не только производить рендер, но и работать со звуком, видео, устройствами ввода-вывода;

2)      хорошо продуманные библиотеки;

)        COM интерфейсы.

Недостатки:

1)   переносимость только в экосистеме Microsoft (windows, windows phone, xbox);

2)      поддержка новых функций видеокарты появляется только при выходе новой версии новой версии DirectX;

)        для выполнения действия надо написать больше кода.

Для моей программы был выбран DirectX, так как он позволяет эффективнее работать с 3D графикой на платформе Windows. Он цельную структуру библиотеки и позволяет мне использовать как для вывода на экран, так и взаимодействия с клавиатурой. Имеет строенную поддержку языка HLSL для написания шейдеров <https://ru.wikipedia.org/wiki/%D0%A8%D0%B5%D0%B9%D0%B4%D0%B5%D1%80>.

 

1.4.1 Обоснование выбора языка программирования

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

.NET представляет единую для всех поддерживаемых языков библиотеку классов.

И какое бы приложение мы не собирались писать на C# - текстовый редактор, чат или сложный веб-сайт - так или иначе мы задействуем библиотеку классов .NET.

2. Анализ данных


К входным данным относятся кнопки «w, s, d, a». Они служат для перемещения по ландшафту. Движением мыши управляется вращение камерой.

Пользователь в генераторе может вести размер карты, они должны быть положительные целыми числами. Минимальная и максимальная высоты карты, вещественные числа.

Параметр количество гор влияет на количество гор на карте. Параметр крутизны гор отвечает за то, насколько будут крытые горы.

К промежуточным данным относится структура HeightMapInfo, которая хранит данные о ландшафте, такие как размеры и координаты вершин.и PSBuffer это вершинный буфер и пиксельный буфер, которые служат для временного хранения данных при прорисовке ландшафта.

Матрицы rotation, translation хранят информацию о повороте и перемещении.

За свет отвечает структура Light, она содержит поля направление, диаметр луча, размытость.

Массив normalMap хранит нормализованные значения. С объявление описанных структур можно ознакомиться в приложении В.

К выходным данным относятся лог-файл, который создает визуализатор. В него записывает время выполнения программы, этап на котором произошла ошибка и время завершения выполнения программы. Программа генератор может возвращать карту высот ландшафта в формете bmp или модель в формате obj. Так же демонстрируется визуализированный ландшафт для демонстрации результата.

 


3. Программная реализация


Программный комплекс подразделяется на две части: библиотека для генерации ландшафта и программа для визуализации.

Библиотека для визуализации содержит классы, которые позволяют сгенерировать ландшафт. Генерации ландшафта происходит следующим образом. После получения данных о ландшафте, формируется матрица заданного размера. В углах матрицы задается случайным образом из заданного пользователем диапазона.

Применяется алгоритм фрактальный алгоритм для получения ландшафтов diamond-square. Сначала происходит шаг diamond на котором высчитываются среднее значение точек на краях квадрата плюс случайное отклонение, зависящее от площади фигуры. На следующем шаге square, рассчитываются точки на середине сторон квадрата, как среднее значение точек на краях ромба плюс случайное отклонение, зависящее от площади фигуры. После завершения шага square карта делится на четыре части и для каждой части снова проводятся шаги diamond и square. Данная операция проводится до тех пор, пока стороны квадратов больше одного. Данный алгоритм не подразумевает, что необходимые точки могут быть не подсчитаны или находится за пределами карты, поэтому в алгоритм были внесены изменения. Когда алгоритм обращается за не существующей точкой, то берется точка с противоположной стороны карты, то есть карта как бы сворачивается в тор.

Получившийся ландшафт уже похож на ландшафт, но имеет недостатки. На краях карты прослеживается слишком резкие перепады высот. Применяем релаксацию значений к краям. В итоге края получаются более естественными. Следующим применяем медианный фильтр с зерном равным 3 для убирания шероховатости поверхности.

Далее применяется нормализация значений. Так как при генерации не предполагается ограничения высоты, необходимо привести к необходимому диапазону высот. Сначала приводится значения высот приводиться в соответствии к диапазону от 0 до 1, затем приводится к указанному пользователю диапазону. Данный алгоритм представлен в приложении Г на рисунке Г.1.

Преобразование ландшафта происходит в форматы obj и bmp. Выгрузка в формат bmp происходит следующим образом, создается картинка размера карты, каждый пиксель соответствует ячейки матрицы. Цвет пикселя определяется, как нормирование значение высоты в соответствующей ячейки, умноженное на 255, так как 255 это предельное значение одной составляющей цвета. Это число присваивается всем составляющим цвета в модели RGBA: красный, зеленый, синий. Алфа-канал ставится в значении полностью не прозрачный то есть 255.

Выгрузка в формат obj происходит следующим образом. Вставляется строчка с информации о местоположении файла mtl. В этом файле содержится информация о 3D-модели, такая как цвет, текстуры, материалы, отражение и т.д. Объявляются списки вершин, точка определяется тройкой значений: номер строки, значение высоты, номер столбца. Следующей строкой записывается имя группы и имя материала. Далее указываются точки по три точки для поверхности, на этом заканчивается формирование файла.

Визуализатор содержит классы для визуализации ландшафта. При запуске визуализатора происходит создание классов Render, InputListener Framework. Далее происходит создание окна и передача дескриптора приложение в Render. Создается устройство DirectX. Создается Input Layout для управления навигацией. Создаются необходимые структуры для отображения на экране, такие как свет, skybox и т.д.

4. Модульная структура программы


Чтобы упростить приложение, повысить его надежность и эффективность применяется модульный подход. Разбиение на модули позволяет разбить задачу на более мелкие функциональные блоки, облегчая этим разработку. Применяя такой подход к разработке системы, можно легко расширять функциональные возможности отдельных модулей, не затрагивая при этом исходный код прочих. Для уменьшения сложности программного обеспечения, необходимо сделать модули небольшими и более независимые. Чтобы сделать модули более независимыми можно применить два метода:

усиление внутренних связей модулей;

ослабление взаимосвязи между модулями.

Данная структура используется для обеспечения функциональной независимости модулей программы, т.е. максимального разделения функции модулей. Благодаря этому повышается внутренняя связность модулей и ослабляется их внешнее сцепление.

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

Модульная структура библиотеки представлена в приложении Д на рисунке Д.1, визуализатора на рисунке Д.2.

5. Тестирование


Из всех этапов отладки программного обеспечения тестирование является самым трудоемким и дорогим. При создании типичного программного обеспечения на тестирование приходится около 40% общего времени и более 40% общей стоимости программного обеспечения.

Тестирование нужно, чтобы повысить надежность программного обеспечения, иначе в нем нет необходимости. Повысит надежность можно, устранив ошибки. Поэтому тестирование для доказательства корректности программы лишено смысла. Тестированием можно выявить ошибки, исправить их и, таким образом, повысить надежность программного обеспечения.

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

6. Документирование

 

.1 Техническое задание


Для многих проектов требуется использовать ландшафты. Данный программный комплекс позволяет генерировать трехмерный ландшафт и показывает его на экране монитора.

 

6.1.1 Назначение разработки

Программный комплекс предназначен для генерации и отображения ландшафтов.

 

6.1.2 Требования к программе или программному изделию

Для пользователя приложение должно предоставлять следующие возможности:

)   возможность введения входных данных, таких как минимальная и максимальная высота, размеры карты, крутизны гор;

2)      генерация ландшафтов;

)        сохранение ландшафта для использования его в сторонних программах;

)        демонстрация получившегося результата, путем вывода картинки на экран.

 

6.1.3 Требования к надежности

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

 

6.1.4 Требования к составу и параметрам технических средств

Для минимального функционирования программы требуется: персональный компьютер, 2 ГБ оперативной памяти, 50 Мб свободного места на жестком диске; клавиатура, мышь.

Для оптимальной работы приложения необходимо оперативной памяти не менее 3ГБ оперативной памяти.

6.1.5 Требования к информационной и программной совместимости

Программа должна функционировать под управлением ОС семейства Windows 7 и выше; DirectX 11; Visual c++2015; .Net Framework 4.5 и выше.

 

6.1.6 Требования к программной документации

Документация к программе должна содержать руководство пользователя, документации по работе с библиотекой.

 

6.2 Руководство пользователя


Запуск программы производится запуском файла shell.exe, после запуска вы увидите окно, представленное на рисунке 6.1.

Вызвать меню «файл», можно с помощью кнопки «очистить» сбросить данные до стандартных значений. С помощью кнопки «Сохранить как bmp» сохранить карту высот в формате bmp. С помощью кнопки «Сохранить как obj» можно сохранить ландшафт в формате obj. Нажав на кнопку «Просмотр» запуститься визуализатор, в котором можно будет увидеть в трехмерном виде, представлен на рисунке 6.2.

Рисунок 6.1 - Окно программы

Рисунок 6.2 - Окно программы

Вызвать меню «настройки», можно с помощью кнопки «настройки программы» настроить программу для визуализации. С помощью кнопки «настройки визуализации» можно настроить визуализатор.

Движение в визуализаторе осуществляется кнопками на клавиатуре w, a, s, d, которые соответствуют направлениям вперед, влево, вправо, назад.

Управление камерой осуществляется мышкой.

 

6.3 Документация по работе с библиотекой


Для работой с библиотекой необходимо подключить файл LandscapeGenerator.dll к вашему проекту. В проекте необходимо объявить экземпляр класса LandscapeGenerator. Класс содержит следующие методы для изменения параметров ландшафта, такие как ширина, длина, минимальная и максимальная высота, гористость, генерации ландшафта, возврат ландшафта как bitmap, сохранение ландшафта в формате obj и bmp.

7. Экономическая часть

 

.1 Обоснование целесообразности разработки проекта


Программный комплекс предназначен для генерации ландшафта. Его можно использовать в нескольких вариантах:

как библиотеку, которую можно подключить в приложение и использовать вызовы функции для генерации;

как отдельное приложением, в котором сгенерировать ландшафт и экспортировать его как 3D-модель.

Использование данного программного продукта позволит сократить время на создание реалистических ландшафтов.

На данный момент на рынке представлены несколько программ для данной задачи, однако они отличаются высокой ценой или не дают использовать полученный ландшафт в других программах.

С позиции маркетинга главным в товаре являются его потребительские свойства, т.е. способность удовлетворить потребности того, кто им владеет. Поэтому товар не существует как обособленная вещь в себе и должен рассматриваться через призму восприятия его потребителем.

Проанализируем потребительские свойства программно-аппаратного комплекса с помощью системы трехуровневого анализа товара.

Составляющие трехуровневого анализа продукта.

. Сущность продукта. Один и тот же товар может решать разные проблемы потребителей и, соответственно, удовлетворять их различные потребности. Поэтому и сущность товара может быть различной.

. Добавление к продукту. Включают в себя все, что мы еще можем предложить нашим покупателям помимо основного товара. Предложение дополнительных услуг повышает ценность продукта для покупателя и позволяет выгодно отличить товар от товаров конкурентов.

Трехуровневый анализ разработанного программного продукта представлен в соответствии с таблицей 7.1.

Таблица 7.1 - Трехуровневый анализ программного продукта

Уровень

Описание

Сущность продукта

Генерация ландшафта

Фактический продукт

Программный комплекс для генерации ландшафта

Добавление к продукту

Визуализатор ландшафта и исходный код для генерации ландшафта


Схема трехуровневого анализа программного продукта представлена в соответствии с рисунком 7.1.

Рисунок 7.1 - Схема трехуровневого анализа программного продукта

 

7.2 Основы технико-экономических расчетов


Стоимость программного обеспечения может рассматриваться с двух точек зрения:

-   с точки зрения формирования объектов нематериальных активов как исключительное право;

-        с точки зрения формирования затрат на создание программного продукта (ПП).

В этом случае стоимость программного продукта может не оцениваться как объект нематериальных активов (в случае определения стоимости ниже 10 тысяч рублей при имеющемся исключительном праве на объект; в случае покупки программы у фирмы формируется не исключительное право).

Исключительным правом на компьютерную программу будет обладать исполнитель. Отношение программного продукта к объектам нематериальных активов зависит от величины стоимости программы.

Задачи экономической части:

-    расчет затрат на разработку программного продукта и формирования его стоимости;

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

 

7.3 Определение трудоемкости разработки программного продукта


Трудоёмкость разработки программного обеспечения рассчитывается на основе определенных типовых норм в сфере деятельности, соответствующей выбранной теме. Для разработки в области компьютерных информационных технологий существуют типовые нормы времени. Они предназначены для нормирования труда специалистов, занятых созданием программного обеспечения для электронно-вычислительных машин (ЭВМ), установление численности исполнителей, а так же обоснование трудности разработки ПО. Типовые нормы времени охватывают комплексы задач всех подсистем управления, статические задачи, а так же задачи расчетного

При расчете трудоемкости выделяют 5 стадий выполнения работ.

. Техническое задание. На этой стадии заказчик формирует требования к программному продукту (ПП) и консультирует разработчиков по данному вопросу. Далее идет обоснование принципиальной возможности решения данной задачи, разрабатывается концепция, определяются и согласовываются сроки разработки ПП.

. Эскизный проект. На данной стадии прорабатывается техническое задание и по итогам выбирается и разрабатывается математическая модель, алгоритм разработки ПП.

. Технический проект. Разрабатывается программная документация и определяется конфигурация технических средств для реализации ПП.

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

. Внедрение. На этой стадии проводится проверка правильности работы ПП на практике в процессе подготовки соответствующей документации, а затем ПП сдается в эксплуатацию.

Для стадий 1 и 2 относим новизну проекта к степени В - разработка проекта с использованием типовых проектных решений при условии их изменения. Разработанный проект относится к подсистеме управление НИР и ОКР. Для этих стадий с учетом степени новизны проекта и подсистемы принимаем значения в соответствии с таблицами 5.4 и 5.5 в [6]:= 24 чел./дн.;= 67 чел./дн..

Для остальных этапов предварительные нормы рассчитываются по формулам типа:

,

где r1, r2, r3 - коэффициенты, приведенные в таблицах от 5.6 до 5.8 в;

Ф1 - количество макетов входной информации;

Ф2 - количество разновидностей форм выходной информации.

Принимаем значения Ф1 = 4 документострок, Ф2 = 2 документострок.

Находим время работы для стадии «Технический проект»:

В соответствии с таблицей 5.6 в [6] принимаем значения коэффициентов с учетом подсистемы:

r1 = 24,01;

r2 = 0,45;

r3 = 0,31.

Тогда для стадии «Технический проект»:

Т3 = 24,01 * 40,45 * 20,31 = 55,5 чел./дн.

Для стадии «Рабочий проект» коэффициенты в соответствии с таблицей 5.7 в [6]:

r1 = 6,2;= 0,47;

r3 = 0,5.

Рассчитываем трудоемкость для стадии «Рабочий проект»:

T4 = 6,2 * 40,47 * 20,5 = 16,82 чел./дн.

Для стадии «Внедрение» коэффициенты в соответствии с таблицей 5.8 в [6]:= 7,24;

r2 = 0,45;

r3 = 0,43.

Рассчитываем трудоемкость для стадии «Внедрение»:

T5 = 7,24 * 40,45 * 20,43 = 18,2 чел./дн.

Общие трудозатраты будут равны:

Т = Т1+Т2+Т3+Т4+Т5 = 24+67+55,5+16,82+18,2 = 181,52 чел./дн.

Численность работников для разработки программной системы вычисляется по формуле:

,

где Ч - численность работников;

- трудозатраты, чел./дн.;

- плановый фонд рабочего времени одного специалиста в днях.

Программная система разрабатывается в течение 5 месяцев, что составляет 150 рабочих дней. В данном случае в разработке проекта должно участвовать:

Ч = 181,52 / 150 = 1,21 ~ 1 (чел.)

Разработку данного программного продукта ведет один программист в установленные сроки.

 

7.4 Определение стоимости программного продукта


Программные продукты не подвержены физическому износу. Денежные затраты необходимы для изготовления образца. Процесс распространения, обычно представляет собой копирование экземпляра на носитель или распространения через сеть интернет. Отсюда следует, что программа не обладает рыночной стоимостью, формируемой на базе общественно необходимых затрат труда.

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

Спо = МЗ + ФЗП + АО + П

где МЗ - материальные затраты;

ФЗП - фонд заработной платы разработчикам программного продукта;

АО - амортизационные отчисления;

П - прочие расходы.

Материальные затраты включают в себя расходы на электроэнергию. Определение затрат ведется из того, что мощность компьютера составляет 0,6 кВтч и стоимость 1 кВтч равна 4,28 рублей. Итоговая сумма получается:

*0,6*4,28 = 3081,6 р.

Определим фонд заработной платы разработчика программного продукта на основе заработной платы инженера - программиста ООО «AЦС». Согласно штатному расписанию данного предприятия, оклад инженера - программиста составляет 12000 р.

Кроме того, законом Забайкальского края от 26.09.2008 № 39-ЗЗК «О районном коэффициенте и процентной надбавке к заработной плате работников бюджетных организаций» установлен районный коэффициент в размере 20 %, а так же предусмотрена надбавка 30 % за стаж работы в районах Крайнего Севера и приравненных к ним местностях, а также в остальных районах Севера.

Таким образом, ежемесячная заработная плата составляет 12000*1,2=14400 р. Учитывая, что разработка программного продукта ведется в течение 5 месяцев, фонд заработной платы будет равен:

ФЗП = 14400*5 = 72000 р.

Порядок уплаты страховых взносов во внебюджетные фонды определяется Федеральным законом от 24.07.2009 N 212-ФЗ (ред. от 29.12.2015) "О страховых взносах в Пенсионный фонд Российской Федерации, Фонд социального страхования Российской Федерации, Федеральный фонд обязательного медицинского страхования".

Начиная с 1 января 2012 года, взносы на социальное страхование составляют 30 % от общей заработной платы, т.е. в нашем случае составляют 72000 * 0,3 = 21600 р.

Законом установлены следующие тарифы страховых взносов:

-  пенсионный фонд Российской Федерации - 22,00 %;

-       фонд социального страхования Российской Федерации - 2,9 %;

-       федеральный фонд обязательного медицинского страхования - 5,1 %.

Основное средство, подлежащее амортизации при разработке программной системы - это компьютер. Первоначальная стоимость одного компьютера 25000 р. Вычислительная техника входит в амортизационную группу 2. По установленным нормам, постановление Правительства Российской Федерации от 18.11.2006 г. № 697, время службы компьютера берется равным свыше 2 лет до 3 лет включительно. Установим норму службы компьютера равную 3 годам. Получаем, что амортизация за год составляет (1/3)*100 = 33 % от первоначальной стоимости компьютера. Для аппаратной части комплекса амортизация рассчитывается по тем же критериям. Таким образом, амортизация за девять месяцев составит:

 

Рассчитаем прочие расходы. Величина прочих расходов составляет 15 % от оклада работника. В прочие расходы входит амортизация нематериальных активов, а также накладные расходы:

П = 14400*0,15*5 = 10800 р.

Таким образом, общая стоимость затрат на создание программно-аппаратного комплекса составляет:

СПО = 3081,6 + 72000 + 21600 + 3505,3 + 10800 = 110986,9 р.

Таблица 7.2 - Сценарии ценообразования

Сценарий

Описание

Цена за одну копию

Пессимистический

Спрос - низкий. Ожидаемое количество реализованных копий равно 1. Рентабельность равно 0 %

110986,9 р.

Оптимистический

Спрос - высокий. Ожидаемое количество реализованных копий равно 1000. Рентабельность равно 25 %

110986,9 *1.25/1000 = = 138,73 р.

Рационалистический

Спрос - средний. Ожидаемое количество реализованных копий равно 100. Рентабельность равно 5 %

110986,9 *1,05/100 =  1165,36 р.


Как видно из таблицы 7.2, цена за один комплекс, в пессимистическом сценарии, слишком высока. Оптимистический же и рационалистический сценарии, предполагают вполне подходящую стоимость для целевой аудитории. Примем рационалистический сценарий. В таком случае, окончательная цена будет равна 1165,36 р.

 

7.5 Обоснование экономической эффективности


Экономическая эффективность характеризуется снижением трудоемкости выполнения задач, в решении которых участвует создаваемый программный продукт. При расчете экономической эффективности используют методы сравнения, наблюдения и хронометража.

Критерием расчета экономической эффективности использования программного обеспечения является уровень производительности труда и затраты рабочего времени.

Экономический эффект от внедрения программного продукта заключается в следующем:

-     пользователям данного продукта не придется в ручную создавать черновую заготовку ландшафта;

-        сторонние разработчики смогут использовать библиотеку в своих проектах.

8. Охрана труда при работе с ПЭВМ


.1 Требования к ПЭВМ

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

Перечень продукции и контролируемых гигиенических параметров вредных и опасных факторов представлены в приложении Е таблица Е.1.

Допустимые уровни звукового давления и уровней звука, создаваемого ПЭВМ, не должны превышать значений, представленных в приложении Е таблица Е.2.

Временные допустимые уровни электромагнитных полей (ЭМП), создаваемых ПЭВМ, не должны превышать значений, представленных в приложении Е таблица Е.3.

Допустимые визуальные параметры устройств отображения информации представлены в приложении Е таблица Е.4.

Концентрации вредных веществ, выделяемых ПЭВМ в воздух помещений, не должны превышать предельно допустимых концентраций (ПДК), установленных для атмосферного воздуха.

Мощность экспозиционной дозы мягкого рентгеновского излучения в любой точке на расстоянии 0,05 м от экрана и корпуса ВДТ (на электроннолучевой трубке) при любых положениях регулировочных устройств не должна превышать 1 мкЗв/час (100 мкР/час).

Конструкция ПЭВМ должна обеспечивать возможность поворота корпуса в горизонтальной и вертикальной плоскости с фиксацией в заданном положении для обеспечения фронтального наблюдения экрана ВДТ. Дизайн ПЭВМ должен предусматривать окраску корпуса в спокойные мягкие тона с диффузным рассеиванием света. Корпус ПЭВМ, клавиатура и другие блоки и устройства ПЭВМ должны иметь матовую поверхность с коэффициентом отражения от 0,4 до 0,6 и не иметь блестящих деталей, способных создавать блики.

Конструкция ВДТ должна предусматривать регулирование яркости и контрастности.

Документация на проектирование, изготовление и эксплуатацию ПЭВМ не должна противоречить требованиям настоящих санитарных правил.

8.2 Требования к помещениям для эксплуатации ПЭВМ

Помещения для эксплуатации ПЭВМ должны иметь естественное и искусственное освещение. Эксплуатация ПЭВМ в помещениях без естественного освещения допускается только при соответствующем обосновании и наличии положительного санитарно-эпидемиологического заключения, выданного в установленном порядке.

Естественное и искусственное освещение должно соответствовать требованиям действующей нормативной документации. Окна в помещениях, где эксплуатируется вычислительная техника, преимущественно должны быть ориентированы на север и северо-восток.

Оконные проемы должны быть оборудованы регулируемыми устройствами типа: жалюзи, занавесей, внешних козырьков и др.

Не допускается размещение мест пользователей ПЭВМ во всех образовательных и культурно-развлекательных учреждениях для детей и подростков в цокольных и подвальных помещениях.

Площадь на одно рабочее место пользователей ПЭВМ с ВДТ на базе электроннолучевой трубки (ЭЛТ) должна составлять не менее 6 м2, в помещениях культурно-развлекательных учреждений и с ВДТ на базе плоских дискретных экранов (жидкокристаллические, плазменные) - 4,5 м2.

При использовании ПВЭМ с ВДТ на базе ЭЛТ (без вспомогательных устройств - принтер, сканер и др.), отвечающих требованиям международных стандартов безопасности компьютеров, с продолжительностью работы менее 4-х часов в день допускается минимальная площадь 4,5 м2 на одно рабочее место пользователя (взрослого и учащегося высшего профессионального образования).

Для внутренней отделки интерьера помещений, где расположены ПЭВМ, должны использоваться диффузно-отражающие материалы с коэффициентом отражения для потолка от 0,7 до 0,8; для стен от 0,5 до 0,6; для пола от 0,3 до 0,5.

Полимерные материалы используются для внутренней отделки интерьера помещений с ПЭВМ при наличии санитарно-эпидемиологического заключения.

Помещения, где размещаются рабочие места с ПЭВМ, должны быть оборудованы защитным заземлением (занулением) в соответствии с техническими требованиями по эксплуатации.

Не следует размещать рабочие места с ПЭВМ вблизи силовых кабелей и вводов, высоковольтных трансформаторов, технологического оборудования, создающего помехи в работе ПЭВМ.

8.3 Требования к шуму и вибрации

В производственных помещениях при выполнении основных или вспомогательных работ с использованием ПЭВМ уровни шума на рабочих местах не должны превышать предельно допустимых значений, установленных для данных видов работ в соответствии с действующими санитарно-эпидемиологическими нормативами.

В помещениях всех образовательных и культурно-развлекательных учреждений для детей и подростков, где расположены ПЭВМ, уровни шума не должны превышать допустимых значений, установленных для жилых и общественных зданий.

При выполнении работ с использованием ПЭВМ в производственных помещениях уровень вибрации не должен превышать допустимых значений вибрации для рабочих мест (категория 3, тип "в") в соответствии с действующими санитарно-эпидемиологическими нормативами.

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

Шумящее оборудование (печатающие устройства, серверы и т.п.), уровни шума которого превышают нормативные, должно размещаться вне помещений с ПЭВМ.

8.4 Требования к освещению помещений и рабочих мест с ПЭВМ

Рабочие столы следует размещать таким образом, чтобы видеодисплейные терминалы были ориентированы боковой стороной к световым проемам, чтобы естественный свет падал преимущественно слева.

Искусственное освещение в помещениях для эксплуатации ПЭВМ должно осуществляться системой общего равномерного освещения. В производственных и административно-общественных помещениях, в случаях преимущественной работы с документами, следует применять системы комбинированного освещения (к общему освещению дополнительно устанавливаются светильники местного освещения, предназначенные для освещения зоны расположения документов).

Освещенность на поверхности стола в зоне размещения рабочего документа должна быть от 300 до 500 лк. Освещение не должно создавать бликов на поверхности экрана. Освещенность поверхности экрана не должна быть более 300 лк.

Следует ограничивать прямую блесткость от источников освещения, при этом яркость светящихся поверхностей (окна, светильники и др.), находящихся в поле зрения, должна быть не более 200 кд/м2.

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

Показатель дискомфорта в административно-общественных помещениях не более 40, в дошкольных и учебных помещениях не более 15.

Яркость светильников общего освещения в зоне углов излучения от 50 до 90 градусов с вертикалью в продольной и поперечной плоскостях должна составлять не более 200 кд/м2, защитный угол светильников должен быть не менее 40 градусов.

Светильники местного освещения должны иметь не просвечивающий отражатель с защитным углом не менее 40 градусов.

Следует ограничивать неравномерность распределения яркости в поле зрения пользователя ПЭВМ, при этом соотношение яркости между рабочими поверхностями не должно превышать 3:1, а между рабочими поверхностями и поверхностями стен и оборудования 10:1.

В качестве источников света при искусственном освещении следует применять преимущественно люминесцентные лампы типа ЛБ и компактные люминесцентные лампы (КЛЛ). При устройстве отраженного освещения в производственных и административно-общественных помещениях допускается применение металлогалогенных ламп. В светильниках местного освещения допускается применение ламп накаливания, в том числе галогенные.

Для освещения помещений с ПЭВМ следует применять светильники с зеркальными параболическими решетками, укомплектованными электронными пуско-регулирующими аппаратами (ЭПРА). Допускается использование многоламповых светильников с электромагнитными пуско-регулирующими аппаратами (ЭПРА), состоящими из равного числа опережающих и отстающих ветвей.

Применение светильников без рассеивателей и экранирующих решеток не допускается.

При отсутствии светильников с ЭПРА лампы многоламповых светильников или рядом расположенные светильники общего освещения следует включать на разные фазы трехфазной сети.

Общее освещение при использовании люминесцентных светильников следует выполнять в виде сплошных или прерывистых линий светильников, расположенных сбоку от рабочих мест, параллельно линии зрения пользователя при рядном расположении видеодисплейных терминалов. При периметральном расположении компьютеров линии светильников должны располагаться локализовано над рабочим столом ближе к его переднему краю, обращенному к оператору.

Коэффициент запаса (Кз) для осветительных установок общего освещения должен приниматься равным 1,4.

Коэффициент пульсации не должен превышать 5 %.

Для обеспечения нормируемых значений освещенности в помещениях для использования ПЭВМ следует проводить чистку стекол оконных рам и светильников не реже двух раз в год и проводить своевременную замену перегоревших ламп.

8.5 Требования к организации и оборудованию рабочих мест с ПЭВМ

При размещении рабочих мест с ПЭВМ расстояние между рабочими столами с видеомониторами (в направлении тыла поверхности одного видеомонитора и экрана другого видеомонитора), должно быть не менее 2,0 м, а расстояние между боковыми поверхностями видеомониторов - не менее 1,2 м.

Рабочие места с ПЭВМ в помещениях с источниками вредных производственных факторов должны размещаться в изолированных кабинах с организованным воздухообменом.

Рабочие места с ПЭВМ при выполнении творческой работы, требующей значительного умственного напряжения или высокой концентрации внимания, рекомендуется изолировать друг от друга перегородками высотой от 1,5 до 2,0 м.

Экран видеомонитора должен находиться от глаз пользователя на расстоянии от 600 до 700 мм, но не ближе 500 мм с учетом размеров алфавитно-цифровых знаков и символов.

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

При этом допускается использование рабочих столов различных конструкций, отвечающих современным требованиям эргономики. Поверхность рабочего стола должна иметь коэффициент отражения от 0,5 до 0,7.

Конструкция рабочего стула (кресла) должна обеспечивать поддержание рациональной рабочей позы при работе на ПЭВМ позволять изменять позу с целью снижения статического напряжения мышц шейно-плечевой области и спины для предупреждения развития утомления. Тип рабочего стула (кресла) следует выбирать с учетом роста пользователя, характера и продолжительности работы с ПЭВМ.

Рабочий стул (кресло) должен быть подъемно-поворотным, регулируемым по высоте и углам наклона сиденья и спинки, а также расстоянию спинки от переднего края сиденья, при этом регулировка каждого параметра должна быть независимой, легко осуществляемой и иметь надежную фиксацию.

Поверхность сиденья, спинки и других элементов стула (кресла) должна быть полумягкой, с нескользящим, слабо электризующимся и воздухопроницаемым покрытием, обеспечивающим легкую очистку от загрязнений.

8.6 Требования электробезопасности

Во избежание поражения электрическим током необходимо оборудовать помещение, в котором установлены ПЭВМ, розетками с заземлением, либо отдельным контуром заземления, на который должны быть заземлены ПЭВМ и все устройства, подключаемые к ним.

ЗАКЛЮЧЕНИЕ


Программный комплекс на данном этапе может сделать следующие:

1) генерировать ландшафты;

2)      визуализировать ландшафты;

)        сохранять получившихся ландшафт, как карту высот в формате bmp;

)        сохранять получившихся ландшафт, как 3D-модель в формате obj.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ


1.     Малашин А. Д. DirectX против OpenGL // Издательский дом ООО «Гейм Лэнд», ЖУРНАЛ ЖЕЛЕЗО. - 2004. - №6.- С. 6-8.

2.     Андреев Г. И. Практикум по оценке интеллектуальной собственности: Учеб. Пособие. / Г. И. Андреев, В. В. Витчинка, С. А. Смирнов - Москва: Финансы и статистика, 2002 г. - 176 с..

ПРИЛОЖЕНИЕ А


Примеры работы алгоритмов

Рисунок А.1 - Пример работы алгоритма midpoint displacemet

Рисунок А.2 - Пример работы midpoint displacement в 3d

Рисунок А.3 - Пример работы алгоритма diamond-square

ПРИЛОЖЕНИЕ Б


Графики функции шума

Рисунок Б.1 - Пример функции шума

Рисунок Б.2 - Пример функции шума

Рисунок Б.3 - Синусоидальная волна

Рисунок Б.4 - Шумовая волна

Рисунок Б.5 - Пример функции шума Перлина

ПРИЛОЖЕНИЕ В


Структуры данных

 Light

{

Light()

{(this, sizeof(Light));

}dir;pad;ambient;diffuse;

};

struct HeightMapInfo {terrainWidth;terrainHeight;3 *heightMap;

};

ПРИЛОЖЕНИЕ Г


Алгоритм генерации ландшафта

Рисунок Г.1 - Блок-схема генерации ландшафта

ПРИЛОЖЕНИЕ Д


Модульная структура

Рисунок Д.1 - Модульная структура визуализатора

Таблица Д.1 - Описание моделей в визуализаторе

Имя модуля

Описание

Log

Модуль содержит класс для отслеживание ошибок.

Модуль содержит класс для управление другими классами

Window

Модуль содержит класс для управления окном приложения.

Render

Модуль содержит класс, который отвечает за прорисовку изображения.

InputMgr

Модуль содержит класс для слежения за событиями клавиатуры и мыши.

InputLisner

Модуль для обработки нажатия кнопок.



Рисунок Д.2 - Модульная структура библиотеки

Таблица Д.2 - Описание моделей в библиотеке

Имя модуля

Описание

LandscapeGenerator

Модуль содержит функции для управления генерации.

DiamondSquare

Модуль содержит реализацию алгоритма diamond-square

ConversionTo

Модуль содержит методы для преобразования ландшафта в нужный формат.

Perlin

Модуль содержит реализацию шума Перлина для трех мерного пространства

Penlin2D

Модуль содержит реализацию шума Перлина.



ПРИЛОЖЕНИЕ Е


Параметры для охраны труда

Таблица Е.1 - Перечень продукции и контролируемые параметры

N

Вид продукции

Код ОКП

Контролируемые гигиенические параметры

1

Машины вычислительные электронные цифровые, машины вычислительные электронные цифровые персональные (включая портативные ЭВМ)

40 1300, 40 1350, 40 1370

Уровни электромагнитных полей (ЭМП), акустического шума, концентрация вредных веществ в воздухе, визуальные показатели ВДТ, мягкое рентгеновское излучение

2

Устройства периферийные: принтеры, сканеры, модемы, сетевые устройства, блоки бесперебойного питания и т.д.

40 3000

Уровни ЭМП, акустического шума, концентрация вредных веществ в воздухе

3

Устройства отображения информации (видеодисплейные терминалы)

40 3200

Уровни ЭМП, визуальные показатели, концентрация вредных веществ в воздухе, мягкое рентгеновское излучение

4

Автоматы игровые с использованием ПЭВМ

96 8575

Уровни ЭМП, акустического шума, концентрация вредных веществ в воздухе, визуальные показатели ВДТ, мягкое рентгеновское излучение


Таблица E.2 - Допустимые значения звукового давления создаваемого ПЭВМ

Уровни звукового давления в октавных полосах со среднегеометрическими частотами

Уровни звука в дБА

31,5Гц

63 Гц

125 Гц

250 Гц

500 Гц

1000 Гц

2000 Гц

4000 Гц

8000 Гц


86 дБ

71 дБ

61 дБ

54 дБ

49 дБ

45 дБ

42 дБ

40 дБ

38 дБ

50


Таблица E.3 - Допустимые уровни электромагнитных полей

Наименование параметров

Напряженность электрического поля

в диапазоне частот от 5 Гц до 2 кГц

25 В/м


в диапазоне частот от 2 кГц до 400 кГц

2,5 В/м

Плотность магнитного потока

в диапазоне частот от 5 Гц до 2 кГц

250 нТл


в диапазоне частот от 2 кГц до 400 кГц

25 нТл

Электростатический потенциал экрана видеомонитора

500 В


Таблица E.4 - Допустимые параметры устройств отображения информации

N

Параметры

Допустимые значения

1

Яркость белого поля

Не менее 35 кд/кв.м

2

Неравномерность яркости рабочего поля

Не более 20 %

3

Контрастность (для монохромного режима)

Не менее 3:1

4

Временная нестабильность изображения (непреднамеренное изменение во времени яркости изображения на экране дисплея)

Не должна фиксироваться

5

Пространственная нестабильность изображения (непреднамеренные изменения положения фрагментов изображения на экране)

Не более 2 10-4L, где L- проектное расстояние наблюдения, мм

 

Похожие работы на - Реализация генерации и отображения ландшафта в трехмерной плоскости

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!