УДК 004

ОБЪЕКТЫ С ПЕРЕМЕННОЙ ПРОЗРАЧНОСТЬЮ

Кузьмин Дмитрий Андреевич1, Абрамова Оксана Федоровна2
1Волжский политехнический институт (филиал) ФГБОУ ВПО "Волгоградский государственный технический университет", студент
2Волжский политехнический институт (филиал) ФГБОУ ВПО "Волгоградский государственный технический университет", доцент кафедры "Информатика и технология программирования"

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

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


OBJECTS WITH VARIABLE TRANSPARENCY

Kuzmin Dmitriy Andreevich1, Abramova Oksana Fedorovna2
1Volzhskiy Polytechnical Institute, branch of the Volgograd State Technical University, student
2Volzhskiy Polytechnical Institute, branch of the Volgograd State Technical University, associate professor "Informatics and technology of programming"

Abstract
This article is devoted to the review of algorithms of visualization of translucent objects in computer graphics. The conducted research allows to claim that this subject is problem and needs more careful studying since visualization of objects with variable transparency is in great demand now and assumes different methods of the decision.

Keywords: algorithm, computer graphics, translucency, variable transparency, visualization


Библиографическая ссылка на статью:
Кузьмин Д.А., Абрамова О.Ф. Объекты с переменной прозрачностью // Современная техника и технологии. 2016. № 1 [Электронный ресурс]. URL: http://technology.snauka.ru/2016/01/9172 (дата обращения: 27.05.2017).

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

В настоящее время области применения систем визуализации охватывают самые различные сферы деятельности человека – от отображения виртуальных миров в компьютерных играх и системах виртуальной реальности до визуализации результатов компьютерного моделирования в серьезных научных и военных приложениях, а также в системах автоматизированного проектирования. Полупрозрачность используется при визуализации стеклянных поверхностей, природных явлений (применяются системы частиц), а также в системах автоматизированного проектирования (САПР). В САПР полупрозрачность позволяет наглядно представить внутреннюю структуру проектируемого изделия [1,2].

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

Рисунок 1. Комплексное использование  опций ContourStyle и Opacity для функции ContourPlot3D:

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

Визуализация в компьютерной технике в настоящее время описывается словом рендеринг (от англ. rendering — изображение, перевод, переложение, интерпретация). В зависимости от цели, различают пре-рендеринг, как достаточно медленный процесс визуализации, применяющийся в основном при создании статических изображений и анимаций, и рендеринг в реальном режиме, применяемый в компьютерных играх, который, как правило, использует специальное оборудование – 3D-ускорители.

Под визуализацией в режиме реального времени понимается процесс отображения трёхмерных данных при интерактивной частоте кадров (более 15-20 кадров в секунду) [4], в котором соблюдаются жёсткие ограничения на временные характеристики функционирования. Обычно изображение выводится на двухмерный экран, дисплей компьютера, но также широко применяется стереоскопическая визуализация, и в последнее время получают распространение трёхмерные дисплеи.

Для достижения необходимой для отображения в режиме реального времени частоты кадров и получения качественных изображений приходиться прибегать к компромиссам. Сейчас самым быстрым способом получения изображений является заполнение полигонов с интерполяцией атрибутов пикселей между вершинами графического примитива (rasterization, polygonfilling). При этом получаемое изображение не является полностью фотореалистичным, гораздо лучших результатов можно достичь, применяя более приближенные к реальности физические модели распространения света, которые и требуют гораздо больше вычислительных ресурсов (globalillumination, radiosity, pathtracing, photonmapping и т.д.) [4, 5]

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

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

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

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

2.      Метод бросания лучей (рейкастинг) (англ. ray casting). Алгоритмы этой группы рассматривают сцену из одной точки, которая является и источником лучей, направляемых на объект для определения цвета пикселя. Отличие от метода трассирования заключается в том, что данные лучи прекращают своё распространение как только достигают любой объект сцены либо же её фона. При этом есть возможность использования простейших техник добавления оптических эффектов в отрисовываемую сцену. А эффект перспективы возникает естественным образом при запуске лучей под углом, зависящим от положения пикселя на экране и максимального угла обзора камеры.

3.      Трассировка лучей (англ. raytracing). Метод очень похож на начальном этапе на рейкастинг, однако, лучи, с помощью которых определяется цвет пикселя на двумерном экране, при достижении объекта останавливаются. В общем виде идея метода трассировки лучей незамысловата: к каждому пикселю на дисплее проводится прямой луч от глаза наблюдателя или камеры к элементу выводимой сцены. В результате мы имеем несколько типов лучей [6]. Первичные лучи используются как определители видимости объекта и являются своего рода Z-буфером, который используется в растеризации. Что же касается вторичных лучей, то они разделяются на следующие (рис.2):

•        лучи тени/освещения;

•        лучи отражения;

•        лучи преломления.

Рисунок 2. Классический алгоритм трассировки лучей

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

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

4.      Трассировка пути. Одна из разновидностей трассировки лучей, а точнее – метод просчёта глобального освещения brute-force. Методику рендеринга в компьютерной графике можно охарактеризовать как, стремящуюся имитировать физическое поведение светового луча максимально близко к реальному. Трассировка пути является обобщением теории традиционной трассировки лучей (англ. ray tracing), алгоритм которой как бы отправляет лучи света в от виртуальной камеры вперед, сквозь пространство; луч же как бы отскакивает (отражается) от предметов пока полностью не рассеется или не поглотится [7]. Что касается качества изображений, которые получены при помощи этого метода, зачастую, лучше, чем изображения, полученные при использовании других методов рендеринга, правда именно трассировка пути наиболее затратная методика.

Необходимо также отметить, что трассировка пути – это наиболее простой, наиболее точный с физической стороны и наиболее медленный по производительности метод рендеринга. Методика трассировки пути наиболее естественным образом позволяет воспроизводить большинство оптических эффектов, тогда как при использование других методик рендеринга либо вовсе невозможно получение желаемых эффектов, либо весьма сложно [8].

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

 

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

 Но, кроме перечисленных основных четырех методик, существуют и другие.

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

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

Сохранение разрешения финального изображения обеспечивается за счет использования буферов большего размера, чем размеры формируемого кадра (применяется supersampling). В этом случае, N-кратное увеличение буфера результата растеризации позволяет выделять до N слоев прозрачности без потери разрешения. Далее, отдельным проходом постобработки, выполняется его чтение и сортировка. Полученные слои прозрачности упорядочиваются по z-координате, и значения их цветов смешиваются по формуле альфа-смешивания [12].

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

2. Метод динамических списков слоев прозрачности Рассматриваемый далее метод является более универсальным по сравнению с методом трафаретных масок [13]. Он не требует дополнительной фильтрации и использует меньше памяти под хранение слоев прозрачности. Экономия памяти достигается благодаря построению динамических списков поверх линейной памяти. Ее заполнение выполняется на этапе визуализации полупрозрачных объектов и реализует концепцию А-буфера (рис.4).

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

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

Общая схема работы алгоритма построения динамических списков описывается следующими шагами:

• Атомарно увеличить счетчик занятой памяти.

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

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

В качестве оптимизаций, используется один дополнительный буфер для хранения длины списка и память под требуемые буферы выделяется на видеокарте в виде объектов 2D- текстур [14]. Для доступа на запись используется технология UAV (unordered access view), входящая в состав DirectX версии 11. Кроме этого, для синхронизации операций между потоками, применяются атомарные операции. Использование метода на современном аппаратном обеспечении позволяет эффективно обрабатывать до 64 слоев прозрачности. В большинстве случаев этого более чем достаточно.

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

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

Среди игр, использующих рейкастинг, следует отметить Comanche 3 (1997), DeltaForce (1998) и Outcast (1999).

Рисунок 5 – Снимок экрана игры Outcast. Изображение получено

с помощью raycasting без использования графического акселератора

Только через несколько лет в играх, использующих растеризацию, стали возможны эффекты, которые присутствовали в Outcast: bump-mapping, shadows, depthoffield, reflections, self-occlusion, bloom.

Raytracing, несмотря на свою трудоёмкую с вычислительной точки зрения природу, сегодня переходит в разряд интерактивных методов визуализации [15]. Существуют рендеры, работающие в реальном или почти в реальном времени. Он всегда являлся одним из самых популярных методов, используемых в демосцене. В лабораториях Intel и NVidia созданы многопроцессорные машины, позволяющие достичь интерактивной частоты смены кадров при трассировке лучей.

Рисунок 6. Изображение с полупрозрачными объектами, полученное с помощью Araunareal-timeraytracer

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

Начиная еще с 2009 года, поскольку развитие  графических процессоров было поистине феноменальным, а точнее многократно увеличилась их многофункциональность и гибкость, стали разрабатываться и использоваться графические библиотеки “реального времени”, благодаря которым успешно используются мощности GPU для необходимых профильных расчётов. Обычно, такие визуализаторы реализуют освещение посредством метода трассировки лучей, а сама геометрия бывает представлена  не полигонами, а вокселями. Эти библиотеки предназначены для работы не только в компьютерных играх, но и в других весьма серьезных интерактивных и неинтерактивных приложениях, в том числе и для научных расчётов.

OptiX — это графические библиотеки “реального времени”, разработаны nVidia, и использующие CUDA, работающие только на графических процессорах производства nVidia и предназначены для различных исследований, вычислений и моделирований. «OptiX» – это гибридный рендер — основноее отличие которого – не только  использование трассировки лучей, но, также, присутствует и растеризация.

OctaneRender — графическая библиотека реального времени, разработанная компанией RefractiveSoftwareLTD, использующая CUDA и работающая на всех графических процессорах nVidia, начиная с 8Х00. Использует трассировку лучей idTech 6 будет использовать трассировку лучей и воксели.


Библиографический список
  1. Абрамова О.Ф. CASE-технологии: изучать или исключить? / О.Ф. Абрамова // Alma mater (Вестник высшей школы). – 2012. – № 9. – C. 109-110.
  2. Абрамова О.Ф. Использование мультимедийных технологий в процессе обучения дисциплине “Компьютерная графика” / О.Ф. Абрамова, С.В. Белова // Успехи современного естествознания. – 2012. – № 3. – C. 90.
  3. Абрамова О.Ф. К вопросу о повышении эффективности функционирования тренажёрно-обучающих систем / О.Ф. Абрамова, М.Л. Цыганкова // Открытое и дистанционное образование. – 2014. – № 4. – C. 34-39.
  4. Визуализация полупрозрачных объектов трехмерных сцен реального времени // Коростелев Е.И., Долговесов Б.С., Мазурок Б. С. / Институт Автоматики и Электрометрии СО РАН Новосибирск, Россия / Электронный ресурс.: http://www.graphicon.ru/html/2010/conference/RU/Se5/39.pdf.
  5. Коростелев Е. Порядко-независимая прозрачность на GPU с использованием динамических списков / Электронный ресурс.: http://www.uraldev.ru/articles/36.
  6. Моделирование стеклянных поверхностей // GameDev.ru. – Электронный ресурс.: http://www.gamedev.ru/code/forum/?id=136424&page=3.
  7. Трассировка пути // Словари и энциклопедии на Академике. – Электронный ресурс.: http://dic.academic.ru/dic.nsf/ruwiki/1442814.
  8. Трассировка пути Электронный ресурс.: http://ru.enc.tfode.com.
  9. Абрамова О.Ф. Особенности формирования банка тестовых заданий по специальным техническим дисциплинам для программной реализации системы адаптивного тестирования [Электронный ресурс] / О.Ф. Абрамова // Современная техника и технологии. – 2013. – № 11. – C. Режим доступа : http://technology.snauka.ru/2013/11/2570.
  10. Абрамова О.Ф., Никонова Н.С. Сравнительный анализ алгоритмов удаления невидимых линий и поверхностей, работающих в пространстве изображения // novainfo.Ru (Электронный журнал.) – 2015 г. – № 38; Режим доступа: http://novainfo.ru/archive/38/analiz-algoritmov-udaleniya-nevidimykh-liniy-i-poverkhnostey.
  11. Котов В.  К вопросу об импорте 3D моделей в программы с использованием графической библиотеки opengl [Электронный ресурс] / В. Котов, О.Ф. Абрамова // Современная техника и технологии. – 2014. – № 1. – C. Режим доступа : http://technology.snauka.ru/2014/01/2965.
  12. Красильникова А.Н. Информационные технологии в градостроении / А.Н. Красильникова, В.О. Александрова, О.Ф. Абрамова // Успехи современного естествознания. – 2012. – № 6. – C. 32.
  13. Трифанов А.И. Реализация собственного метода визуализации водной поверхности «скользящая текстура» / А.И. Трифанов, О.Ф. Абрамова // Современные наукоёмкие технологии. – 2013. – № 8 (ч. 1). – C. 96-97.
  14. Цыганкова М.Л. Обзор проблем и возможные пути их решения в процессе проектирования и реализации тренажёрно-обучающих систем [Электронный ресурс] / М.Л. Цыганкова, О.Ф. Абрамова // Современная техника и технологии. – 2014. – № 6. – C. Режим доступа : http://technology.snauka.ru/2014/06/3699.
  15. Абрамова О.Ф. Формирование образа мышления современного специалиста с помощью CASE-технологий / О.Ф. Абрамова // Известия волггту. Серия “Новые образовательные системы и технологии обучения в вузе”. Вып. 10 : межвуз. Сб. Науч. Ст. / волггту. – Волгоград, 2013. – № 13 (116). – C. 10-12.
  16. Абрамова О.Ф. Применение интерактивных методов обучения на лабораторных занятиях в техническом вузе / О.Ф. Абрамова // Информатика и информационные технологии в образовании, науке и производстве : сб. Науч. Ст. Ч. I / Издательство научной литературы Нобель Пресс. – [Волжский], 2014. – C. 163-166.


Все статьи автора «Кузьмин Дмитрий Андреевич»


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

Связь с автором (комментарии/рецензии к статье)

Оставить комментарий

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

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться: