XI Международная научно-практическая конференция студентов, аспирантов и молодых учёных «Молодёжь и современные информационные технологии» ___________________________________________________________________________ Матрицы коэффициентов записываются в отдельном файле и используются в процессе расчёта. Пример приведен на рисунке 8. Рис. 8. Пример матрицы коэффициентов Заключение В ходе выполнения работы была решена проблема описания блок-схемы надежности системы путём создания структурированного текстового файла по заданным правилам. Результаты работы используются для дальнейшего расчёта показателей надёжности технических систем. Литература 1. Острейковский В. А. Теория надежности: учебник для вузов / В.А Острейковский. – 2-е изд., испр. – М.: Высш. шк., 2008. – 463 с. 2. Шкляр, Виктор Николаевич. Надежность систем управления: учебное пособие / В. Н. Шкляр; Национальный исследовательский Томский политехнический университет (ТПУ). – Томск: Изд-во ТПУ, 2011. — 126 с. ИСПОЛЬЗОВАНИЕ KD-ДЕРЕВЬЕВ ДЛЯ УСКОРЕНИЯ РАБОТЫ ТРАССИРОВЩИКА ЛУЧЕЙ Григорьев А.И., Михайлов Е.В. Научный руководитель: Сорокин Николай Юрьевич, к.т.н., доцент кафедры ВТ ТОГУ Тихоокеанский государственный университет 680035, Россия, г. Хабаровск, ул. Тихоокеанская, 136 E-mail: [email protected] Введение Одна из основных задач компьютерной графики – это генерация реалистичных изображений. Если рассмотреть основные направления использования компьютерной графики, то можно выделить два фундаментально разных типа приложений: высококачественные не интерактивные приложения на одной стороне и быстрые интерактивные приложения на другой. В них используются разные методы генерации изображений. Очевидно, что для интерактивных приложений необходимо выбирать метод, обладающий наибольшей производительностью, но, как правило, такие методы весьма ограничены в возможностях представления реалистичных изображений. Одним из методов для построения изображения является трассировка лучей (ray tracing), который позволяет генерировать высококачественные реалистичные изображения, но за счет более высоких требований к вычислительным ресурсам системы. Основная идея метода состоит в имитации прохождения луча от источника света через различные поверхности до воображаемой камеры. Свет распространяется по прямым линиям. Имитация света так, как это выглядит в природе позволяет создавать различные оптические эффекты, такие как: преломление и отражение света, отбрасывание теней, изменение цвета и т.п. Трассировка лучей позволяет создавать более реалистичные изображения, чем обычные методы построчного рендеринга. Для повышения скорости расчетов трассировки предлагаются различные решения. Одно из таких – это использование ускоряющих структур. Одной из наиболее эффективных является kdдерево. При использовании kd-дерева мы непосредственно сталкиваемся с двумя проблемами: построение дерева и прослеживание луча в дереве. Решение этих проблем позволяет не только существенно повысить производительность трассировщика лучей, но и использовать его для рендеринга в интерактивном режиме. Kd-дерево Kd-дерево (k-мерное дерево) – особый вид бинарных деревьев поиска. Kd-деревья служат для упорядочивания точек в k-мерном пространстве. Узел дерева содержит следующую информацию: ось разбиения; границы объема; разбивающая плоскость; ссылки на левого и правого потомков; метка, которая говорит о том, что данный узел является листом; если данный узел является листом, то в нем хранится информация о примитивах, которые содержатся в текущем объеме Достоинства kd-дерева: адаптивное - позволяет быстро отсекать большие объемы пустого пространства; компактное - занимает мало памяти; простой и эффективный алгоритм прослеживания луча. Недостатки: трудоемкое построение с помощью оценочных функций. Построение kd-дерева Алгоритм можно представить следующим образом. a) добавить все примитивы в ограничивающий объем. Т. е. построить ограничивающий объ- 58 XI Международная научно-практическая конференция студентов, аспирантов и молодых учёных «Молодёжь и современные информационные технологии» ___________________________________________________________________________ ем, который будет соответствовать корневому узлу дерева; b) если примитивов в узле мало, или достигнут предел глубины дерева, то необходимо завершить построение; c) выбрать плоскость разбиения, которая разделит данный узел на два дочерних; d) добавить примитивы, пересекающиеся с объемом левого узла в левый узел, примитивы, пересекающиеся с объемом правого узла в правый; e) для каждого узла выполнять данный алгоритм рекурсивно, начиная с шага b. Основной проблемой в данном алгоритме является шаг 3. Существует несколько способов для выбора плоскости разбиения, рассмотрим их по порядку. 1. Разбиение по центру – самый простой, но не самый эффективный способ. Необходимо выбрать ось, а затем разбить объем по центру. Преимуществом данного метода является скорость построения. Сложность алгоритма – . 2. Разбиение по медиане – в данном случае объем разбивается так, что бы количество примитивов в правом и левом узле было одинаково. Благодаря этому можно построить сбалансированное дерево c одинаковой глубиной у всех листьев, что должно ускорить поиск. Однако, разделение по медиане производит множество узлов, содержащих небольшие пустые объемы, что ведет к увеличению числа шагов траверса и к снижению производительности. Сложность алгоритма – . 3. SAH – это выбор плоскости разделения через использование оценочной функции прогнозирования. С ее помощью можно оценить на сколько выгодно будет разбить текущий объем плоскостью-кандидатом. Для определения данной функции можно использовать вероятность попадания луча в ограничивающий объем и стоимость прослеживания луча в этом объеме [1]. В качестве вероятности можно использовать площадь поверхности объема, а в качестве стоимости – количество треугольников в нем. Функцию будем вычислять следующим образом: где CE – стоимость прослеживания пустого узла (некоторая константа). SA – площадь поверхности объема. N – число примитивов. Аргумент функции X – это одномерная координата плоскости разбиения. Необходимо выбирать плоскость разбиения так, что бы минимизировать данную функцию. Сложность алгоритма – . Обход kd-дерева Основная задача любого алгоритма рейтрейсинга – это эффективный поиск пересечения луча со сценой, состоящей из набора геометрических примитивов. Рассмотрим следующие алгоритмы. 1. Kd-tree traversal классический алгоритм поиска в kd-дереве [2]. Каждую точку луча можно определить как где O – это начальная координата луча, D – направление луча и t – расстояние от начала луча. Такое представление луча позволяет хранить точки входа и выхода луча в/из текущей вершины в виде двух значений t_near и t_far. Луч проходит через вершину в точке t_near и выходит в точке t_far. В этот момент возможны следующие ситуации. Если (см. рисунок 1, случай B), то луч пересекает «дальний» узел по отношению к направлению луча. Если (см. рисунок 1, случай A), то луч пересекает «ближний» узел. В ином случае луч пересекает оба узла (см. рисунок 1, случай С). Рис. 1. Варианты прохождения луча через узел 2. Пакетная трассировка – алгоритм пакетной трассировки не отличается от прослеживания одного луча, за исключение того, что прослеживается пакет лучей. Данный алгоритм можно адаптировать к технологиям параллельной обработки данных, например – SIMD инструкции. При использовании SIMD инструкций алгоритм становится зависим от пропускной способности памяти. Векторизация может сократить нагрузку на шину памяти, что теоретически позволяет сократить обмен данными на 75 % [1]. Результаты Для анализа производительности, мы реализовали на С++ библиотеку для работы с kdдеревьями и получили следующие результаты, представленные в таблицах 1-4. Таблица 1. Характеристики построенного kdдерева. Глубина дерева – 60. Количество примитивов – 130000. Размер сцены 3000x3000x3000px Пустых Метод Узлов Листьев листьев Центр 5735573 130000 5475575 Медиана 4619089 103337 4412416 SAH 2411766 1034291 2204909 Таблица 2. Трассировка лучей в количестве 1600000. Производительность. Характеристики дерева представлены в таблице 1 Один луч Пакеты Метод разбиения Время Луч/ с Время Луч/ c (сек) (сек) Центр 34,15 46852 19,62 81549 Медиана 49,60 32258 22,82 70113 SAH 28,34 56457 17,44 91743 59 XI Международная научно-практическая конференция студентов, аспирантов и молодых учёных «Молодёжь и современные информационные технологии» ___________________________________________________________________________ SAH Таблица 3. Трассировка лучей в количестве 1600000 в kd-дереве. Производительность. Характеристики дерева представлены в таблице 1 Число посещенных узлов (среднее), один луч Метод Шагов Пустых Листьев траверса листьев Центр 1324,25 27,8 1037 Медиана 1865,75 40 1585,25 SAH 875,25 25,5 605,25 Таблица 4. Трассировка лучей в количестве 1600000 в kd-дереве. Производительность. Характеристики дерева представлены в таблице 1 Число посещенных узлов (среднее), пакеты Метод Шагов Пустых Листьев траверса листьев Центр 1324,25 27,8 1037 Медиана 1865,75 40 1585,25 875,25 25,5 605,25 Заключение Исходя из полученных данных, можно сделать следующие выводы: несмотря на то, что оценочные функции требуют больших вычислительных ресурсов, благодаря им можно получить дерево, в котором трассировка лучей идет быстрее, чем в деревьях построенных грубыми методами. Так же стоит отметить, что весьма выгодным решением является использование пакетной трассировки, она позволяет прослеживать большее количество лучей за меньшее время. Литература 1. Wald I. Realtime Ray Tracing and Interactive Global Illumination. 2004 – 3 – 124с 2. Havran V, Kopal T, Bittner J, Zara J. Fast robust BSP tree traversal algorithm for ray tracing, 1998 УСТРОЙСТВО ДЛЯ ИЗМЕРЕНИЯ ТЕМПЕРАТУРЫ Гулин А.О. Томский политехнический университет 634050, Россия, г. Томск, пр–т Ленина, 30 E-mail: [email protected] Введение Температура как физическая величина является одним из определяющих параметров состояния, позволяющих контролировать протекание самых различных производственных процессов. Измерение температуры – важнейший источник информации о ходе физических явлений и об изменении состояния вещества. Поскольку из всех термодинамических функций состояния вещества температура наиболее изучена в метрологическом отношении, ее практически оказывается полезным измерять взамен прямого измерения ряда характеристик объекта, зависящих от его состояния и непосредственно интересующих технолога. К таким характеристикам относятся энергия вещества, его химическая активность, вязкость, твердость, изменение его химического или фазового равновесия, скорость изменения структуры, тепловое расширение, изменение электрических и магнитных свойств и т.д [1]. В то же время измерению температуры контактными методами с помощью термометров, приводимых в тепловой контакт с объектом измерения, присущи специфические трудности, резко возрастающие по мере повышения температуры. Эти трудности связаны с выбором материала для чувствительного элемента, которые бы обеспечивали стабильность показаний и минимальное воздействие на объект измерений, с выбором изоля- ционных материалов для электрических термометров. Погрешности, связанные при контактных измерениях с несовершенством теплового равновесия между термометром и объектом, с плохим тепловым контактом и посторонними тепловыми влияниями могут быть значительными. Для реализации специфических исследовательских задач на кафедрах МТМ и ПМЭ был изобретен прибор для автоматичесой фиксации точных значений температуры в течении времени в нескольких точках [2]. Изобретение относится к технике измерения физической температуры объекта с помощью термопары. Перед проектированием устройства был произведен поиск уже существующих аналогов и анализ их особенностей. Первым было найдено устройство для измерения температуры, патент РФ №2437068 от 2010.06.30 – пирометр, включающий первый и второй каналы, каждый из которых содержит оптоэлектронный преобразователь и синхронный детектор. Пирометр содержит оптически связанный с первым и вторым каналами модулятор излучения, оптически связанный со вторым каналом источник опорного излучения и соединенный с выходами каналов процессор, подключенный к регистратору [3]. Пирометр содержит источник шумового излучения, который подключен к процессору, и блок управления, подключенный к источнику шумового излучения и синхронным детекторам обоих каналов. 60