Типы геометрических моделей

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

 Различают математическое обеспечение двумерного (2D) и трехмерного (3D) моделирования.     Основные применения 2D-графики — подготовка чертежной документации

в машиностроительных САПР, топологическое проектирование печатных плат и кристаллов БИС в САПР электронной промышленности. В машиностроительных САПР используют как 2D, так и 3D моделирование для синтеза конструкций, представления траекторий рабочих органов станков при обработке заготовок, генерации сетки конечных элементов при анализе прочности и т.п. В процессе 3D моделирования создаются геометрические модели, т.е. модели, отражающие геометрические свойства изделий. Различают геометрические модели каркасные (проволочные), поверхностные, объемные (твердотельные). Основные требования, предъявляемые к геометрическим моделям трехмерного объекта:

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

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

- Модели должны быть компактны и экономичны с точки зрения затрат памяти и времени вычислений.

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

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

 

Удовлетворить этим требованиям с использованием одного метода трудно, поэтому разработаны различные методы геометрического моделирования трехмерных объектов, которые можно разделить на три основные группы:

методы каркасного моделирования (wireframe modeling); 

методы поверхностного моделирования (surface modeling);

методы твердотельного моделирования (solid modeling), последние включают в себя: 

- классические методы твердотельного моделирования (2-manifold solid modeling);

  - гибридные методы моделирования тел и поверхностей (nonmanifold solid modeling); 

- методы параметрического моделирования и макромоделирования (parametric  and

feature modeling).

                       Методы каркасного моделирования

Каркасные методы моделирования представляют грани трехмерных объектов граничными линиями и конечными точками (вершинами) этих линий. Отображаемая каркасная модель - это просто рисунок каркаса контура. На рис. 2 показана каркасная модель куба и ее математическое описание.

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

 

                                    Рис. 2. Каркасная модель куба.

 

           Методы поверхностного моделирования

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

- Интерполяция.вводимых точек (нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений);

- интерполяция указанной сетки кривых линий;

- протягивание или вращение указанной кривой линии.

Системы поверхностного моделирования используются при моделировании трехмерных объектов со сложными поверхностями главным образом для двух целей:

- фотореалистическое  отображение модели используется, чтобы оценить модель эстетически;

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

 

             Методы классического твердотельного моделирования

   Функции моделирования,  поддерживаемые большинством систем твердотельного моделирования могут быть разделены на две группы:

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

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

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

 

 

 

Исходные примитивы для выполнения булевых операций

 

рис. 6

На рис.6 приведен пример двух примитивов - параллелепипеда – тело  А и цилиндра - тело  В.

Булевы операции, поддерживаемые большинством систем твердотельного моделирования - это операции объединения, пересечения и вычитания. На рис. 7 а), 7 б) и 7 в) показаны результаты этих операций для тел  А и В. 

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

     

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

 

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

 

2. Функции параметрического моделирования, которые создают тело перемещением параметрического плоского контура и накладыванием ограничений. Вращение или перемещение –sweeping,  натягивание – skinning, поворот (вращение плоского контура) – swining,  наложение ограничений и скругление поверхностей (фасок).

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

         Рис.18

На рис. 18. показаны типовые технологические параметризованные макроэлементы – скругление  (рис. 18. а ), фаска рис. 18. б), сквозное отверстие рис. 18. в), вырез рис. 18. г), выступ рис. 18. д), бобышка рис. 18. е).

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

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

 

 

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

 

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

 

 

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

1. Представление конструктивной объемной геометрии (constructive solid geometry

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

CSG представление имеет следующие преимущества: 

-   Структура данных проста и компактна. Соответственно, управление данными будет простым.

-   Тело, сохраненное в CSG дереве будет всегда правильным телом. 

-  CSG представление тела может всегда преобразовано в соответствующее B-rep представление. Таким образом, CSG представление может быть связано соответствующим интерфейсом с прикладными программами, написанными для B-Rep.

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

 Недостатки:

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

- Требуется выполнить большой объем вычислений, чтобы из CSG дерева получить

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

2. Граничное представление (boundary representation (B-Rep)) сохраняет граничную информацию для тела (вершины, ребра и грани вместе с информацией относительно того, как они связаны между собой). Эту структуру данных называют B-Rep структурой данных. Последовательность ребер для каждой грани определяется против часовой стрелки, когда тело рассматривается с  его внешней стороны. Это правило позволяет иметь информацию о том, где находится внутренняя и внешняя часть тела, т.е. можно для любой точки определить, расположена ли она на внутренней или внешней части тела.

3. Декомпозиционная модель (decomposition model) сохраняет тело как агрегат из  простых тел типа параллелепипедов. Можно выделить три типа таких моделей:

- Вокселные модели; 

- Модели в форме дерева октантов (octree);

- Ячеечные модели.

Вокселная модель – это трехмерное расширение растрового представления двумерных форм (воксел - трехмерный аналог пиксела:  pixel - picture element, voxel - volume element).

 Напомним основы растрового моделирования. Сначала создается квадрат области моделирования. Затем эта область разделяется на много маленьких квадратов линиями координатной сетки. Выбор интервалов между линиями координатной сетки зависит от желаемой точности растрового представления. Квадрат области моделирования, содержащий много маленьких квадратов, представляется в компьютере двумерным массивом. Элементы массива, соответствующие маленьким квадратам, перекрывающим моделируемые объекты, имеют значение 1, а остающиеся элементы имеют значение 0. Таким образом, массив из 1 и 0 является растровым представлением двумерного объекта.

      Представление трехмерного тела основано на такой же процедуре, как и растровое представление. Большой куб области моделирования разделяется на маленькие кубы, называемые вокселами, с помощью объемной сетки с равным шагом по осям x, y и z. Этот куб представляется в компьютере трехмерным массивом, каждый элемент которого имеет значение 1 или 0, в зависимости от позиции воксела в моделируемом теле.  Хотя процесс получения вокселной модели почти такой же, как процесс растеризации, обнаружение перекрытия между телом и вокселом требует более сложных вычислений, чем вычисления в процессе растеризации.

Вокселные модели имеют следующие преимущества:

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

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

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

- Легко моделировать препятствия при движении роботов.

Однако вокселные модели имеют и недостатки: - Требования к затратам памяти резко увеличивается при повышении точности моделирования. - Вокселные модели принципиально являются только приближенными.

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

Рис. 15. Модель в форме дерева октантов

 

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

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

Этот шаг рекурсивно повторяется до тех пор, пока не останется более серых октантов. Множество черных октантов в полученном дереве и будут моделировать тело. Рис. 16. иллюстрирует дерево октантов, сгенерированное для тела, показанного на рис. 15. Число октантов, которые будут храниться в памяти, намного меньше, чем число вокселов в вокселных моделях, т.к. октанты отмеченные как черные или белые не участвуют далее в разделениях.

                                     Рис. 16. Дерево октантов

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

 

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

Перенос точки из положения в новое положение можно выполнять по формулам типа

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

(1)


где — преобразующая матрица.   Выражение для сдвига с одновременным поворотом имеет вид

где , — матрица сдвига, — матрица поворота.

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

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

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

 

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

если , то иначе

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

 

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

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

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

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

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

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

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

(1)


где .

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

рис. кривая Безье

 

          Программы компьютерной графики


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

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

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

Сравнения: -Растровое изображение строится из множества пикселей.
              -Векторное изображение описывается в виде последовательности команд.

-Растровые рисунки эффективно используются для представления реальных образов.
-Векторная графика не позволяет получать изображения фотографического качества.

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

-Растровые рисунки могут быть легко напечатаны на принтерах.

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

 

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

 

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

Векторные редакторы позволяют создавать изображения типа схем, чертежей, диаграмм, простых рисунков. Одним из наиболее известных векторных редакторов является Corel Draw. Характерные возможности этого редактора — привязка линий к определенной позиции на изображении, создание выносок и размерных линий, работа с многостраничными изображениями, стандартный интерфейс Windows, многоуровневый откат, кроссплатформенность (имеются версии для Windows, OS/2, MAC, различных вариантов UNIX). Примеры других векторных редакторов — Microsoft Paint, iGrafx Designer, Visio 2000, Adobe Illustrator.

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

 

Для синтеза трехмерных изображений в САПР преимущественно используют средства таких известных систем, как CATIA, Unigraphics, Inventor, Solidworks и др. Однако кроме них существуют и применяются графические библиотеки и пакеты компьютерной графики и геометрического моделирования, непосредственно не связанные с проектированием в технике.

 К числу графических библиотек, получивших наибольшее распространение, относится библиотека графических процедур Open GL. Open Graphics Library — открытая графическая библиотека и спецификация (стандарт) на интерфейсы программирования трехмерной графики. Библиотеку выпускают такие корпорации, как Microsoft, Silicon Graphics, а также просто группы программистов. В библиотеке OpenGL имеются процедуры построения графических примитивов (к числу которых относят точки, линии, полигоны), удаления невидимых линий, Z-буферизации, реалистичной засветки, задания положения тел и камеры наблюдения и т.п. Примитивы могут быть как векторными, так и растровыми. Важной особенностью технологии OpenGL является инвариантность к аппаратно-программным платформам.

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

Альтернативой OpenGL для платформы Microsoft   является комплекс DirectX (Direct eXtension). Он представлет собой API (Application Programming Interface) для решения задач, относящихся к мультимедийным приложениям, в частности, для разработки компьютерных игр. В DirectX входит несколько API, один из них Direct3D используется для 3D-графики, другие - для звука, музыки, устройств ввода и т.д.      Microsoft DirectX — это графический интерфейс прикладного программирования (Application Programming Interface, API). До появления API каждый производитель графических процессоров использовал собственный механизм общения с приложением, и разработчикам приложений приходилось писать отдельный код для каждого графического процессора, который они хотели поддержать. Поэтому для каждого приложения указывалось, какие именно видеокарты оно поддерживает.

Чтобы решить проблему совместимости разных прикладных программ с видеокартами, был выполнена унификация интерфейсов - разработан специальный графический API. Стандарт DirectX включает API для звука, музыки, устройств  ввода и т.д. За 3D-графику в DirectX отвечает API Direct3D, и когда говорят о видеокартах, то имеют в виду именно его (поэтому понятия DirectX и Direct3D взаимозаменяемы).

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

Первый графический процессор с поддержкой API DirectX 10 — это NVIDIA GeForce 8800. Графический процессор предназначен для хранения, обработки и передачи на монитор данных о выводимом на экран изображении. ГП существенно повышает производительность компьютера, освобождая центральный процессор (ЦП) от обработки графических данных. По своей сложности современные  ГП могут превосходить ЦП.

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

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

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

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

При обработке графической информации возможны ситуации, когда заняты все вершинные процессоры и лишь часть пиксельных процессоров, остальные пиксельные процессоры простаивают. Поэтому компания NVIDIA предложила применять и разработала унифицированные графические процессоры, которые могли бы выполнять как вершинные, так и пиксельные шейдеры. Унифицированные процессоры NVIDIA GeForce 8800 могут выполнять также обычные расчеты, чего вообще не было предусмотрено в графических процессорах предыдущих поколений. Унифицированные процессоры NVIDIA называются унифицированными потоковыми процессорами (Unified Streaming Processors, SP) и представляют собой скалярные процессоры общего назначения для обработки данных с плавающей запятой. Процессор распределения задач способен распараллеливать шейдерный код на сотни потоков (до 512 потоков), увеличивая эффективность выполнения вершинных и пиксельных операций.

 

Успехи компании NVIDIA в производстве ГП более 10 лет назад привели к обладанию большим количеством инноваций, продвижению на мировом рынке ее собственной платформы для портативных устройств NVIDIA Tegra, а также мобильных видеокарт, которые действительно востребованы на мировом рынке – производители выставки 2011 представили бессчетное множество планшетников, и подавляющее большинство из них базируется именно на NVIDIA Tegra 2.

NVIDIA Tegra — процессор, объединяющий функции целого компьютера в одном чипе (система на кристалле, SoC — System-on-Chip), разработанный компанией NVIDIA как платформа для производства мобильных устройств, таких как смартфоны, смартбуки, КПК и тд.  Кристалл Tegra объединяет в себе ARM-процессор, графический процессор, медиа- и DSP- процессоры, контроллеры памяти и периферийных устройств, имея при этом низкое энергопотребление. Первый в мире мобильный суперчип NVIDIA® Tegra™ 2 обеспечивает экстремальные возможности мультизадачности с первым мобильным двухядерным CPU и лучшие сетевые возможности: просмотр интернет-страниц вдвое быстрее, аппаратно-ускоренный флеш и игры консольного качества с GPU NVIDIA® GeForce®.

NVIDIA GPU становятся основой всей линейки продуктов MacBook, а также iMac, Mac Mini, Mac Pro и Apple TV решений.

 

Напомним, что традиционно в процессорах существует два типа математики: векторная и скалярная. В случае векторной математики данные (операнды) представляются в виде n-мерных векторов, при этом над большим массивом данных проводится всего одна операция. Самый простой пример — задание цвета пиксела в виде четырехмерного вектора с координатами R, G, B, A, где первые три координаты (R, G, B) задают цвет пиксела, а последняя — его прозрачность. В качестве простого примера векторной операции можно рассмотреть сложение цвета двух пикселов. При этом одна операция осуществляется одновременно над двумя 4-мерными векторами. В скалярной математике операции осуществляются над парой чисел. Понятно, что векторная обработка увеличивает скорость и эффективность обработки.

 

 









Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: