Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

Разработка методов и технологии обработки трехмерных изображений с применением шейдерной графики Буй Тхе Чуен

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

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

Автореферат - бесплатно, доставка 10 минут, круглосуточно, без выходных и праздников

Буй Тхе Чуен. Разработка методов и технологии обработки трехмерных изображений с применением шейдерной графики : диссертация ... кандидата технических наук : 05.13.01 / Буй Тхе Чуен; [Место защиты: Вычисл. центр РАН]. - Москва, 2008. - 100 с. : ил. РГБ ОД, 61:08-5/434

Содержание к диссертации

Введение

ГЛАВА 1 Современные способы представления трехмерной динамической графики 7

1.1 Введение 7

1.1.1 Актуальность проблемы представления трехмерных форм в интернет 7

1.1.2 Интерактивная 2d анимация-flash 9

1.1.3 Технологии vrml, x3d 9

1.2 Особенности vrml, x3d 11

1.2.1 Возможности описания сложных форм 11

1.2.2 Интерактивность 13

1.3 Автоматизация создания трехмерных сцен 25

ГЛАВА 2 Шейдерная графика - язык HLSL 28

Введение 28

2.1 Вершинный шейдер-vertex shader 30

2.2 Пиксельный шейдер - pixel shader 31

2.3 Высокоуровневый шейдерный язык 34

2.3.1 Язык высокого уровня для программирования шейдеров - High Level Shading Language - HLSL 35

2.3.2 GLSL - OpenGL SHADING LANGUAGE 45

ГЛАВА 3 Система автоматической обработки генерации трехмерных изображений с использованием шейдерной графики 51

Введение 51

3.1 Описание шаблонов и текстур 52

3.1.1 Шаблоны 52

3.1.2 Текстуры 59

3.2 Пользовательский интерфейс системы 60

3.3 Структура программы 64

3.4 Ограничения совместимости эффектов и шаблонов сцен 65

3.5 Организация хранения данных системы 66

3.6 Методика использования системы 66

Заключение 70

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

Приложение 79

Введение к работе

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

динамичность.

интерактивность.

фотореалистичность.

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

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

Шейдером (англ. shader) называется микропрограмма, предназначенная для выполнения графическим процессором в финальных стадиях графического конвейера. При обработке списка вершин полигонов выполняются так называемые вершинные шейдеры, при обработке пикселей изображения - пиксельные. Вершинные шейдеры наиболее удобны для задания анимационных эффектов и вычисления параметров освещенности в вершинах, пиксельные - для создания атмосферных эффектов, для использования усложненных моделей расчета освещения. Появившиеся за последние годы шейдерные языки высокого уровня (HLSL [1]-High Level Shader Language для DirectX фирмы Microsoft, GLSL для OpenGL, CG -фирмы NVidia) существенно упростили процесс программирования графических процессоров, сделав доступным использование управляющих конструкций и функций, сходных с имеющимися в обычных универсальных языках программирования, таких как С или С#.

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

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

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

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

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

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

Актуальность проблемы представления трехмерных форм в интернет

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

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

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

Далее мы рассмотрим современные возможности по описанию 3D-сцен в Интернет.

Одним из наиболее распространенных стандартов представления графики в Интернет является Macromedia Flash, обеспечивающий возможность работы с анимированными, интерактивными векторными изображениями. К сожалению Macromedia Flash поддерживает только 2D примитивы и не предоставляет штатных средств для поддержки трехмерных сцен. Тем не менее, в рамках этой технологии могут быть реализованы два подхода к обработке 3D графики на компьютере клиента:

1) Генерация проекций 3D модели непосредственно на компьютере клиента с помощью программы на языке ActionScript, интерпретация которого поддерживается браузерами Macromedia Flash.

2) Использование приложений типа Flash3D, позволяющих записывать готовые flash-ролики по заданному сценарию анимации для данной сцены.

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

VRML (Virtual Reality Modeling Language) - Язык Моделирования Виртуальной Реальности. Это формальный язык для описания трехмерных объектов и миров для World Wide Web (подобно тому, как HTML исполь зуется для представления гипертекста на WWW). Первая реализация VRML (VRML 1.0 спецификация) была создана компанией Silicon Graphics и представляла собой формат описания статических миров. Во второй реализации VRML (VRML 2.0 спецификация) добавились более сложные интерактивные возможности и анимация. Она была разработана компанией Silicon Graphics в сотрудничестве с компаниями Sony и Mitra. [49]

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

X3D (Extensible 3D) - этот расширяемый язык описания трехмерных сцен, предназначенный для создания трехмерной графики в Интернете. Рабочий проект X3D был впервые представлен на Седьмой международной конференции трехмерных веб-технологий "3D Web Technology" в США в феврале 2002 года [20].

Новый стандарт, названный Extensible 3D или X3D, является наследником так и не сумевшего набрать достаточной популярности языка VRML, причем среди главных достоинств X3D указывается его полная совместимость с технологией описания структурированных данных XML. По мнению создателей X3D, появление современного стандарта представления трехмерных объектов на веб-страницах позволит создавать принципиально новые технологии представления онлайнового контента и организации взаимодействия с пользователями. В числе основных применений X3D можно назвать создание виртуальных торговых залов, системы визуализации данных, образовательные системы и, конечно же, многопользовательские игры.

Возможности описания сложных форм

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

Основные типы геометрических узлов: Box (прямоугольный параллелепипед), Cylinder (цилиндр), Sphere (сфера), Cone (конус), PointSet (набор точек), IndexedLineSet (линии по набору точек), IndexedFaceSet (грани по набору точек), Extrusion (модифицирующий узел, описывающий форму на основе метода экструзии, выдавливания), EJevationGrid (рельеф по набору точек).

Основное назначение сенсоров - сгенерировать EventOut после срабатывания. Срабатывание сенсора может быть вызвано разными причинами: наступление определенного времени, клик мышкой, наведение курсора, приближение к объекту, столкновение с объектом и т.д.)

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

К классу сенсоров относятся следующие узлы: Anchor, Collision, CylinderSensor, PlaneSensor, ProximitySensor, SphereSensor, TimeSensor, TouchSensor, VisibilitySensor.

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

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

Узел ProximitySensor.

Задачей ProximitySensor (датчика ближайших окрестностей) является генерация события, связанных с перемещением какого-либо объекта внутри некоторой невидимой области VRML-пространство. Это область имеет форму прямоугольного параллелепипеда. Вход в область, выход из нее, обычные перемещения внутри этой области - это те события, которые могут отключать режим отправки сообщений от ProximitySensor. Отключение или подключение датчика выполняется с помощью событий для поля enabled (enabled-событие), определяющих соответственно значения FALSE или TRUE в этом поле. Отключенный датчик не может отправить исходящее событие. Узел PlaneSensor.

Этот сенсор отслеживает перемещения курсора в плоскости с Z=0 локальной системы координат (по умолчанию в плоскости экрана). Этот датчик определяет, сопровождалось ли нажатием клавиши перемещение указателя мыши по геометрическому объекту, входящему в состав родительского узла. С помощью доступного для изменений поля enabled можно запретить или разрешить использование PlaneSensor. Когда значение поля установлено в TRUE, датчик соответствующим образом реагурует на действия пользователя. Если значение равно FALSE, то датчик никак не реагирует на манипуляции пользователя и не генерирует исходящие события. Если в поле enabled поступит значение-FALSE, а поле isActive при этом содержит значение TRUE, то датчик становится и недоступным, и неактивным.

Узел TimeSensor.

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

Вершинный шейдер-vertex shader

Вершинные шейдеры - это программы, выполняемые видеочипами, которые производят математические операции с вершинами (vertex, из них состоят 3D объекты в играх), иначе говоря, они предоставляют возможность выполнять программируемые алгоритмы по изменению параметров вершин и их освещению (T&L - Transform & Lighting). Каждая вершина определяется несколькими переменными, например, положение вершины в 3D пространстве определяется координатами: х, у и z. Вершины также могут быть описаны характеристиками цвета, текстурными координатами и т.п. Вершинные шейдеры, в зависимости от алгоритмов, изменяют эти данные в процессе своей работы, например, вычисляя и записывая новые координаты или цвет. То есть, входные данные вершинного шейдера -данные об одной вершине геометрической модели, которая в данный момент обрабатывается. Обычно это координаты в пространстве, нормаль, компоненты цвета и текстурные координаты.

Вершинный шейдер состоит не только из набора команд, но и из переменных - регистров, которыми1 эти команды оперируют. Всего мы имеем пять различных видов регистров [81]: - Входные регистры (Vertex Data Registers) vO, vl, v2... - Константные регистры (Constant) c0,cl,c2... - Временные регистры (Temporary) r0,rl,r2... - Адресный регистр (Address) aO - Выходные регистры: oDn, oFog, oPos, oPts, oTn, в них заносятся обработанные данные для дальнейшей обработки в 3D конвейере.

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

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

До появления видеочипов с аппаратной поддержкой пиксельных шейдеров, у разработчиков были лишь возможности по обычному мульти-текстурированию и альфа-блендингу, что существенно ограничивало возможности по многим визуальным эффектам и не позволяло делать многое из того, что сейчас доступно. Пиксельные шейдеры сделали возможным освещение любых поверхностей попиксельно, используя запрограммированные разработчиками материалы. Появившиеся в NV20 пиксельные шейдеры версии 1.1 (в понимании DirectX) уже могли не только делать мультитекстурирование, но и многое другое, хотя большинство игр, использующих SM1, просто использовали традиционное мультитекстурирование на большинстве поверхностей, выполняя более сложные пиксельные шейдеры лишь на части поверхностей, для создания разнообразных спецэффектов. - На входе: позицию (HPos), текстурные координаты (ТСО - ТСЗ), цвет (DO, Dl). - 8 константных регистров. - 6 временных регистров: 4 текстурных регистра (ТО-ТЗ), осуществляющих 4 этапа мультитекстурирования и 2 временных регистра (R0-R1) для хранения промежуточных данных. - На выходы: результирующий цвет пикселя, который берется из регистра R0. Некоторые функции пиксельного шейдера.

Пользовательский интерфейс системы

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

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

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

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

Методика создания анимированных фотореалистичных ЗБ-сцен делится на следующие этапы: 1. Определение содержания сцен, необходимых для иллюстрирования предметной области, включая сценарии анимационных эффектов, с учетом ограничений на качество изображения и информационный объем сцены. 2. Разработка структуры сцен, определение методов реализации анимационных эффектов. 3. Выделение топологических инвариантов сцен. Классификация сцен по топологии на их основе. 4. Разработка алгоритмов реализации анимационных эффектов. Типизация эффектов в соответствии с алгоритмами их реализации. 5. Поиск готовых реализаций шаблонов и эффектов в уже созданных аннотированных библиотеках. Копирование найденных экземпляров в новую библиотеку и доработка, при необходимости 6. Создание шаблонов для выделенных топологических инвариантов. Шейдерное программирование эффектов. Создание библиотеки шаблонов и библиотеки анимационных эффектов. Отладка, тестирование и документирование библиотек. 7. Генерация X3D сцен на основе созданных библиотек. Доработка библиотек при необходимости.

Этапы 1-4 выполняются экспертами вручную. Выполнение этапов 5-6 частично автоматизируется путем использования встроенной подсистемы управления библиотеками. Генерация X3D сцен на завершающем, седьмом этапе выполняется автоматически.

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