WWW.DISS.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА
(Авторефераты, диссертации, методички, учебные программы, монографии)

 

Pages:     || 2 |

«Оглавление Оглавление Введение 1. Постановка задачи 1.1. Основные понятия и определения 1.2. Общее описание программной системы 2. Анализ методов и средств решения поставленной задачи.15 2.1. Теоретически основы 2.1.1. ...»

-- [ Страница 1 ] --

Оглавление

Оглавление

Введение

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

1.1. Основные понятия и определения

1.2. Общее описание программной системы

2. Анализ методов и средств решения поставленной задачи..15

2.1. Теоретически основы

2.1.1. Физика процесса распространения света

2.1.2. Основная модель трассировки лучей

2.1.3. Способы задания свободных форм объектов

2.1.4. Функция возмущения в неявном виде

2.1.5. Функция возмущения в скалярном виде

2.1.6. Моделирование текстуры

2.1.7. Рельефное текстурирование

2.2. Аналитический обзор существующих систем синтеза воксельной графики

3. Анализ требований к программной системе

3.1. Анализ предметной области

3.2. Определение функциональности программной системы............ 3.3. Система приоритетов при разработке программной системы. .. 4. Проектирование программной системы

4.1. Архитектура программной системы

4.2. Выбор инструментальных средств разработки

4.2.1. Выбор языка программирования

4.2.2. Выбор среды реализации

4.2.3. Выбор компилятора

4.2.4. Выбор прочих средств разработки

4.3. Проектирование структур данных, иерархии классов и алгоритмов

4.3.1. Описание структур данных

4.3.2. Описание алгоритмов программы

4.3.3. Оценка скорости работы алгоритма трассировки лучей............. 4.4. Проектирование пользовательского интерфейса

5. Реализация программной системы

5.1. Особенности реализации системы

5.1.1. Оценка объема исходного кода

5.2. Внешний вид сцен

6. Тестирование программной системы

6.1. Обоснование методики тестирования

6.2. Результаты тестирования

7. Внедрение системы

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

7.2. Руководство программиста

8. Организационно-экономическая часть

8.1. Анализ и оценка стоимости объекта интеллектуальной собственности

8.1.1. Анализ объекта интеллектуальной собственности

8.1.2. Подходы к оценке стоимости объекта интеллектуальной собственности

8.1.3. Оценка стоимости объекта интеллектуальной собственности... 8.2. Расчет показателей экономической эффективности

8.3. Выбор и обоснование методики ценообразования разработки... 8.4. Способы коммерциализации объекта интеллектуальной собственности

9. Безопасность и экологичность проекта

9.1. Анализ опасных и вредных факторов пользователей ПЭВМ..... 9.1.1. Опасные и вредные факторы при работе за мониторами............ 9.2. Решения по охране труда

9.2.1. Проектирование естественного освещения

9.2.2. Проектирование искусственного освещения

9.3. Решения по обеспечению устойчивости функционирования в чрезвычайных ситуациях

9.3.1. Основные понятия чрезвычайных ситуаций

9.3.2. Информационная безопасность

Заключение

Список литературы

Приложение А

Листинг основных алгоритмов

Приложение Б

Организационно-экономическая часть

Приложение В

Безопасность и экологичность проекта

Приложение Г

Архитектура системы

Приложение Д

Общий алгоритм функционирования системы

Приложение Е

Тестирование системы

Приложение Ж

Алгоритм трассировки лучей

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

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



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

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

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

1. Постановка задачи 1.1. Основные понятия и определения Воксел — это элемент объемного изображения, содержащий значение элемента на регулярной сети в трёхмерном пространстве, аналогично пикселю на двухмерном пространстве Квадрика – поверхность второго порядка Функция возмущения – композиция базового квадрика и функции отклонения от базовой поверхности Рендер – визуализация, преобразование примитивов, заданных в виде квадрик, в изображение в буфере кадров Антиалиасинг (Дрожание) – псевдослучайное отклонение положения объектов в сцене или точки обзора для получения спецэффектов или устранения эффекта зубчатости Нормаль – трехкомпонентное уравнение плоскости, определяющее угловую ориентация, но не положение Нормализация – приведение к единичному вектору, исходящему из вершины координат Фоновое освещение – освещение не имеющее определенного направления и равномерно распределенного в пространстве.

Текстура – одномерные или двумерные изображения (формулы), используемые для изменения цвета или вектора нормали вокселя.

Кластер – группа серверов, объединённых логически, способных обрабатывать идентичные запросы и использующихся как единый ресурс.

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

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

Метод растеризации имеет ряд существенных недостатков:

1. На границе силуэта проявляется многоугольная структура объекта, т. е. граница имеет форму ломаной. Обычно этот дефект частично устраняется более точной аппроксимацией поверхности, что требует увеличения количества многоугольников.

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

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

4. Сложность визуализации аморфных объектов (объемные облака, 5. Проблемы приоритетов, определения и смены уровней детальности, клиппирования многоугольников пирамидой видимости и т.д.

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

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

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

Информация, которая предоставляется пользователю в такой технологии - неполная. Главное - это отсутствие информации о глубине объекта, отсутствие информации о луче, проходящем 8. Сложность анимации поверхностей и морфинга объектов. Морфинг негомеоморфных объектов (например, тора и сферы) и морфинг с последующего "склеивания" последней. Что доступно технологиям с функциональным описанием примитивов. Так, например, при формируя объект другой формы[2] Целью дипломного проекта является разработка системы синтеза виртуальной графики с применением скалярных и аналитических функций возмущения и трехмерных массивов вокселей приближенной к физической модели трассировки лучей. Разработка не имеет конкретного заказчика и выполняется по личной инициативе.

разрабатываемой системе:

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

• Виртуализация пространства на основе трехмерных массивов вокселей • Освещение сцены точечными, сферическими и коническими источниками света • Возможность наложения как проективных текстур (из файла), так и программно-генерируемых • Возможность наложения текстур изменяющих свойства материала и вектора нормали • Возможность экспорта (растеризации) готовых сцен в популярные форматы (JPG, GIF, PNG, TIFF, TGA) • Переносимость продукта на популярные платформы (Unix, Windows, Mac, ОС мобильных устройств и т.д.) • Кластеризация расчетов (Разделение рендера на независимые потоки) 2. Анализ методов и средств решения поставленной задачи 2.1. Теоретически основы 2.1.1. Физика процесса распространения света распространяющихся по прямолинейным траекториям, и как электромагнитную волну, распространяющуюся в пространстве. При этом интенсивность света определяется амплитудой волны, а его цвет - частотой или длиной волны.

Сам процесс распространения света описывается уравнениями Максвелла.

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

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

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

прямолинейной траектории с постоянной скоростью. Отношение скорости распространения света в вакууме к этой скорости называется коэффициентом преломления (индексом рефракции) среды. Обычно этот коэффициент зависит от длины волны.

При распространении света в среде может иметь место экспоненциальное затухание с коэффициентом e l, где l - расстояние, пройденное лучом в среде, а - коэффициент затухания.

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

1. Зеркальное отражение Отраженный луч падает в точку Р в направлении i и отражается в направлении, задаваемом вектором r, определяемым следующим законом:

вектор r лежит в той же плоскости, что и вектор i и единичный вектор внешней 2.1).

Будем считать все векторы единичными. Тогда из первого условия следует, что вектор r равен линейной комбинации векторов i и n, то есть Вектор, задаваемый соотношением (2.2), является единичным.

2. Диффузное отражение Идеальное диффузное отражение описывается законом Ламберта, согласно которому падающий свет рассеивается во все стороны с одинаковой интенсивностью. Таким образом не существует однозначно определенного направления, в которым бы отражался падающий луч, все направления равноправны и освещенность точки пропорциональна только доле площади, видимой от источника, то есть (i, n).

3. Идеальное преломление Луч, падающий в точку Р в направлении вектора i, преломляется внутрь второй среды в направлении вектора t (рис. 2.2). Преломление подчиняется закону Снелла, согласно которому векторы i, n и t лежат в одной плоскости и для углов справедливо соотношение Найдем для вектора t явное выражение. Этот вектор можно представить в следующем виде:

Соотношение (2.3) можно переписать так:

Так как Из условия нормировки вектора t имеем Вычитая это соотношение из равенства (2.7), имеем:

Из физических соображений следует, что =.

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

4. Диффузное преломление Диффузное преломление полностью аналогично диффузному отражению, при этом преломленный луч идет по всем направлениям t:(t, n) < 0 с одинаковой интенсивностью.

5. Распределение энергии отражения и преломления Рассмотрим теперь распределение энергии при отражении и преломлении.

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

Формула (2.15) верна для диэлектрических материалов.

Для проводников обычно используется следующая формула Где kt – индекс поглощения.

6. Отражения и преломления в реальной среде Ясно, что все рассмотренные примеры являются идеализациями. На самом деле нет ни идеальных зеркал, ни идеально гладких поверхностей.

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

Пусть n - нормаль к поверхности (ее средней линии), h - вектор нормали к микрограни и - угол между ними, = arccos(n,h).

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

Существует несколько распространенных моделей для функции D( ):

Гауссовское распределение распределение Бекмена В этих моделях m характеризует степень неровности поверхности - чем меньше m, тем более гладкой является поверхность.

Рассмотрим отражение луча света, падающего в точку Р вдоль направления, задаваемого вектором l. Пусть n - вектор внешней нормали к поверхности. Поскольку микрограни распределены случайным образом, то отраженный луч может уйти практически в любую сторону. Определим долю энергии, уходящей в заданном направлении v. Для того, чтобы луч отразился в этом направлении, необходимо, чтобы он попал на микрогрань, нормаль h к которой удовлетворяет соотношению коэффициентом Френеля Fr(, ), где = arccos( h, v) = arccos( h, l ).

описывается с помощью следующей функции:

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

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

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

2.1.2. Основная модель трассировки лучей Введем некоторые ограничения на рассматриваемую сцену:

• будем рассматривать только точечные источники света;

• при трассировании преломленного луча будем игнорировать зависимость его направления от длины волны;

• будем считать освещенность объекта состоящей из диффузной и зеркальной частей (с заданными весами).

непосредственную освещенность этой точки от источников света (выпустив из нее лучи ко всем источникам).

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

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

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

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

I li ( ) - интенсивность i-ro источника света;

I r ( ) - интенсивность, приходящая по отраженному лучу;

- освещенность, приносимая преломленным лучом;

Ка - коэффициент фонового освещения;

Kd - коэффициент диффузного освещение;

Ks - коэффициент зеркального освещения;

Kt - вклад преломленного луча;

n - вектор внешней нормали в точке Р, li - единичный вектор направления из точки Р на i-й источник света;

- угол отражения (для отраженного луча);

dr - расстояние, пройденное отраженным лучом;

dt - расстояние, пройденное преломлеенным лучом;

r - коэффициент ослабления для отраженного луча;

t - коэффициент ослабления для преломленного луча.

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

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

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

Далее будет рассматриваться модель Уиттеда:

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

В качестве критерия остановки обычно используется отсечение по глубине (не более заданного количества уровней рекурсии) и по весу (чем дальше, тем меньше вклад каждого луча в итоговой цвет пикселя, и, как только этот вклад опускается ниже некоторого порогового значения, дальнейшая трассировка этого луча прекращается)[3].

2.1.3. Способы задания свободных форм объектов Квадрик является основой для построения всех остальных объектов.

Квадрик определяется с помощью вещественной непрерывной описывающей функции трех переменных (x1, x2, x3) в виде F(X) 0. Рассматриваются квадрики как замкнутые подмножества Евклидова пространства En, определяемые описывающей функцией F(X) 0, где F - непрерывная вещественная функция и X= (x1,x2,x3) - задаваемая координатными переменными точка в En. Здесь F(X) > 0 задает точки внутри квадрика, F(X) = - точки на границе и F(X) < 0 - точки, лежащие снаружи и не принадлежащие квадрику. На базе квадриков строится первый класс свободных форм с использованием вещественных функций возмущения. Класс свободных форм такого типа выгодно применять при синтезе искусственных (рукотворных) объектов. Во-вторых, предлагается второй класс свободных форм с использованием скалярных функций возмущения относительно базовой плоскости или квадрика, например, для генерации рельефа местности или скульптурных моделей. В-третьих, предлагается использовать трехмерные массивы вокселей там, где не выгодно применять вышеперечисленные классы примитивов, это объекты особой сложности. И в-четвертых, применять треугольники там, где это выгодно (плоские грани стен домов, кристаллов и т.д.).

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

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

2.1.4. Функция возмущения в неявном виде Предлагается описывать сложные геометрические объекты, задавая функцию отклонения второго порядка от базового квадрика в виде:

На базе квадриков строятся свободные формы. Свободная форма есть функция возмущения R(x,y,z) находится следующим образом:

В качестве Q также может быть возмущенный квадрик (свободная форма).

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

Таким образом, задача конструирования объекта сводится к задаче деформации поверхности квадрика нужным образом, а не к аппроксимации его примитивами (полигонами, представленными B-сплайновыми поверхностями).

Кроме того, при решении описывающей функции в виде неравенства F(X) 0, можно визуализировать не только поверхность, но и внутреннюю структуру объекта.

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

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

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

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

2.1.6. Моделирование текстуры Для придания более естественного вида сцене желательно иметь возможность менять параметры поверхности (в простейшем случае цвет) в зависимости от положения точки на ней.

Существуют разные способы моделирования текстуры, но практически все они подразделяются на два основных класса:

• проективные текстуры;

• процедурные (сплошные - solid) текстуры.

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

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

Поэтому в практических задачах, как правило, используется лишь небольшое количество стандартных вариантов проектирования: плоское (параллельное проектирование вдоль заданного направления), цилиндрическое и сферическое. Для параметрически заданных поверхностей часто в качестве проекции точки (x(u, v), y(u, v), z(u, v)) выступают значения параметров (u, v).

Второй путь не требует больших затрат памяти и одинаково хорошо работает с объектами любой (сколь угодно сложной) формы.

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

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

В данном дипломном проекте будут реализованы оба этих подхода.

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

2.2. Аналитический обзор существующих систем синтеза воксельной графики В процессе дипломного проектирования был рассмотрен ряд существующих систем компьютерной графики с применением вокселей. В их числе: TRACY RENDERER [4], VOXLAP5 engine [5], Voxel World Renderer [6] В таблице 2.1 представлены сравнительные характеристики систем.

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

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

Выделим основные достоинства разрабатываемой системы:

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

• Виртуализация пространства на основе трехмерных массивов • Возможность наложения как программно-генерируемых текстур • Возможность наложения текстур изменяющих свойства материала • Возможность экспорта (растеризации) готовых сцен в популярные форматы (JPG, GIF, PNG, TIFF, TGA) • Переносимость продукта на популярные платформы (Unix, Windows, Mac, ОС мобильных устройств и т.д.) • Кластеризация расчетов (Разделение рендера на независимые Описанные преимущества дают гибкий метод задания объектов, без детального описания каждого, возможность переноса на множества платформ, ускорение растеризации за счет кластеризации расчетов. Это говорит о преимуществе разрабатываемой системы перед аналогами.

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

• Программист, со знанием c++ для задания содержания сцен • Знания трехмерной графики для задания свойств объектов и их • Для расширения системы: добавление объектов, текстур, возмущений, необходимы так же знания по векторной математике и математическом анализе • Для компиляции проекта требуются знания по установке и использованию сборщиков qmake и компиляторов c++ Система может быть запущена на одном или нескольких компьютерах (объединенных в кластер), но число одновременно работающих пользователей равно одному.

Стандартное рабочее место должно комплектоваться:

• Системны блок (Процессор, видеокарта, ОЗУ, жесткий диск) Выдвигаются следующие минимальные требования к рабочему месту:

• Процессор с частотой > 800 МГц • Видеокарта с поддержкой 32 бит цвета • Жесткий диск около 100 Мбайт для хранения программы Повышенные требования предъявляются к процессору, из-за большого объема математических расчетов.

Входными данными является описание объектов сцены на языке c++.

3.2. Определение функциональности программной системы Основные функции:

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

• Виртуализация пространства на основе трехмерных массивов • Освещение сцены точечными, сферическими и коническими источниками света • Возможность наложения как проективных текстур (из файла), так и программно-генерируемых • Возможность наложения текстур изменяющих свойства материала и вектора нормали • Кластеризация расчетов (Разделение рендера на независимые Дополнительные:

• Возможность экспорта (растеризации) готовых сцен в популярные форматы (JPG, GIF, PNG, TIFF, TGA) • Переносимость продукта на популярные платформы (Unix, Windows, Mac, ОС мобильных устройств и т.д.) 3.3. Система приоритетов при разработке программной системы • Реалистичность изображения: полученные сцены должны максимально точно отображать реальную физическую среду.

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

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

Наличие следующих программных средств достаточно, чтобы выполнить программу:

• ОС: Windows, Mac, *nix, *bsd, Windows Mobile, Symbian S60 и д.р.

Программная система выполнена в виде монолитного приложения из одного исполняемого файла, для поддержки функционирования необходимы следующие программные модули – библиотеки:

• Поддержка форм и графических элементов: QtGuid4.dll • Поддержка много поточности и блокировок: QtCored4.dll • Поддержка специфичных функций компилятора: mingwm10.dll Для межпроцессорного взаимодействия будут использоваться структуры данных в общей области данных.

Структура будет иметь примерно следующий вид:

class TraceThread : public QThread { double HalfWidth, HalfHeight; //Размер обрабатываемой области protected:

4.2. Выбор инструментальных средств разработки 4.2.1. Выбор языка программирования На сегодняшний день все выбранные платформы поддерживает только языка программирования: Java, C++, транслируемые языки.

Рассмотрим каждый из них подробней, чтобы сделать выбор:

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

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

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

Оптимальным вариантов по скорости и гибкости является – C++.

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

Также платная среда, с встроенным компилятором, не позволяющим создавать многоплатформенные приложения.

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

Из представленного сравнения можно сделать однозначный выбор среды разработки – это Eclipse Platform.

4.2.3. Выбор компилятора В качестве компилятора может выступать любой компилятор C++ для данной операционной системы. В данном дипломном проекте это MinGW.

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

4.2.4. Выбор прочих средств разработки В качестве средства для многоплатформенной поддержки приложения выбрана библиотека QT Software[7]. QT позволяет создавать приложения с единым исходным кодом, но переносимым на различные платформы. Это достигается за счет подмены пользовательских вызовов на родные для текущей операционной среды. Распространяется по лицензии GPL.

Для поддержки разработки на C++ в среде Eclipse выбрано расширение Eclipse Ganymede CDT.

Для интеграции Eclipse и QT выбран модуль Qt Eclipse Integration.

4.3. Проектирование структур данных, иерархии классов и алгоритмов В проекте реализована собственная иерархия классов. Она представлена в приложении Г. Объектно-ориентированные показатели архитектуры представлены в таблица 4.1.

Объектно-ориентированные показатели архитектуры 4.3.1. Описание структур данных Можно выделить основные ветки наследования Базовый объект class GObject {// model of an

Abstract

geometric object SurfaceData DefMaterial; // default material virtual ~GObject (); // force virtual destructor void FindTexture ( Vector& p, SurfaceData& t );

void FindPerturbation ( Vector& view );

virtual int Intersect ( Ray&, double& ) = 0;

virtual Vector FindNormal ( Vector& ) = 0;

Один из главных структур приложения. Объект реализует заготовку квадрики второго порядка.

Хранит данные о следующих элементах системы:

• DefMaterial – материал;

• Mapping – произвольное проектирование текстуры;

Содержит необязательные методы:

• FindTexture – поиск текстуры для данной точки обзора • FindPerturbation – поиск возмущения для данной точки обзора • Add – добавление текстур и возмущений над базовой поверхностью И обязательные методы:

• Intersect – определение факта пересечения луча и объекта. Если луч пересекается с объектом, то рассчитывается также расстояние до точки;

• FindNormal – направление вектора нормали в точке пересечения;

• ~GObject – деструктор, очищающий память Базовый источник света:

class LightSource { // model of an abstract light source virtual ~LightSource () {}; // force virtual destructor virtual double Shadow ( Vector&, Vector& ) = 0;

Класс определяет один элемент:

И требует реализацию обязательных методов:

• ~LihtSource – деструктор, очищающий память • Shadow – количество энергии от данного источника света доступного в конкретной области пространства.

Текстура class Texture {// generic texture class virtual void Apply ( Vector& p, SurfaceData& t ) = 0;

Класс определяет 4 элемента:

• object – объект к которому применяется текстура • Offs – расположение текстуры • Scale – коэффициент увеличения И 2 обязательных метода:

• Apply – применение текстуры к объекту. Метод получает внутрь значения луча обзора и данные о материале. Это позволит изменять параметры вектора нормали и характеристики материала.

• ~Texture – деструктор, очищающий память Возмущение class Perturbation {// generic perturbation class Класс определяет 1 элемент:

• Object – объект для которого применяется возмущение И 2 обязательных функции:

• Apply – применение возмущения к объекту. Метод получает внутрь значение луча обзора.

• ~Perturbation – деструктор, очищающий память Также будут интересны несвязанные структуры данных:

Характеристика преломления материала struct Medium { // main properties of the medium double nRefr; // refraction coefficient double Betta; // attenuation coefficient Структура определяет коэффициент преломления и коэффициент затухания.

Характеристики материала struct SurfaceData { // surface characteristics at a given point double Ka; // ambient light coefficient //фон double Kd; // diffuse light coefficient //диф отраж double Ks; // specular light coefficient //зеркальный double Kr; // reflected ray coefficient //отраженный double Kt; // transparent light coefficient //преломленный Vector Color; // object's color Medium Med; // medium of the object int p; // Phong's coeff.

Vector n; // normal at a given point Vector MapCoord; //mapping coordinates Структура определяет следующие параметры:

• Ka – коэффициент фонового освещения • Kd – диффузионное отражение от объекта • Ks – коэффициент зеркального отражения • Kr – отражающая способность материала • Kt – коэффициент преломления • Med – характеристика преломления материала • MapCoord – координата текстуры Список всех объектов сцены class Environment { // simplest model of environment{ LightSource * Light [_MAX_LIGHTS];

Environment () { LightsCount = SolidsCount =0; };

virtual GObject * Intersect ( Ray&, double& );

virtual Vector ShadeBackground ( Ray& );

Класс определяет список всех объектов сцены:

• Light – массив источников света • LightsCount – число источников света • Solid – массив объектов сцены • SolidsCount – число объектов сцены Три обязательных метода:

• Intersect – ближайшее пересечение луча обзора и объектов сцены.

Метод возвращает расстояние до ближайшего объекта.

• ShadeBackground – цвета фона сцены • ~Environment – деструктор, очищающий память И 2 необязательных:

• Add – добавление источника света • Add – добавление объекта сцены class Ray { Класс определяет луч в сцене Класс трехмерного вектора (class Vector), класс определяет стандартные функции для работы с трехмерными векторами (всего 23 функции) 4.3.2. Описание алгоритмов программы Алгоритм трассировки лучей был подробно описан в разделе 2.1.2.

«Основная модель трассировки лучей», а теория разрабатываемых алгоритмов достаточно подробно описана в разделе 2.1. «Теоретические основы»

Также основные алгоритмы представлены в приложения Д и Ж.

Приведем словесное описание некоторых из них (Касающихся темы диплома или наиболее интересных):

1. Возмущение квадрика Функция возмущения применяется для одного из объектов сцены. Также, чаще всего, возмущающая функция может быть применена только для одного типа объекта. Это обусловлено спецификой задания размеров для каждого геометрического примитива (Так для сферы – это радиус, параллелепипеда – высота и т.д.) Возмущения объекта происходит в самом начале трассирования луча для текущего пикселя, чтобы в первую очередь изменить геометрические свойства объекта, а потом найти точку пересечения и вектор нормали.

2. Текстурирование объекта Так как наложение текстуры происходит для конкретной точки объекта, то эта операция выполняется после нахождения точки пересечения, но до вычисления вектора нормали.

Любая текстура может изменить как любые свойства материала, так и вектор нормали.

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

Одним из наиболее распространенных и мощных средств, используемых для борьбы с этими дефектами, является так называемая распределенная трассировка лучей (Distributed Ray Tracing).

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

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

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

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

4. Кластеризация расчетов на потоки Так как в современном мире резко растет число многоядерных[10], и отдельные рабочие станции уже давно возможно объединять в единые вычислительные центры – кластеры, то целесообразно создавать приложения способные использовать все возможности оборудования.

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

Можно выделить несколько подходов разделения:

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

• Деление сцены на равные части по загруженности Этот метод хоть и даст равномерную загруженность ядер, но сложен в подготовительном этапе – поиска равных долей сцены.

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

Данный метод максимальной эффективен, но сложен с точки реализации:

хранение выполненных элементов, постоянная смена контекста.

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

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

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

Необходимость определения факта пересечения с каждыми из них • Геометрическая форма объекта Чем сложней форма объекта, тем сложней найти точку пересечения с ним и тем сложней вычислить вектор нормали Необходимость генерации процедурной текстуры для объекта. Зависит от сложности математического описания текстуры.

Расчет формулы функции возмущения. Зависит от сложности математической формулы.

Способы повышения скорости алгоритма Исследования [11] показывают линейный рост скорости расчетов за счет их независимого распараллеливания.

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

Предлагается еще на этапе заполнения сцены отсечь невидимые поверхности. Подробней об этом можно прочитать в [12].

Текущая реализация производит поиск точки пересечения с такими объектами все равно.

• Бинарное разделение пространства Сцена может быть заполнена не равномерна, и в процессе вычислений нужно как можно быстрей отбросить большие, но пустые области. Подробней об этом можно прочитать в [13].

Текущая реализация производит по пиксельный рендер, не зависимо от заполнения сцены.

• Перенос части вычислений на видеокарту Сравнительно недавно появилась возможность использовать видеокарту в качестве мощных вычислительных единиц. Инструменты, предоставленные Nvidia, дают возможность писать программы для графического процессора (GPU) на подмножестве языка С++. Технология имеет название CUDO, подробней о ней можно прочитать в [14].

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

Такого оборудования на текущий момент не существует, но есть вероятность его скорого появления. Информацию на уровне слухов можно прочитать в [15], [16].

4.4. Проектирование пользовательского интерфейса Программа носит научно исследовательский характер и в итоге не оформлена в виде готового прикладного приложения. Как сказано в п. 3. «Анализ предметной области разработки» основным пользователем системы является программист, следовательно основным пользовательским интерфейсом является среда разработки.

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

5. Реализация программной системы 5.1. Особенности реализации системы Рассмотрим реализация некоторых алгоритмов описанных в п. 4. В трассировки лучей два алгоритма имеют ключевое значение – это поиск точки пересечения (Функция Intersect объекта GObject) и поиск вектора нормали (FindNormal объекта GObject). Данные алгоритмы индивидуальны для каждой трехмерной фигуры, рассмотрим на примере сферы:

1. Поиск пересечения со сферой:

int Sphere :: Intersect ( Ray& ray, double& t ) { Vector l = Loc - ray.Org; // вектор направления double L20C = l & l; // расстояние double tca = l & ray.Dir; // ближайшее расстояние до центра double t2hc = Radius2 - L20C + tca*tca;

if ( t2hc GeomThreshold;

2. Поиск вектора нормали Вектор нормали сферы всегда направлен из центра к ее поверхности Vector Sphere :: FindNormal ( Vector& p ) { return ( p - Loc ) / Radius;

3. Поиск первоначальной освещенности точки. Рассмотрим на примере точечного источника света.

double PointLight :: Shadow ( Vector& p, Vector& l ) { l = Loc - p; // вектор к источнику света double Dist = !l; // дистанция до источника света double Attenuation = DistScale / Dist; // коэффициент затухания double t; //дистанция до объекта l /= Dist; // нормализация Ray ray ( p, l ); //испускаем луч SurfaceData Texture;

GObject * Occlude;

// для каждого источника света Attenuation = Attenuation * Attenuation;

//для каждого объекта сцены, с которой есть пересечение //и объект лежит ближе, чем источник света while ((Occlude = Scene->Intersect(ray, t)) != NULL && Dist>t) { Occlude -> FindTexture ( ray.Org = ray.Point ( t ), Texture );

//увеличиваем коэффициент аттенюации if ( ( Attenuation *= Texture.Kt ) < Threshold ) return 0;

return Attenuation;

4. Применение текстуры к объекту. Пример рельефной текстуры волны:

void Ripples :: Apply ( Vector& p, SurfaceData& t ) { //формула воды t.n += r * Amount * sin(2 * M_PI * l / WaveLength + Phase) / (1 + l * l);

t.n = Normalize ( t.n );

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

void Apply (Vector& view) { //функция возмущения sp->Radius = startRadius + 1.5*startRadius*sin(view.x)*cos(view.y);

sp->Radius2 = sp->Radius * sp->Radius;

6. Алгоритм трассировки лучей Vector Trace ( Medium& CurMed, double Weight, Ray& ray ) { GObject * Obj;

double t = _INFINITY;

Vector Color;

Vector tmp;

Level++;

TotalRays++;

if ( ( Obj = Scene->Intersect ( ray, t ) ) != NULL ) { Color = Shade ( CurMed, Weight, tmp, ray.Dir, Obj );

Color = Scene->ShadeBackground ( ray );

return Color;

// расчет освещения света Vector Shade ( Medium& CurMed, double Weight, Vector& p, Vector& View, GObject * Obj ) { SurfaceData txt;

Vector l; // вектор света double Sh; // коэффициент освещения Obj->FindTexture ( p, txt ); //получение текстуры, вектора нормали и т.д.

Color = Ambient * txt.Color * txt.Ka; // первичный цвет, фоновое освещение for ( int i = 0; i < Scene->LightsCount; i++ ) { if (( Sh = Scene->Light[i]->Shadow( p, l ) ) > Threshold ) { txt.Color*(txt.Kd * Sh * In); //добавление света от каждого источника pow (txt.n&h, txt.p)); //изменение цвета объекта, цветом источника света double rWeight = Weight * txt.Kr; // отраженный double tWeight = Weight * txt.Kt; // преломленный // проверка на отражение if ( rWeight > Threshold && Level < MaxLevel ) { Color += txt.Kr * Trace ( CurMed, rWeight, ray ); //рекурсивный вызов // проверка преломленного if (tWeight > Threshold && Level < MaxLevel) { double Eta = CurMed.nRefr/(Entering?txt.Med.nRefr:Air.nRefr);

if ( ctSq > Threshold ) { // не полностью преломился return Color;

7. Кластеризация расчетов. Класс определяет отдельный поток.

class TraceThread : public QThread { double HalfWidth, HalfHeight, hx, hy;

protected:

(int)round(Color.y * 255), (int)round(Color.z * 255)));

5.1.1. Оценка объема исходного кода Количество строк исходного кода около 3500. Число классов 25, из них абстрактных, 198 методов, 7 структур данных, 12 отдельных процедур и функций. Экранная форма – одна.

5.2. Внешний вид сцен Примеры сцен можно увидеть на рисунках 5.1 – 5.8.

Рис. 5.1 – Общий вид сцены Рис. 5.2 – Отражения и эффект алиасинга Рис. 5.3 – Устранение эффекта алиасинга Рис. 5.4 – Рельефное текстурирование Рис. 5.5 – Зашумление текстур Рис. 5.6 – Возмущение сферы Рис. 5.7 – Возмущение плоскости скалярной функцией Рис. 5.8 – Отображение трехмерного массива вокселей 6. Тестирование программной системы 6.1. Обоснование методики тестирования Разрабатываемая система по своей сути является библиотекой и внешне пользователю предстает как одна форма с отображенной сценой. Исходя из этого можно сказать, что основным методом будет являться метод белого ящика – тестирования исходного кода.

Протестируем модули программы на основе данных по следующим параметрам:

Критерий завершения – естественное отображение объектов, соответствую объектам из реальной жизни.

• Зависимость скорости работы от размера сцены, с одинаковым Критерием завершения является выполнение не менее 5 итерации теста.

Ожидается увидеть линейный рост времени работы при увеличении размеров сцены.

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

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

#include "../tracer/Vector.h" #include "../tracer/Tracer.h" #include "../tracer/Render.h" #include "../tracer/Geometry.h" #include "../texture/map.h" #include "../texture/planemap.h" #include "../texture/brick.h" QImage * test8() { Vector t1, t2, t3, t4;

Scene = new Environment();

//освещение t1 = Vector(10, 5, -10);

PointLight * Light1 = new PointLight(t1, 17);

Scene->Add(Light1);

//основа дома t1 = Vector(0, 1, 4);

Box * b = new Box(t1, t2, t3, t4);

b->DefMaterial.Ka = 0.2;

b->DefMaterial.Kd = 0.5;

b->DefMaterial.Ks = 0.6;

b->DefMaterial.Kr = 0.0;

b->DefMaterial.Kt = 0.0;

b->DefMaterial.p = 30;

b->DefMaterial.Color = Vector(0.59608, 0.298, 0);

b->DefMaterial.Med = med;

t1 = Vector(0.5,0.2,0.5);

t2 = Vector(0.05);

t4 = Vector(0.5);

t3 = Vector(0.9, 0.4, 0.3); //Firebrick b->Add(new Brick(t1, t2, t3, t4));

Scene->Add(b);

t1 = Vector(0, 1, 0);

Plane *p = new Plane(t1, 1);

p->DefMaterial = b->DefMaterial;

p->DefMaterial.Ka = 0.4;

p->DefMaterial.Ks = 0.5;

p->DefMaterial.Kd = 0.4;

p->DefMaterial.Kr = 0;

p->DefMaterial.Color = Vector(0, 1, 0);

QImage * img_ = new QImage("c:/diplom/src/voxel/debug/Grass.bmp");

ColorMap * cmap = new ColorMap ( img_ );

cmap -> Scale = 100;

t1 = Vector(1);

t2 = Vector(1, 0.5, 0);

p -> Mapping = new PlaneMap(t1, t2);

p -> Add ( cmap );

Scene->Add(p);

//шар t1 = Vector(-1.5, 0.9, 5);

Sphere *s1 = new Sphere(t1, 1);

s1->DefMaterial.Ka = 0.5;

s1->DefMaterial.Kd = 0.5;

s1->DefMaterial.Ks = 0.6;

s1->DefMaterial.Kr = 0.0;

s1->DefMaterial.Kt = 0.5;

s1->DefMaterial.p = 30;

s1->DefMaterial.Color = Vector(1, 1, 0);

Scene->Add(s1);

//зеркало t1 = Vector(5.5, 0.001, 4);

t2 = Vector ( 1, 0, 0.6 );

t3 = Vector ( -0.1, 2, 0 );

t4 = Vector ( 0, 0, 3 );

Box * r = new Box(t1, t2, t3, t4);

r->DefMaterial.Ka = 0.2;

r->DefMaterial.Kd = 0.5;

r->DefMaterial.Ks = 0.6;

r->DefMaterial.Kr = 1; //зеркало r->DefMaterial.Kt = 0.0;

r->DefMaterial.p = 30;

r->DefMaterial.Color = Vector(1, 0, 0);

Scene->Add(r);

//шар2 (в зеркале) t1 = Vector(4.5, 0.9, 5.5);

Sphere *s2 = new Sphere(t1, 0.5);

s2->DefMaterial = s1->DefMaterial;

s2->DefMaterial.Color = Vector(1, 0, 0);

Scene->Add(s2);

//шар3 с текстурой из файла t1 = Vector(0.5, -0.8, 2);

Sphere *s3 = new Sphere(t1, 0.2);

s3->DefMaterial = s1->DefMaterial;

s3->DefMaterial.Color = Vector(1, 0.5, 0);

Scene->Add(s3);

//стенка слева t1 = Vector(-5.5, -1, 4);

Box * b1 = new Box(t1, t2, t3, t4);

b1->DefMaterial = r->DefMaterial;

b1->DefMaterial.Kr = 0;

b1->DefMaterial.Ka = 0.4;

b1->DefMaterial.Kd = 0.4;

b1->DefMaterial.Color = Vector(0.3,0.3,0.3);

img_ = new QImage("c:/diplom/src/voxel/debug/LIMESTO1.JPG");

cmap = new ColorMap ( img_ );

cmap -> Scale = 200;

t1 = Vector(1);

t2 = Vector(1, 0.5, 0);

b1 -> Mapping = new PlaneMap(t1, t2);

Scene->Add(b1);

Background = Vector(0.196078, 0.6, 0.8 ); //sky blue t1 = Vector(0);

t2 = Vector(0, 0, 1);

t3 = Vector(0, 1, 0);

SetCamera(t1, t2, t3);

return RenderScene(1.5, 1.0, 900, 600);

Результатом теста является рис. 6.1. Все объекты отобразились, как и должны, тест можно считать успешно пройденным.

2. Протестируем скорость работы от размеров сцены. Для теста возьмем простую сцену с одним шаром (Рис. 6.2) Рис. 6.2 – Сцена с одним объектом и одним источником света Зависимость скорости работы от размера сцены Из таблицы 6.1 становится понятно, что скорость работы линейно зависит от размера сцены. Следовательно, тест можно считать выполненным.

3. Протестируем зависимость скорости поток от числа ядер системы.

В качестве тестируем сцены возьмем заготовку из предыдущего теста.

Размер сцены установим в 1000 на 1000 пикселей.

Результаты в таблице 6.1:

Зависимость скорости работы от числа ядер системы Число ядер Общее время (мс) Среднее время (мс/пиксель) Из проведенного теста виден линейный рост производительности. Если принять скорость выполнения на одном ядре за эталонное, то можно считать, что время работы на многоядерной системе будет равна время/число ядер.

Вследствие чего можно считать тест выполненным.

Результаты других визуализации можно просмотреть в п. 5.2 «Внешний вид сцен»

Таким образом, было проведено комплексное тестирование разработанной системы и доказано соответствие её предъявленным требованиям.

7. Внедрение системы 7.1. Руководство пользователя Так как разрабатываемая система является библиотекой разработчика, то основным пользователем является программист. Основной задачей пользователя будет создание сцена на основе разработанной библиотеки.

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

Программа включает возможности:

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

• Виртуализация пространства на основе трехмерных массивов • Освещение сцены точечными, сферическими и коническими источниками света • Возможность наложения как проективных текстур (из файла), так и программно-генерируемых • Возможность наложения текстур изменяющих свойства материала и вектора нормали • Возможность экспорта (растеризации) готовых сцен в популярные форматы (JPG, GIF, PNG, TIFF, TGA) Windows, Mac, ОС мобильных устройств и т.д.) • Кластеризация расчетов (Разделение рендера на независимые Система разработана под управление среды разработки Eclipse на языке c+ 2. Описание установки Программная система не требует установки. Для возможности использовать библиотеку необходимо лишь импортировать исходные коды в проект пользователя.

3. Инструкция по работе Для начала работы с системой необходимо экспортировать файл Geometry.cpp для задания объектов, файл Render.cpp для начала отображения графики.

4. Описание функций составных частей Составные функции описаны в п. 4.3 «Проектирование структур данных, классов и алгоритмов»

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

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

скомпилированных ресурсов библиотек: qtcore.dll, qtguid.dll, mingw.dll.

3. Структура программы:

• Tracer – директория с исходными кодами алгоритма трассировки • Geometry.cpp – список примитивов второго порядка • Render.cpp – функции для рендера сцены • Texture – директория с процедурными текстурами • Perturbation – директория с исходными кодами скалярных и аналитических функций возмущения • Scene – директория с исходными кодами сцен 4. Настройка программы После установки программы, система уже имеет все необходимые настройки для средней сцены. Если же необходимо сменить какие либо настройки, то необходимо отредактировать файл: tracer/config.h Пример файла конфигурации:

#define _MULTY_THREAD true #define _MULTY_THREAD_PRIORITY QThread::TimeCriticalPriority #define _MULTY_THREAD_COUNT QThread::idealThreadCount() #define _MAX_LEVEL_RECURSION #define _MULTY_THREAD_LOCK true 5. Проверка программы Для проверки программы необходимо и достаточно смоделировать все возможные объекты, определенные в системе, наложить на них все возможные текстуры и функции возмущения.

8. Организационно-экономическая часть 8.1. Анализ и оценка стоимости объекта интеллектуальной собственности 8.1.1. Анализ объекта интеллектуальной собственности Понятие "интеллектуальная собственность" определено международным правовым актом – Конвенцией, учреждающей Всемирную организацию интеллектуальной. В Конвенции дана следующая формулировка:

"интеллектуальная собственность" включает права, относящиеся к:

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

Это определение использовалось в ряде нормативных актов РФ по вопросам международного научно-технического сотрудничества.

Согласно ст. 1225 IV части Гражданского Кодекса Российской Федерации перечень охраняемых результатов интеллектуальной деятельности и средств индивидуализации включает в себя:

произведения науки, литературы и искусства;

программы для электронных вычислительных машин (программы для ЭВМ);

• сообщение в эфир или по кабелю радио- или телепередач (вещание организаций эфирного или кабельного вещания);

• промышленные образцы;

• селекционные достижения;

• топологии интегральных микросхем;

• секреты производства (ноу-хау);

• фирменные наименования;

• товарные знаки и знаки обслуживания;

• наименования мест происхождения товаров;

• коммерческие обозначения. [18] Результатом разработки данного проекта является библиотека программиста для визуализации трехмерной графики с применением функций возмущения и трехмерных массивов вокселей. Объект является интеллектуальной собственностью программиста-разработчика и имеет следующие отличительные особенности от аналогов:

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

• Возможность наложения как проективных текстур (из файла), так и программно-генерируемых.

• Возможность наложения текстур изменяющих свойства материала и вектора нормали • Растеризация готовой сцены в популярные форматы (gif, jpg, tif и Windows, Mac, ОС мобильных устройств и т.д.) • Кластеризация расчетов (Разделение рендера на независимые Основные цели разработки данного программного обеспечения:

• Повышение скорости работы;

• Добавление новых возможностей • Добавление возможностей переносимости • Основные функции данной программы для визуализации графики:

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

8.1.2. Подходы к оценке стоимости объекта интеллектуальной собственности На сегодняшний день существует несколько подходов к оценке интеллектуальной собственности. Подход к оценке стоимости — общий способ определения стоимости, в рамках которого используются один или более методов оценки [19].

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

Для оценки стоимости нематериальных активов могут применяться подхода:

1. Доходный.

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

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

Основные методы доходного подхода к оценке:

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

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

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

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

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

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

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

ж. Правило 25%. Это правило, называемое в ряде источников “правилом бегунка” или “правилом большого пальца”, является родственным методу освобождения от роялти, но в отличие от последнего, оно не требует проведения анализа рынка. В его основе также лежит предположение о том, что объект нематериальных активов не принадлежит владельцу, а предоставлен ему на лицензионной основе, но в отличие от метода освобождения от роялти в качестве показателя дохода обычно используется не выручка, а прибыль до уплаты налогов. Согласно “правилу бегунка”, выгода от использования нематериального актива распределяется следующим образом: 25% владельцу объекта интеллектуальной собственности, 75% - покупателю лицензии. Такое распределение достаточно хорошо подтверждается опытом лицензирования.

1. Рыночный (сравнительный).

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

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

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

2. Затратный.

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

На основе затратного подхода определяют стоимость воспроизводства.

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

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

Выделяют несколько методов расчета стоимости по затратному подходу:

a) метод стоимости создания. Этот метод предполагает определение полной стоимости замещения или восстановления нематериального актива.

произведенным затратам за период расчета определяется по формуле 8.1:

Зr - сумма всех затрат, связанных с созданием и охраной объекта интеллектуальной собственности, рассчитываемая по формуле 8. З р - затраты на разработку объекта интеллектуальной собственности З п - затраты на правовую охрану объекта интеллектуальной собственности З м - затраты на маркетинг объекта интеллектуальной собственности;

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

k индексации r - коэффициент индексации, учитывающий изменение индекса цен в определенной отрасли производства в -ом году.

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

- фактический срок действия Tн - номинальный срок действия b) метод сравнительной единицы. Этот метод предполагает расчет стоимости разработки сравнительной единицы аналогичного программного продукта.

c) метод разбивки по компонентам. Этот метод предполагает разбивку оцениваемого программного продукта на отдельный компоненты. Стоимость каждого компонента получают исходя из суммы прямых и косвенных затрат.

d) метод количественного обследования. Данный метод основан на применении детального количественного расчета затрат на разработку отдельных компонентов. Составляется полная смета воссоздания оцениваемого объекта.

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

Рассчитаем методом стоимости создания:

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

Следовательно по формуле (3) k прив r = Примем k индексации r = Затраты на разработку З = 116500 руб.

Затраты на правовую охрану. Т.к. библиотека свободно распространяемая по лицензии GNU GPL, то З = 0 руб.

Затраты на маркетинг не проводились, З = 0.

Время разработки = 1 год Тогда, по формуле (1) получим затратную стоимость:

собственности затратным подходом, методом стоимости создания.

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

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

Затраты – все денежные средства, необходимые для разработки данного программного продукта.

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

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

Расчет электроэнергии для восьмичасового рабочего дня приведен в таблице 8.1.

Расчет электроэнергии для восьмичасового рабочего дня Оборудование Стоимость электроэнергии для физического лица 1 кВт / ч = 2,2 руб.

В месяц 2,2*120= 264 рублей.

Программное обеспечение разрабатывалось с использованием Интернет ресурсов и книг в качестве источника информации, стороннего программного обеспечения в качестве среды разработки (среда разработки программного обеспечения – Eclipse Ganimede C++, компилятор MinGw, библиотека QT распространяемым по лицензии GNU GPL, соответственно в расходах на разработку не учитываются.

Стоимость работы программиста 16000 рублей/мес.

Расчет ежемесячных затрат на реализацию и внедрение программного обеспечения визуализации приведен в таблице 8.2.

Расчет ежемесячных затрат на реализацию и внедрение программного RПост = 16714 – постоянные ежемесячные расходы.

помещения и оборудования, она рассчитывается по формуле:

где Ф – первоначальная стоимость основных фондов по видам, руб.;

NA – норма амортизации по видам основных фондов, в %.

Годовую сумму амортизационных отчислений отразим в таблице 3.

Таким образом, годовая сумма амортизационных отчислений составляет 7200,8 рублей.

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

Рассчитаем сумму амортизационных отчислений для оборудования с учетом числа календарных дней на разработку программного обеспечения по формуле (8.6):

обеспечения с учетом работы над программой в течение 100 дней составят:

где ЗПмес – стоимость работы программиста в месяц, руб.;

Тфакт – число календарных дней на разработку библиотеки;

Д – число дней в периоде (месяц).

По формуле (8.7):

Отчисления на социальное страхование составят:

ЕСН = 18909,09 руб.

Расчет ежемесячных материальных затрат приведен в таблице 8.4.

Зм= 714 рублей в месяц Следовательно, затраты на период разработки программного продукта рассчитаем по формуле:

где Зм – ежемесячные затраты, руб.;

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

Д – число дней в периоде (месяц).

Подставив значения в формулу (8.8) получим:

Смета затрат на разработку представлена в таблице 8.5.

Таким образом сумма затрат на разработку составила 96854,18 рублей.

Определим экономическую эффективность Ээф:

Cr - стоимость объекта интеллектуальной собственности, руб.;

Сст – затраты на разработку программы, руб.

Показатель экономической эффективности > 1, следовательно, разработка оправдана и экономически выгодна.

8.3. Выбор и обоснование методики ценообразования разработки На момент разработки и внедрения программного продукта для визуализации трехмерной графики не известно какой доход может принести предприятию ее использование, а так же точно не известны стоимости приобретения, внедрения и сопровождения аналогичных по функциональности программных продуктов, однако известны затраты на разработку самого программного продукта, следовательно целесообразно рассчитывать стоимость программы с помощью затратного подхода Исходя из нормального уровня рентабельности 20% мы можем определить цену разработанной нами программы:

где Сст – затраты на разработку программы;

R – Планируемый уровень рентабельности.

По формуле (8.10) получаем:

Так как помещение и оборудование уже имеется в наличии, то затраты на разработку программного продукта составят 116225,016 рублей (в комплект входит необходимые библиотеки).

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

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

Тогда обоснованная (рыночная) цена разработки будет рассчитываться суммированием цены разработанного программной системы и уникального достоинства товара следующим образом:

Цр= Ц + Уникальное достоинство Цр = 116225,016 + 35000 = 151225,016 (руб.) Цена обоснована (рыночная), в сравнении с аналогами. Сравнение цен (в у.е., где у.е. = 30 руб.) аналогов представлены в таблице 8.6.

Система у.е.

Таким образом, была определена стоимость программного продукта с учетом стоимости аналогов и рентабельности 20%.

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

Создание высоко реалистичных эффектов в кинематографе (Отражения и преломления света, зеркальные и светящиеся объекты) Визуализация научных разработок, с повышенными требования к качеству изображения (Высокоточная передача глубины и объема, визуализация результатов томографии, географической разведки местности) Визуализация сложных природных эффектов (Горы, туман, лес и т.д.) Демонстрационные стенды (Тренажеры, промо ролики и т.д.) Данная система визуализации позволяет создавать высоко реалистичные сцены с минимумом базовых поверхностей за счет возмущения их. Библиотека может в ближайшем будущем служить заменой стандартных в наше время программ визуализации трехмерной графики DirectX, OpenGL, т.к.:

• Отвечает всем стандартным требованиям визуализации (Рендер трехмерных эффектов, наложение текстур);

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

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

Вследствие чего выдвигаются следующие способы коммерциализации библиотеки:

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

9. Безопасность и экологичность проекта.

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

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

Задачи БЖД сводятся к теоретическому анализу и разработке методов идентификации (распознавание и количественная оценка) опасных и вредных факторов, генерируемых элементами среды обитания (технические средства, технологические процессы, материалы, здания и сооружения, элементы техносферы, природные явления). В круг научных задач также входят:

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

Закон РФ от 05.03.92 N 2446-1 (ред. от 25.07.06) «О безопасности»

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

Федеральный закон от 21.12.1994 N 68-фз (ред. от 18.12.2006) «О защите населения и территорий от чрезвычайных ситуаций природного и техногенного характера» определяет общие для РФ организационно-правовые нормы в области защиты граждан от ЧС природного и техногенного характера.

Федеральный закон от 21.12.1994 N 69-фз (ред. от 18.12.2006) «О пожарной безопасности» определяет общие правовые, экономические и социальные основы обеспечения пожарной безопасности в РФ, регулирует вопросы пожарной охраны, уделяя большое внимание ее задачам и видам.

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

Федеральный закон от 17.07.1999 N 181-фз “Об основах охраны труда в Российской Федерации” (принят ГД ФС РФ 23.06.1999) устанавливает гарантии осуществления права трудящихся на охрану труда и обеспечивает единый порядок регулирования отношений в области труда между работодателями и работниками. В июле 1999 г. принята поправка к закону “Об охране труда”, касающаяся расследований несчастных случаев на производстве 9.1. Анализ опасных и вредных факторов пользователей ПЭВМ Работники вычислительных центров подвергаются воздействию низкоэнергетического, электромагнитного, ультрафиолетового и инфракрасного излучений, также воздействию статического электричества и шума.

Большое значение имеют параметры микроклимата в помещениях, т.к.

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

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

Комфортность, безопасность работы на персональным компьютером зависят:

• от параметров изображения на экране: от яркости и контрастности цветов знаков и фона; размера и типа знаков; мелькания и дрожи изображения;

• от условий работы: внешней освещенности экранов, расстояния от глаз оператора до экрана и угла наблюдения; от вида и характеристик источников света в помещении и бликов от них.

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

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

• длительное неизменное положение тела, вызывающее мышечноскелетные нарушения;

• постоянное напряжение глаз;

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

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

Вредный фактор - слабая проработка рабочего места операторов ЭВМ:

- слишком высокое расположение клавиатуры;

- неподходящее кресло;

- эмоциональные нагрузки;

- продолжительное время работы на клавиатуре.

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

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

Источниками шума на предприятиях являются сами ЭВМ, принтеры, центральная система вентиляции и кондиционирования. При выполнении основной работы на ВЦ уровень шума на рабочем месте не должен превышать 50 дБ. В помещениях операторов ЭВМ (без дисплеев) уровень шума не должен превышать 65 дБ. На рабочих местах в помещениях, где размещены шумные агрегаты вычислительных машин (принтеры и т.п.), уровень шума согласно СанПиН 2.2.2/2.4.1340-03 не должен превышать 75 дБ.

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

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

9.1.1. Опасные и вредные факторы при работе за мониторами.

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

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

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

Все требования, предъявляемые к электронно-лучевым (CRT) мониторам, делятся на 6 основных категорий. Во-первых двух объединены свойства, характеризующие визуальную эргономичность аппарата – четкость изображения и его стабильность. Четкость изображения оценивается по параметрам:

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

перпендикулярных линий. Среднее отклонение по высоте и ширине не должно быть не более 0, 02, а по диагонали – 0,03.

Уровень яркости – количество проецируемого света. Требуемое значение параметра – не менее 100 канделл на квадратный метр, а рекомендуемое – 125.



Pages:     || 2 |


Похожие работы:

«МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ УТВЕРЖДАЮ Декан факультета плодоовощеводства и виноградарства, доцент С.М. Горлов _ 2010 г. РАБОЧАЯ ПРОГРАММА дисциплины ГСЭ.Ф.07 ИСТОРИЯ САДОВОДСТВА для бакалавров 110202.65 Плодоовощеводство и вин-во Факультет Плодоовощеводства и виноградарства Кафедра Плодоводства Дневная форма обучения Вид...»

«Опубликован: Можаев А.С. Универсальный графоаналитический метод, алгоритм и программный модуль построения монотонных и немонотонных логических функций работоспособности систем. // Труды Международной научной школы: Моделирование и анализ безопасности, риска в сложных системах (МА БР – 2003). СПб.: СПбГУАП, 2003, С.101-110. ЗаЗарегистрирован: Библиотека программных модулей автоматического построения монотонных и немонотонных логических функций работоспособности систем и многочленов вероятностных...»

«ПРАВИТЕЛЬСТВО ИВАНОВСКОЙ ОБЛАСТИ ПОСТАН О В ЛЕНИЕ от 30.12.2013 № 574-п г. Иваново Об утверждении Территориальной программы государственных гарантий бесплатного оказания гражданам медицинской помощи на территории Ивановской области на 2014 год и на плановый период 2015 и 2016 годов В соответствии с федеральными законами от 21.11.2011 № 323-ФЗ Об основах охраны здоровья граждан в Российской Федерации, от 29.11.2010 № 326-ФЗ Об обязательном медицинском страховании в Российской Федерации,...»

«КРАЕВОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ НАЧАЛЬНОГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ПРОФЕССИОНАЛЬНОЕ УЧИЛИЩЕ № 79 П. КОШУРНИКОВО УТВЕРЖДАЮ: Зам. директора по УПР _И.Ф. Копнина _20г. РАБОЧАЯ ПРОГРАММА УЧЕБНОЙ ДИСЦИПЛИНЫ ОП.03. Техническое оснащение и организация рабочего места Профессия 260807.01 Повар, кондитер Нормативный срок обучения – 2 года и 5 мес. на базе основного общего образования 1 Рабочая программа учебной дисциплины разработана на основе Федерального...»

«РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ НЕФТИ и ГАЗА имени И.М. Губкина Утверждена проректором по научной работе проф. А.В. Мурадовым 31 марта 2014 года ПРОГРАММА вступительного испытания по направлению 27.06.01 - Управление в технических системах для поступающих в аспирантуру РГУ нефти и газа имени И.М. Губкина в 2014/2015 уч. году Москва 2014 Программа вступительного испытания по направлению 27.06.01 - Управление в технических системах разработана на основании требований, установленных...»

«Судовая и корабельная энергетика, ядерная и радиационная безопасность 2012-2013 гг. Оглавление Введение 1. Работы по Федеральным целевым программам 2. Работы по договорам с отечественными и зарубежными заказчиками 3. Перспективные исследования 4. Наши заказчики и партнеры, научно-технические услуги 5. Экспериментальная база 6. Доклады, выступления, публикации Атомная энергетика Традиционная углеводородная энергетика Анаэробная энергетика Ядерная и радиационная безопасность Безопасность ядерного...»

«МИНЗДРАВСОЦРАЗВИТИЯ РОССИИ Государственное бюджетное образовательное учреждение высшего профессионального образования ИРКУТСКИЙ ГОСУДАРСТВЕННЫЙ МЕДИЦИНСКИЙ УНИВЕРСИТЕТ (ГБОУ ВПО ИГМУ Минздравсоцразвития России) Фармацевтический факультет Кафедра общей химии УТВЕРЖДАЮ Проректор по учебной работе _А. В. Щербатых _ 20_ года РАБОЧАЯ ПРОГРАММА УЧЕБНОЙ ДИСЦИПЛИНЫ (МОДУЛЯ) АНАЛИТИЧЕСКАЯ ХИМИЯ _ наименование дисциплины (модуля) для специальности: 060301 Фармация Разработчик(и)/Составитель(и): Демченко...»

«1 СОДЕРЖАНИЕ Стр. 1. ОБЩИЕ ПОЛОЖЕНИЯ 5 Нормативные документы для разработки ООП по направлению 1.1. 5 подготовки Общая характеристика ООП 1.2. 7 Миссия, цели и задачи ООП ВПО 1.3. 8 Требования к абитуриенту 1.4. 8 ХАРАКТЕРИСТИКА ПРОФЕССИОНАЛЬНОЙ 2. 8 ДЕЯТЕЛЬНОСТИ ВЫПУСКНИКА ПО НАПРАВЛЕНИЮ ПОДГОТОВКИ 2.1. Область профессиональной деятельности выпускника Объекты профессиональной деятельности выпускника 2.2. Виды профессиональной деятельности выпускника 2.3. Задачи профессиональной деятельности...»

«Федеральное государственное образовательное учреждение высшего профессионального образования “Государственный технологический университет Московский институт стали и сплавов” ПРИМЕРНАЯ ОСНОВНАЯ ОБРАЗОВАТЕЛЬНАЯ ПРОГРАММА ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ПОДГОТОВКИ БАКАЛАВРОВ Москва 2008 Примерный учебный план подготовки бакалавров по направлению подготовки Нанотехнология с профилем подготовки Конструкционные наноматериалы Примерный Утверждаю Квалификация Выпускника учебный план -( )...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Кемеровский государственный университет Кафедра физиологии человека и животных и валеологии ПРОГРАММА кандидатского экзамена по специальности 19.00.02 - ПСИХОФИЗИОЛОГИЯ КЭ.А.03; цикл КЭ.А.00 Кандидатские экзамены основной профессиональной образовательной программы подготовки аспиранта по отрасли 03.00.00 Биологические науки Квалификация...»

«ТАМБОВСКОЕ ОБЛАСТНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ СРЕДНЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ТЕХНИКУМ ОТРАСЛЕВЫХ ТЕХНОЛОГИЙ ОБРАЗОВАТЕЛЬНАЯ ПРОГРАММА ПРОФЕССИОНАЛЬНОЙ ПОДГОТОВКИ ПРОФЕССИЯ МАНИКЮРША Тамбов 2010 1 ТАМБОВСКОЕ ОБЛАСТНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ СРЕДНЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ТЕХНИКУМ ОТРАСЛЕВЫХ ТЕХНОЛОГИЙ Рассмотрено на заседании Утверждаю: методического объединения Карпова Г.И. - директор_ Протокол № 2010 г. Номер регистрации от.

«Рабочая программа профессионального модуля Изготовление лекарственных форм и проведение обязательных видов внутриаптечного контроля разработана на основе Федерального государственного образовательного стандарта по специальности среднего профессионального образования 060301 Фармация. Организация разработчик: ГАОУ СПО АО АМК Разработчики: Дроздова О.В., преподаватель высшей квалификационной категории ГАОУ СПО АО Архангельский медицинский колледж Афанасьева Е.П., преподаватель ГАОУ СПО АО...»

«ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ УТВЕРЖДАЮ Ректор ВГУ, профессорВ.Т. Титов _2010 г. ПРОГРАММА повышения квалификации научно-педагогических работников федеральных государственных образовательных учреждений высшего профессионального образования по направлению ПРОБЛЕМЫ ПОДГОТОВКИ КАДРОВ ПО ПРИОРИТЕТНЫМ НАПРАВЛЕНИЯМ НАУКИ, ТЕХНИКИ, КРИТИЧЕСКИМ ТЕХНОЛОГИЯМ, СЕРВИСА....»

«Министерство образования и науки РФ федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Самарский государственный университет Химический факультет РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ Основы химии окружающей среды ОД.А.06; цикл ОД.А.00 Дисциплины по выбору аспиранта основной образовательной программы подготовки аспиранта по отрасли 02.00.00 – Химические науки, специальность 02.00.03 – Органическая химия Самара 2011 Рабочая программа составлена на...»

«Министерство образования и науки Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ УТВЕРЖДАЮ Председатель приёмной комиссии _Е.А. Ваганов 31 января 2014 г. ПРОГРАММА вступительного испытания в магистратуру в форме письменного экзамена Направление 22.04.02 Металлургия Магистерская программа 22.04.02.04 Современные технологии в управлении наукоемким производством металлургического...»

«КРАТКОЕ СОДЕРЖАНИЕ И ОСНОВНЫЕ ИТОГИ Программа имеет междисциплинарный характер, в ней участвуют исследователи научных учреждений Отделения историко-филологических наук, Отделения общественных наук, а также региональных отделений и центров РАН (СО РАН, УрО РАН, ДВО РАН). Структура Программы состоит из 8 направлений, включающих 144 проекта с финансированием РАН: Направление 1. Древнейшее наследие и истоки творческих начал человека. Координаторы: акад. Деревянко А.П., чл.-корр. Амирханов Х.А....»

«Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Московская государственная академия ветеринарной медицины и биотехнологии имени Лист 1/14 К.И.Скрябина Утверждаю: Проректор по НиИ Н.А.Балакирев _ 2014 г. Программа вступительного экзамена в аспирантуру по философии Москва 2014 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Московская государственная академия ветеринарной медицины и...»

«Министерство образования и науки РФ федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Самарский государственный университет Химический факультет РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ Химия природных соединений ОД.А.04; цикл ОД.А.00 Дисциплины по выбору аспиранта основной образовательной программы подготовки аспиранта по отрасли 02.00.00 – Химические науки, специальность 02.00.03 – Органическая химия Самара 2011 Рабочая программа составлена на...»

«АВТОНОМНАЯ НЕКОММЕРЧЕСКАЯ ОРГАНИЗАЦИЯ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ МЕЖДУНАРОДНЫЙ ГУМАНИТАРНО-ЛИНГВИСТИЧЕСКИЙ ИНСТИТУТ (МГЛИ) УТВЕРЖДАЮ: Ректор АНО ВПО МГЛИ: Г. А. Забелина 2014г. ПРОГРАММА вступительных испытаний по специальной дисциплине, соответствующей профилю Теория языка (направление подготовки: 45.06.01 – Языкознание и литературоведение) Москва, 2014 Утверждено на заседании кафедры иностранных языков МГЛИ, протокол №10 от 30.05.14г. Общие положения Цель вступительного испытания...»

«Национальная программа селеннзацин в Финляндии - влияние на диету, уровень в тканях и крови, и на здоровье Горные породы и почвы Финляндии бедны селеном. Его концентрация составляет только 0,03-0,10 мг/кг. В результате этого низок уровень селена (0,2-0,3 мг/кг) в сельскохозяйс­ твенных почвах. Низкие температуры и высокая влажность климата Финляндии, а также низкий pH и высокое содержание железа в почвах способствуют снижению селена и уменьшению форм, доступных для растений. Таким образом,...»






 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

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