Главная
страница 1страница 2страница 3 ... страница 6страница 7

2. Основные понятия 3Д графики


Перейдём к основным понятиям 3D графики.



Основным понятием при построении 3Д объектов является полигон.

Полигон (polygon) – треугольник, задаваемый координатами трёх точек в трёхмерном пространстве. Он является базовым геометрическим примитивом в 3D-графике. В более широком смысле слова полигон – произвольный плоский многоугольник. Но в 3D-графике это понятие сужают до треугольника, т.е. до наиболее простой плоской фигуры, легче всего поддающейся расчётам (по трём точкам задаётся плоскость). Хотя иногда применяются и другие многоугольники в качестве геометрических примитивов.

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

Текстура (texture)– плоское изображение, натягиваемое на полигон или несколько полигонов. Процесс заполнения полигона текстурой иногда называют wrapping-ом (обертыванием). {полигональное тело вращается – firm ware – на него накладывается текстурка (2жды рендерится одной и то же видео)}

Тексель (texel) – точка на поверхности текстуры. Из таких точек состоит всё изображение текстуры . {на объект указывает стрелка, подсвечивается определённый элемент текстуры }

Пиксель (pixel) (pixel, расшифровывается как PICture'S ELement, элемент изображения). – всем привычное название единичной точки, отображаемой на мониторе в конкретном месте. Кроме этого представления понятия пикселя, в трехмерной графике существуют еще два: пиксель – это адресуемый элемент буфера кадра или пиксель - это точка плоскости, на которую производится проекция трехмерной сцены после проведения всех требуемых вычислительных операций. Пиксель – понятие, аппаратно поддерживаемое современными бюджетными видеокартами. Аппаратная поддержка реализована в виде пиксельного конвейера, где с пикселями производятся различные скоростные операции (в основном это различные эффекты типа затуманивания, наложения шаблонов и т.д.).

Буфер кадра – (Frame buffer) Специально отведенная область памяти компьютера или отдельной платы для временного хранения данных о пикселях, требуемых для отображения одного кадра (полного изображения) на экране монитора. Емкость буфера кадра определяется количеством битов, задействованных для определения каждого пикселя, который должен отображать изменяемую область или количество цветов и их интенсивность на экране. (приблизить до жирного пикселя и показать, сколько памяти на него отводится (trans. Eff. :: zoom + export frame))

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

Буфер шаблонов


Буфер шаблонов (Stencil buffer) достаточно недавно получил распространение в игровых ЗD-акселераторах. Принципиально, что, как и Z-буфер, он представляет собой двухмерный массив с размерностью равной текущему разрешению кадрового буфера. Используется для некоторых специфических эффектов при растеризации изображения. Например, можно производить вывод окончательного изображения в кадровый буфер только в тех точках, для которых в буфере шаблонов записана некоторая определенная величина. Буфер шаблонов будет упоминаться при рассказе об алгортме теневых объемов, в разделе «освещение».

Шейдер (shader) – графическая микропрограмма для CPU или GPU. Служит для определения окончательных параметров объекта или изображения. Это может включать в себя произвольной сложности описание поглощения и рассеяния света, наложения текстуры, отражение и преломление, затенение, смещение поверхности и эффекты пост-обработки. Различают вертексные (вершинные) и пиксельные (фрагментные) шейдеры. {шейдерный объект}

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

Больше половины из них используется для рисования дождя и сопутствующих эффектов, примерно 1/3 для рисования теней, отражений

1/6 - это постобработачные эффекты и наконец небольшое количество шейдеров для рисования частиц.

Пиксельные шейдеры позволяют программисту по шагам управлять процессом наложения текстур, определения глубины и вычисления цвета пикселей. Что это дает? Во-первых, можно создавать в играх per-pixel lighting, т.е. попиксельное освещение. Во-вторых, позволяет создавать красивые эффекты с частицами (например, огонь, дым, капли дождя). Благодаря пиксельным шейдерам, кожа персонажей стала выглядеть естественнее, в играх можно наблюдать реалистичную поверхность воды, а также создавать определенные эффекты разрушения. В этом примере из игры F.E.A.R. мы наблюдаем применение трех пиксельных шейдеров: parallax-mapping для создания эффекта глубины, система частиц для отлетающих камней и для создания пыли. А в этом примере мы видим, что дырка в стене не объемна, а является лишь сгенирированной шейдером двухмерной картинкой.



(Anti-aliasing) Фильтрация-Сглаживание

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

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

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

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



Depth of field (глубина резкости), вкратце, это степень размытости объектов в зависимости от их положения относительно фокусного расстояния камеры.




Следующая картинка – всего лишь камни мостовой тут - всего лишь результат попиксельного эффекта, т.е. камни на мостовой – это всего лишь изначально плоская текстура (как в texture mapping’е).






Render.ru -> Статьи -> Урок 3D истории
http://www.ixbt.com/video2/terms2k5.shtml
High Dynamic Range (HDR) в применении к 3D графике - это рендеринг в широком динамическом диапазоне. Динамаческим диапозон в данном случае относится к различным уровням экспозиции. Суть HDR заключается в аккуратном представлении широкого набора уровней интенсивности света, начиная от прямых солнечных лучей и заканчивая самыми темными тенями. (ИЗ Демки + Loast Coast)


Рендеринг (rendering) – называют процесс расчёта конечного изображения, которое выводится на экран. Как видно из определения, это понятие является обобщающим, т.е. охватывает всё то, что происходит в центральном процессоре (CPU) или графическом процессоре видеокарты (GPU) во время их работы над расчетом трехмерной картинки. {съёмка этапа рендеринга картинки в 3DS и какое-либо видео из игры}

<< предыдущая страница   следующая страница >>
Смотрите также:
Тема № введение в компьютерную графику
223.81kb.
1 стр.
Введение в компьютерную графику
1435.67kb.
16 стр.
1. история 3Д графики 2
335.88kb.
1 стр.
1. история 3Д графики 2
371.5kb.
7 стр.
1. история 3Д графики 2
423.56kb.
7 стр.
Трехмерная графика
75.92kb.
1 стр.
Занятие Методы представления графических изображений
138.27kb.
1 стр.
Вопросы государственного экзамена по русскому языку 2010 г
46.52kb.
1 стр.
Контрольная работа №1 Тема контрольной работы №1 Базовые основы компьютерной
28.63kb.
1 стр.
Должностная инструкция дизайнера компьютерной графики отдела видеопроизводства
35.61kb.
1 стр.
Растровый графический редактор Gimp
152.42kb.
1 стр.
Xi биеннале графики стран Балтийского моря «Калининград – Кенигсберг 2013». Россия
49.71kb.
1 стр.