Лекция №5. Геометрическое моделирование (1244999), страница 3
Текст из файла (страница 3)
В классическом варианте различают вершинные и пиксельныепроцессоры — конвейеры. Поступающие в ГП данные об изображаемом объекте сначала обрабатываются в вершинномпроцессоре (Vertex Pipeline) с помощью программ, называемых вершинными шейдерами (Vertex Shader). Шейдер - функция ипрограмма компьютерной графики для создания тех или иных эффектов в изображениях. Виды шейдеров: вершинные, пиксельные,геометрические.Вершинный шейдер рассчитывает геометрию сцены и параметры вершин (координаты, цвет, освещение и др.), можетвыполнять такие операции, как деформация и анимация, модификации, трансформация и уничтожение 3D- объектов.Далее происходит сборка (Setup) трехмерной модели в полигоны. На этом этапе вершины соединяются между собой линиями,образуя каркасную модель. При соединении вершин друг с другом образуются полигоны (треугольники).После этапа сборки данные поступают в пиксельный процессор , который определяет конечные пикселы, их цвета, которыебудут выведены в кадровый буфер.
Пиксельный процессор работает под управлением пиксельных шейдеров. Пиксельный процессорв итоге своей работы выдает конечное значение цвета пиксела и Z-значение для последующего этапа конвейера. При обработкеграфической информации возможны ситуации, когда заняты все вершинные процессоры и лишь часть пиксельных процессоров,остальные пиксельные процессоры простаивают. Поэтому, компания NVIDIA предложила применять иразработала унифициров анн ые граф ические п роцессоры , которые могли бы выполнять как вершинные, так ипиксельные шейдеры.Унифицированные процессоры NVIDIA GeForce 8800 могут выполнять также обычные расчеты, чего вообще не былопредусмотрено в графических процессорах предыдущих поколений. Унифицированные процессоры NVIDIA называютсяунифицированными потоковыми процессорами (Unified Streaming Processors, SP) и представляют собой скалярные процессорыобщего назначения для обработки данных с плавающей запятой.
Процессор распределения задач способен распараллеливатьшейдерный код на сотни потоков (до 512 потоков), увеличивая эффективность выполнения вершинных и пиксельных операций.К методам компьютерной графики относят методы построения и преобразования графических объектов(геометрия и способы преобразования точек, линий и примитивов), представления линий в растровой форме,выделения окна, удаления скрытых линий, проецирования, закраски изображений.Основные требования, предъявляемые к геометрическим моделям трехмерного объекта:- Модель будет однозначна, если она кодирует любой данный трехмерный объект только одним способом.- Модели должны сохранять целостность при преобразованиях (поворот, перенос, вращение и др.).- Модели должны быть компактны и экономичны с точки зрения затрат памяти и времени вычислений.- Метод моделирования не должен создавать недопустимые модели.Алгоритмы компьютерной графики.В компьютерной графике используются действия с матрицами трех видов: - поворота, - сдвига, - масштабирования.Перенос точки из положенияв новое положениеможно выполнять по формулам типагде— приращение по координатепредставлять в единой матричной формегде.
Однако удобнее операции преобразования— преобразующая матрица.(1)Выражение для сдвига с одновременным поворотом имеет видгде,— матрица сдвига,— матрица поворота.Выделение окна требуется при определении той части сцены, которая должна быть выведена на экран. Послевыделения экрана происходит наложение координатной сетки. Применяют ряд алгоритмов удаления скрытых линий .Один из наиболее просто реализуемых алгоритмов — алгоритм z-буфера, где z-б уфер — область памяти, число ячеекв которой равно числу пикселов в окне вывода.Обычный буфер кадра хранит коды цвета для каждого пиксела в пространстве изображения.
Идея состоит в том, чтобыдля каждого пиксела дополнительно хранить еще и координату Z или глубину. Ось Z направлена по нормали к видовойповерхности и наблюдатель расположен в точке Z = 0. При занесении очередного пиксела в буфер кадра значение его Zкоординаты сравнивается с Z-координатой пиксела, который уже находится в буфере.
Если Z-координата нового пикселаменьше, чем координата старого, т.е. он ближе к наблюдателю, то атрибуты нового пиксела и его Z-координата заносятся вбуфер, если нет, то ничего не делается. В итоге z-буфер будет содержать пикселы наиболее близких к наблюдателюграней.Моделирование эффектов отражения света от поверхности объекта в геометрических моделяхназывают рендерингом . Закраска матовых поверхностей основана на законе Ламберта, согласно которому яркостьотраженного от поверхности света пропорциональна, где— угол между нормалью к поверхности инаправлением луча падающего света. В алгоритме Г уро яркость внутренних точек рассматриваемой поверхностиопределяется линейной интерполяцией яркости в вершинах многоугольника.
При этом сначала проводится интерполяция вточках ребер, а затем по строкам горизонтальной развертки. Более реалистичными получаются изображенияв алгоритме Фонг а , основанном на линейной интерполяции векторов - нормалей к поверхности.Существует два основных подхода к геометрическому моделированию объектов проектирования: подходконструктивной геометрии и граничный подход.Подход конструктивной геометрии заключается в создании библиотеки геометрических примитивов (элементарныхобъектов), на базе которых с помощью булевых операций (пересечение, объединение и т.п.) осуществляется построениемодели.
Методы конструктивной геометрии применяются в системах машиностроительных конструкций, деталей,получаемых в технологиях штамповки, резания и т.п.В основе граничного подхода лежит возможность описания его граничных элементов (граней, ребер, вершин, узловыхточек плоских объектов) алгебраическими уравнениями в той или иной системе координат. Граничный методмоделирования объектов применяется в обтекаемых средой (внешние обводы самолетов, судов, автомобилей, лопастейтурбин и т.д.) и направляющих среду устройствах (воздушные и гидравлические каналы, камеры и всасывающие турбиныи т.д).Методы геометрического моделирования трехмерных объектов условно можно разделить на три основные группы:- методы каркасного, поверхностного, твердотельного моделирования.
Последние включают в себяклассические 2-х мерные методы твердотельного моделирования, гибридные методы моделирования тел и поверхностей,методы параметрического моделирования.Методы классического твердотельного моделирования затрагивают действия с твердыми телами.Под твердым телом понимается заполненная «материалом» замкнутая область пространства. Все твердые тела делятсяна базовые (примитивы) и составные. Примитивы имеют следующие свойства: цвет, тип линий, принадлежностьслою, уровень, высота.
Над примитивами можно выполнять следующие операции: Создавать, Удалять, Устанавливатьсвойства, Получать копии, Перемещать, Поворачивать, Отображать зеркально, Масштабировать, Закрашивать и др.Геометрические примитивы: 1) точка (point) - простейший геометрический объект, характеризуется местоположением,применением; 2) отрезок (segment) - совокупность точек (пикселов), через которые проходит геометрический отрезок сзаданными конечными точками.
Характеризуется начальной и конечной точками, или начальной точкой и приращениямикоординат, или длиной и углом наклона; - ломаная (open polygon, polyline) - последовательности отрезков, соединяющихзаданные точки; - полигон, или многоугольник (polygon) - область, ограниченная замкнутой ломанной; прямоугольник (rectangle) - частный случай полигона все углы которого прямые; плоская кривая (planar curve) множество точек плоскости, координаты которых удовлетворяют уравнению F(x,y)=0, может проходить через несколькоточек.
Кривая Безье (Besier curve) - полиномиальная кривая, используемая для аппроксимации кривой по опорным точкам;- дуги окружностей и эллипсов, других кривых второго порядка, различные треугольники и правильные многоугольники ит.п.В математическом аппарате пакетов твердотельного моделирования конструктору предлагается обширныйинструментарий создания и редактирования двумерных примитивов (прямых, дуг, окружностей, многоугольников и т.д.) исложных контуров. Рассмотрим некоторые способы получения сложного контура:а) получение сложного контура по вспомогательным пересекающимся или касательным линиям.
Возможно построениесложного контура одной полилинией за одну операцию.б) Построение сложного контура с использованием непересекающихся дуг и отрезкаа)б)в) Формирование контура в результате топологических операций над замкнутыми контурами. Получение сложного контурав результате топологических операций пересечения прямоугольника и двух окружностей.Получение сложного контура в результате применения к линейным элементам матрицы преобразований (сдвиг, поворот,копирование массивом и т.д.).
г) получение незамкнутого контура как линейного массива шести копий исходного контурав)г)Стандартными геометрическими примитивами в 3D являются: коробка (кубическая или прямоугольная), сфера,цилиндр (сплошной или полый), труба (полая форма цилиндра), конус (остроконечный вариант цилиндра), тор (пончик).Как правило, они образованы вращением и протягиванием образующего контура. Сложные примитивы - правильныймногогранник, тороидальный узел, параллелепипед с фасками, цилиндр с фасками, веретено, цистерна, волнообразноекольцо, шланг, капсула и призма.Комбинации примитивов создают любые тела с использованием булевых операций. Каждое примитивное телорассматривается как множество взаимосвязанных точек, булевы операции объединения, пересечения и вычитаниявыполняются на множествах точек и дают в результате тело, составленное из точек, получаемых в результате этихопераций.При использовании булевых операций следует избегать ситуаций, которые приводят к недопустимым телам.
Рис. 8.иллюстрирует случай, когда после операции пересечения тел В и А будет получена поверхность, а не тело.Некоторые системы твердотельного моделирования дают предупреждение, когда встречается такая ситуация, анекоторые могут аварийно завершиться.Функции 3D моделирования создают тело перемещением параметрического плоского контура и накладываниемограничений.В качестве формообразующих могут использоваться кривые, двумерные примитивы, сложные замкнутые или незамкнутые контуры. Из них получают кинематические тела протягивания и вращения. Вращение или перемещение –sweeping, натягивание – skinning, поворот (вращение плоского контура) – swining, наложение ограничений и скруглениеповерхностей (фасок).
На рис. в одном случае получается тело протягивания, во втором - вращения.Рис. Кинематическое тело протягиванияРис. Тело вращенияФункция натягивания генерирует тело, создавая поверхность типа оболочки, заключающей некоторый объем длязаданного набора сечений тела. Функции моделируют каркас тела очень близко к истинному каркасу, потому что базовыесечения описывают результирующее тело точно.Фичерсы — параметризованные объекты, привязанные к определенному геометрическому контексту. Фичерсы этопривычные пользователю конструкционно-технические элементы, такие как отверстия, фаски, скругления, ребра жесткости,центральные отверстия, канавки, которые помнят о своем окружении независимо от внесенных изменений.